TeX - LaTeX Asked on July 27, 2021
I have a problem with my table in LaTeX. A few of cells doesn’t fill well.
I used the package "makecell" to do multirow and define new types of columns instead colortbl package (because I read that those packages can have a conflict), but I don’t know why is this happening. Also, I used hhline to do lines suitable to my table and I used a macro to change the color of line in each column(Btw, I have to deny the shorthands in the Spanish babel package to the macro works), but I still get the intersections in white.
Finally I modified the thick of the edges lines but it doesn´t work in all. Anyone could give me a suggestion, please? Thanks. Below is my code.
PD. I tried with "tabularx" and "tabulary" but it doesn’t work for me.
documentclass[10pt,a4paper]{report}
usepackage[utf8]{inputenc}
usepackage[spanish,es-noshorthands]{babel} %es-noshorthands sirve para que el cambio de color en hhline sea efectivo
usepackage{amsmath}
usepackage{amsfonts}
usepackage{amssymb}
usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
usepackage[table,svgnames,x11names]{xcolor}
usepackage{hhline}
usepackage{multirow,makecell,array}
usepackage{diagbox}
usepackage{tabulary}
usepackage{adjustbox}
usepackage{anyfontsize}
begin{document}
newcolumntype{g}{>{columncolor{LightSteelBlue}}c}
newcolumntype{h}{>{columncolor{Gainsboro}}c}
newcolumntype{k}{>{columncolor{Azure3}}c}
begin{table}
scriptsize
centering
begin{adjustbox}{max width=textwidth}
%!{vrule width1.2pt} modifica el ancho de linea vertical divisoria en la tabla, usar en vez de hline
% Xhline{1.2pt} modifica el ancho de linea horizontal divisoria en la tabla, usar en vez de solo |
begin{tabular}{!{vrule width1.2pt}g!{vrule width1.2pt}h!{vrule width1.2pt}k!{vrule width1.2pt}k!{vrule width1.2pt}}
%hhline{>{arrayrulecolor{LightSteelBlue}}->{arrayrulecolor{black}}---} %hace una linea del color de la columna 1 y luego la cambia a color negro. Aplicar solo cuando tienes columnas de colores y hay problemas
%con el multirenglón. Si tu color de tabla es blanco con cline{-} (linea parcial) basta.
Xhline{1.2pt} %hline
multicolumn{4}{|c|}{{textsc{Características y parámetros...}}}
Xhline{1.2pt} %hline
multicolumn{2}{|g|}{diagbox[innerwidth=7.5cm]{textbf{Ítem}}{textbf{Modelo}}} & textbf{Modelo1} & textbf{Modelo2}
Xhline{1.2pt} %hline
& textbf{Material de máquina} & multicolumn{2}{|h|}{Estructuras de aluminio}
hhline{|>{arrayrulecolor{LightSteelBlue}}-|>{arrayrulecolor{black}}-|-|-|} %cline{2-4}
& textbf{Láser} & multicolumn{2}{|h|}{Generador de láser: Fibra óptica} %cline{2-4}
hhline{|>{arrayrulecolor{LightSteelBlue}}-|>{arrayrulecolor{black}}-|-|-} %cline{2-4}
& textbf{Potencia de salida} & $geq 20W$ & $geq 30W$
hhline{|>{arrayrulecolor{LightSteelBlue}}-|>{arrayrulecolor{black}}-|-|-} %cline{2-4}
& textbf{Longitud de onda} & multicolumn{2}{|h|}{$1064nm$}
hhline{|>{arrayrulecolor{LightSteelBlue}}-|>{arrayrulecolor{black}}-|-|-} %cline{2-4}
& textbf{Lentes} & multicolumn{2}{|h|}{cellcolor{Gainsboro}makecell{Sistema de escaneo de alta precisión2 dimensiones}}
hhline{|>{arrayrulecolor{LightSteelBlue}}-|>{arrayrulecolor{black}}-|-|-} %cline{2-4}
& textbf{Velocidad de marcado} & multicolumn{2}{|h|}{$<8000mm/s$}
hhline{|>{arrayrulecolor{LightSteelBlue}}-|>{arrayrulecolor{black}}-|-|-} %cline{2-4}
& & multicolumn{2}{|h|}{Pantalla* integrada}
%
& multirowcell{-2}{textbf{Sistema de control principal}} & multicolumn{2}{|h|}{Controlador táctil externo 10.4''}
hhline{>{arrayrulecolor{LightSteelBlue}}->{arrayrulecolor{black}}---} %cline{2-4}
multirowcell{-8}{Característicasmáquinaláser} & textbf{Sistema de enfriamiento} & multicolumn{2}{|h|}{cellcolor{Gainsboro} makecell{Sistema de enfriamientomediante agua o aire}}
%------------------------------------------------------------------------
Xhline{1.2pt} %hline
& cellcolor{Gainsboro} makecell{textbf{Aumento de enfoque} textbf{lentes (zoom)}} & multicolumn{2}{|h|}{190mm en doble enfoque con luz roja}
hhline{>{arrayrulecolor{LightSteelBlue}}->{arrayrulecolor{black}}---} %cline{2-4}
& textbf{Tipo de fuente de marcado} & multicolumn{2}{|h|}{cellcolor{Gainsboro} makecell{Marcado elegible entre gráficos vectorialeso mapas de bits}}
hhline{>{arrayrulecolor{LightSteelBlue}}->{arrayrulecolor{black}}---} %cline{2-4}
& textbf{Ancho de línea mínimo} & multicolumn{2}{|h|}{$0.012mm$}
hhline{>{arrayrulecolor{LightSteelBlue}}->{arrayrulecolor{black}}---} %cline{2-4}
& textbf{Precisión de repetibilidad} & multicolumn{2}{|h|}{0.003mm}
hhline{>{arrayrulecolor{LightSteelBlue}}->{arrayrulecolor{black}}---} %cline{2-4}
& textbf{Área de trabajo} & multicolumn{2}{|h|}{$110mm x 110mm$}
hhline{>{arrayrulecolor{LightSteelBlue}}->{arrayrulecolor{black}}---} %cline{2-4}
& textbf{Posicionamiento} & multicolumn{2}{|h|}{Luz roja posiciona, doble luz roja enfoca}
hhline{>{arrayrulecolor{LightSteelBlue}}->{arrayrulecolor{black}}---} %cline{2-4}
& textbf{Línea de marcado} & multicolumn{2}{|h|}{Sin límite el área de trabajo}
hhline{>{arrayrulecolor{LightSteelBlue}}->{arrayrulecolor{black}}---} %cline{2-4}
multirowcell{-8}{Parámetrosde marcadoláser} & textbf{Velocidad} & multicolumn{2}{|h|}{$0-200m/min$}
%-----------------------------------------------------------------
Xhline{1.2pt} %hline
& textbf{Suministro de energía} & multicolumn{2}{|h|}{$220V$}
%cline{2-4}
hhline{>{arrayrulecolor{LightSteelBlue}}->{arrayrulecolor{black}}---}
multirowcell{-2}{Otros} & textbf{Consumo de potencia} & multicolumn{2}{|h|}{$600W$}
Xhline{1.2pt} %hline
end{tabular}
end{adjustbox}
end{table}
end{document}
Here is what you can do with the environment {NiceTabular}
of nicematrix
.
You can merge cells both horizontally and vertically with the command Block
.
The key hvlines
draws all the rules except in the blocks. Of course, these rules have all a width (thickness) equal to arrayrulewidth
. That's why I have drawn the heavy rules after.
nicematrix
creates PGF/Tikz nodes under the array. It's possible to use these nodes with Tikz. That's what I have done to draw the heavy rules.
nicematrix
provides a built-in command diagbox
The code:
documentclass[10pt,a4paper]{report}
usepackage[spanish]{babel}
usepackage[T1]{fontenc}
usepackage{lmodern}
usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
usepackage[svgnames,x11names]{xcolor}
usepackage{nicematrix}
usepackage{tikz}
begin{document}
begin{table}
centering
begin{NiceTabular}{wc{2cm}>{bfseries}ccc}[hvlines,cell-space-limits = 4pt]
CodeBefore
columncolor{LightSteelBlue}{1}
rectanglecolor{Gainsboro}{3-2}{-}
rowcolor{white}{1}
rectanglecolor{LightSteelBlue}{2-1}{2-2}
rectanglecolor{Azure3}{2-3}{2-4}
rectanglecolor{Azure3}{5-3}{5-4}
Body
Block{1-4}{textsc{Características y parámetros...}} & & &
Block{1-2}{diagbox{strut Ítem}{strut Modelo}} & & makebox[3.5cm][c]{textbf{Modelo1}} &
makebox[3.5cm][c]{textbf{Modelo2}}
Block{9-1}{Característicasmáquinaláser}
& Material de máquina & Block{1-2}{Estructuras de aluminio}
& Láser & Block{1-2}{Generador de láser: Fibra óptica}
& Potencia de salida & $geq 20$ W & $geq 30$ W
& Longitud de onda & Block{1-2}{$1064$ nm}
& Lentes & Block{1-2}{Sistema de escaneo de alta precisión2 dimensiones}
& Velocidad de marcado & Block{1-2}{$<8000$ mm/s}
& Block{2-1}{textbf{Sistema de control principal}} & Block{1-2}{Pantalla* integrada}
& & Block{1-2}{Controlador táctil externo $10.4''$}
& Sistema de enfriamiento & Block{1-2}{Sistema de enfriamientomediante agua o aire}
%------------------------------------------------------------------------
Block{8-1}{Parámetrosde marcadoláser}
& Block{1-1}{Aumento de enfoque lentes (zoom)} & Block{1-2}{$190$ mm en doble enfoque con luz roja}
& Tipo de fuente de marcado & Block{1-2}{Marcado elegible entre gráficos vectorialeso mapas de bits}
& Ancho de línea mínimo & Block{1-2}{$0.012$ mm}
& Precisión de repetibilidad & Block{1-2}{$0.003$ mm}
& Área de trabajo & Block{1-2}{$110$ mm $times$ $110$ mm}
& Posicionamiento & Block{1-2}{Luz roja posiciona, doble luz roja enfoca}
& Línea de marcado & Block{1-2}{Sin límite el área de trabajo}
& Velocidad & Block{1-2}{$0$-$200$ m/min}
%-----------------------------------------------------------------
Block{2-1}{Otros} & Suministro de energía & Block{1-2}{$220$ V}
& Consumo de potencia & Block{1-2}{$600$ W}
CodeAfter
tikz
draw [line width = 1.2pt]
(1-|1) rectangle (22-|5)
(2-|1) -- (2-|5)
(3-|1) -- (3-|5)
(12-|1) -- (12-|5)
(20-|1) -- (20-|5)
(3-|2) -- (22-|2)
(2-|3) -- (22-|3) ;
end{NiceTabular}
end{table}
end{document}
You need two compilations (because informations, in particular for PGF/Tikz nodes, will be written on the aux
file after the first compilation).
Correct answer by F. Pantigny on July 27, 2021
With use of the tabularx
package and accordingly defined multicolumn
cells:
documentclass[10pt,a4paper]{report}
usepackage[margin=2cm]{geometry}
usepackage[table,svgnames,x11names]{xcolor}
usepackage{hhline}
usepackage{makecell, multirow, tabularx}
newcolumntype{C}{>{centeringarraybackslash}X}
newcolumntype{L}{>{raggedrightarraybackslash}X}
usepackage{siunitx} % new
begin{document}
begin{table}[ht]
newcommandhlx {hhline{|>{arrayrulecolor{LightSteelBlue}}->{arrayrulecolor{black}}|-|-|-|}}
newcommandhlxx{hhline{|>{arrayrulecolor{LightSteelBlue}}-->{arrayrulecolor{black}}|-|-|}}
newcommandmcxx[1]{multicolumn{2}
{>{hsize=dimexpr 1.6hsize+2tabcolsep+1.2pt}C!{vrule width1.2pt}} % hsize=textwidth/4
{cellcolor{Gainsboro}{#1}}}
renewcommandarraystretch{1.1}
renewcommandtabularxcolumn[1]{m{#1}}
small
centering
begin{tabularx}{linewidth}
{!{vrule width1.2pt}>{columncolor{LightSteelBlue}hsize=0.8hsize}X
!{vrule width1.2pt}>{columncolor{Gainsboro}bfserieshsize=1.6hsize}L
!{vrule width1.2pt}>{columncolor{Gainsboro}hsize=0.8hsize}C
!{vrule width1.2pt}>{columncolor{Gainsboro}hsize=0.8hsize}C!{vrule width1.2pt}
}
Xhline{1.2pt}
multicolumn{4}{c}{textsc{Características y parámetros dots}}
Xhline{1pt}
rowcolor{LightSteelBlue}
multicolumn{2}{!{vrule width1.2pt} c !{vrule width1.2pt}}{}
& multicolumn{2}{c!{vrule width1.2pt}}{textbf{Modelo}}
hlxx
rowcolor{LightSteelBlue}
multicolumn{2}{!{vrule width1.2pt}
>{hsize=dimexpr 2.4hsize+2tabcolsep+1.2pt}X
!{vrule width1.2pt}
}
{multirow{-2}{=}{centeringtextbf{item}}}
& textbf{1} & textbf{1}
Xhline{1pt}
& Material de máquina
& mcxx{Estructuras de aluminio}
hlx
& Láser
& mcxx{Generador de láser: Fibra óptica}
hlx
& Potencia de salida
& cellcolor{Azure3}{$geq 20W$}
& cellcolor{Azure3}{$geq 30W$}
hlx
& Longitud de onda & mcxx{SI{1064}{nm}}
hlx
& Lentes & mcxx{Sistema de escaneo de
alta precisión 2 dimensiones}
hlx
& Lentes & mcxx{Sistema de escaneo de
alta precisión 2 dimensiones}
hlx
& Velocidad de marcado & mcxx{SI{<8000}{mm/s}}
hlx
& Sistema de control principal
& mcxx{Controlador táctil externo SI{10.4}{''}
Pantalla* integrada}
hlx
multirow{-12}{=}{Características máquina láser}
& Sistema de enfriamiento & mcxx{Sistema de enfriamiento
mediante agua o aire}
%------------------------------------------------------------------------
Xhline{1pt}
& Aumento de enfoque lentes (zoom)
& mcxx{SI{190}{mm} en doble
enfoque con luz roja}
hlx
& Tipo de fuente de marcado & mcxx{Marcado elegible entre gráficos
vectoriales o mapas de bits}
hlx
& Ancho de línea mínimo & mcxx{SI{0.012}{mm}}
hlx
& Precisión de repetibilidad& mcxx{SI{0.003}{mm}}
hlx
& Área de trabajo & mcxx{SI{110x110}{mm}}
hlx
& Posicionamiento & mcxx{Luz roja posiciona,
doble luz roja enfoca}
hlx
& Línea de marcado & mcxx{Sin límite el área de trabajo}
hlx
multirow{-9}{=}{Parámetros de marcado láser}
& Velocidad & mcxx{SIrange{0}{200}{m/min}}
%-----------------------------------------------------------------
Xhline{1pt}
& Suministro de energía & mcxx{SI{220}{V}}
hlx
multirow{-2}{=}{Otros}
& Consumo de potencia & mcxx{SI{600}{W}}
Xhline{1.2pt}
end{tabularx}
end{table}
end{document}
Answered by Zarko on July 27, 2021
It is known that makecell
has problems with table colouring, because there are nested tabulars with their own tabcolsep
s behind the scene. So I used Centerstack
from stackengine
. Further, to ensure the last two columns have equal width, I defined them as X
columns and used a tabularx
environment. Also used boldline
for thick vertical lines for its simpler syntax, and simplified the use of hhline
:
documentclass[10pt, a4paper]{report}
usepackage[utf8]{inputenc}
usepackage[spanish,es-noshorthands]{babel} %es-noshorthands sirve para que el cambio de color en hhline sea efectivo
usepackage{amsmath,amssymb}
usepackage[margin=2cm]{geometry}
usepackage[table,svgnames,x11names]{xcolor}
usepackage{hhline}
usepackage{boldline}
usepackage{multirow,makecell,array}
usepackage{diagbox}
usepackage{tabularx}
usepackage{tabulary}
usepackage{adjustbox}
usepackage[column= O]{cellspace}
setlength{cellspacetoplimit}{3pt}
setlength{cellspacebottomlimit}{3pt}
addparagraphcolumntypes{X}
usepackage{anyfontsize}
usepackage[usestackEOL]{stackengine}
usepackage{siunitx}
begin{document}
newcolumntype{g}{>{columncolor{LightSteelBlue}}c}
newcolumntype{h}{>{columncolor{Gainsboro}}Oc}
newcolumntype{k}{>{columncolor{Azure3}centeringarraybackslash}X}
begin{table}
scriptsize
centering
setlength{extrarowheight}{2pt}
sisetup{range-phrase=--, range-units=single}
begin{tabularx}{linewidth}{V{3}g V{3}h V{3}kV{3}k V{3}}%
Xhline{1.2pt}
multicolumn{4}{V{3}OcV{3}}{{textsc{Características y parámetros...}}}
Xhline{1.2pt}
multicolumn{2}{V{3}gV{3}}{diagbox[innerwidth=6cm, linewidth=1.2pt]{textbf{Ítem}}{textbf{Modelo}}} & textbf{Modelo1} & textbf{Modelo2}
Xhline{1.2pt} %
& textbf{Material de máquina} & multicolumn{2}{hV{3}}{Estructuras de aluminio} [-0.5pt]
hhline{~---}
& textbf{Láser} & multicolumn{2}{hV{3}}{Generador de láser: Fibra óptica} [-0.45pt]
hhline{~---}
& textbf{Potencia de salida} & $geq SI{20}{W}$ & $geq SI{30}{W}$ [-0.5pt]
hhline{~---}
& textbf{Longitud de onda} & multicolumn{2}{hV{3}}{SI{1064}{nm}} [-0.5pt]
hhline{~---}
& textbf{Lentes} & multicolumn{2}{hV{3}}{Centerstack{Sistema de escaneo de alta precisión2 dimensiones}} [-0.5pt]
hhline{~---}
& textbf{Velocidad de marcado} & multicolumn{2}{hV{3}}{$<SI{8000}{mmper s}$} [-0.5pt]
hhline{~---}
& textbf{Sistema de control principal} & multicolumn{2}{hV{3}}{Centerstack{Pantalla* integrada Controlador táctil externo 10.4''}} [-0.5pt]
hhline{~---}
multirowcell{-11}{Característicasmáquina láser} & textbf{Sistema de enfriamiento} & multicolumn{2}{hV{3}}{%
Centerstack{Sistema de enfriamientomediante agua o aire}}
%------------------------------------------------------------------------
Xhline{1.2pt}
& Centerstack{textbf{Aumento de enfoque} textbf{lentes (zoom)}} & multicolumn{2}{hV{3}}{190,mm en doble enfoque con luz roja} [-0.5pt]
hhline{~---}
& textbf{Tipo de fuente de marcado} & multicolumn{2}{hV{3}}{Centerstack{Marcado elegible entre gráficos vectorialeso mapas de bits}} [-0.5pt]
hhline{~---}
& textbf{Ancho de línea mínimo} & multicolumn{2}{hV{3}}{0.012,mm} [-0.5pt]
hhline{~---}
& textbf{Precisión de repetibilidad} & multicolumn{2}{hV{3}}{0.003,mm} [-0.45pt]
hhline{~---}
& textbf{Área de trabajo} & multicolumn{2}{hV{3}}{$SI{110}{mm} × SI{110}{mm}$} [-0.5pt]
hhline{~---}
& textbf{Posicionamiento} & multicolumn{2}{hV{3}}{Luz roja posiciona, doble luz roja enfoca} [-0.5pt]
hhline{~---}
& textbf{Línea de marcado} & multicolumn{2}{hV{3}}{Sin límite el área de trabajo} [-0.5pt]
hhline{~---}
multirow{-10}{*}[2ex]{Centerstack{Parámetrosde marcadoláser}} & textbf{Velocidad} & multicolumn{2}{hV{3}}{SIrange{0}{200}{m/min}}
%-----------------------------------------------------------------
Xhline{1.2pt}
& textbf{Suministro de energía} & multicolumn{2}{hV{3}}{220,V} [-0.45pt]
hhline{~---}
multirow{-2}{*}{Otros} & textbf{Consumo de potencia} & multicolumn{2}{hV{3}}{ 600,W }
Xhline{1.2pt}
end{tabularx}
end{table}
end{document}
Answered by Bernard on July 27, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP