我的 LaTeX 表格有问题。一些单元格填充得不太好。我使用“makecell”包来做多行并定义新类型的列,而不是使用 colortbl 包(因为我读到这些包可能会有冲突),但我不知道为什么会发生这种情况。另外,我使用 hhline 来制作适合我的表格的线条,并使用宏来更改每列线条的颜色(顺便说一句,我不得不否认西班牙语 babel 包中的简写对宏有用),但我仍然得到白色的交叉点。最后,我修改了边缘线的粗细,但这并不奏效。有人可以给我一个建议吗?谢谢。下面是我的代码。
PD。我尝试使用“tabularx”和“tabulary”,但对我不起作用。
\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ón\\2 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ísticas\\máquina\\láser} & \textbf{Sistema de enfriamiento} & \multicolumn{2}{|h|}{\cellcolor{Gainsboro} \makecell{Sistema de enfriamiento\\mediante 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 vectoriales\\o 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ámetros\\de marcado\\lá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}
答案1
以下是您可以使用的环境执行{NiceTabular}
的操作nicematrix
。
您可以使用命令水平和垂直合并单元格
\Block
。关键
hvlines
是绘制除块之外的所有规则。当然,这些规则的宽度(厚度)都等于\arrayrulewidth
。这就是为什么我在后面绘制了较粗的规则。nicematrix
在数组下创建 PGF/Tikz 节点。可以将这些节点与 Tikz 一起使用。这就是我绘制重规则所做的事情。nicematrix
提供内置命令\diagbox
代码:
\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ísticas\\máquina\\lá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ón\\2 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 enfriamiento\\mediante agua o aire} \\
%------------------------------------------------------------------------
\Block{8-1}{Parámetros\\de marcado\\lá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 vectoriales\\o 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}
aux
您需要两次编译(因为信息,特别是 PGF/Tikz 节点的信息,将在第一次编译后写入文件中)。
答案2
使用tabularx
包和相应定义的\multicolumn
单元:
\documentclass[10pt,a4paper]{report}
\usepackage[margin=2cm]{geometry}
\usepackage[table,svgnames,x11names]{xcolor}
\usepackage{hhline}
\usepackage{makecell, multirow, tabularx}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\newcolumntype{L}{>{\raggedright\arraybackslash}X}
\usepackage{siunitx} % new
\begin{document}
\begin{table}[ht]
\newcommand\hlx {\hhline{|>{\arrayrulecolor{LightSteelBlue}}->{\arrayrulecolor{black}}|-|-|-|}}
\newcommand\hlxx{\hhline{|>{\arrayrulecolor{LightSteelBlue}}-->{\arrayrulecolor{black}}|-|-|}}
\newcommand\mcxx[1]{\multicolumn{2}
{>{\hsize=\dimexpr 1.6\hsize+2\tabcolsep+1.2pt}C!{\vrule width1.2pt}} % \hsize=\textwidth/4
{\cellcolor{Gainsboro}{#1}}}
\renewcommand\arraystretch{1.1}
\renewcommand\tabularxcolumn[1]{m{#1}}
\small
\centering
\begin{tabularx}{\linewidth}
{!{\vrule width1.2pt}>{\columncolor{LightSteelBlue}\hsize=0.8\hsize}X
!{\vrule width1.2pt}>{\columncolor{Gainsboro}\bfseries\hsize=1.6\hsize}L
!{\vrule width1.2pt}>{\columncolor{Gainsboro}\hsize=0.8\hsize}C
!{\vrule width1.2pt}>{\columncolor{Gainsboro}\hsize=0.8\hsize}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.4\hsize+2\tabcolsep+1.2pt}X
!{\vrule width1.2pt}
}
{\multirow{-2}{=}{\centering\textbf{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}
答案3
众所周知,在表格着色方面存在问题,因为后台makecell
有嵌套的表格,它们有自己的。所以我使用了。此外,为了确保最后两列的宽度相等,我将它们定义为列并使用了环境。还用于粗垂直线,因为它的语法更简单,并简化了 的使用:\tabcolsep
\Centerstack
stackengine
X
tabularx
boldline
\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}\centering\arraybackslash}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ón\\2 dimensiones}} \\[-0.5pt]
\hhline{~---}
& \textbf{Velocidad de marcado} & \multicolumn{2}{hV{3}}{$<\SI{8000}{\mm\per 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ísticas\\máquina láser} & \textbf{Sistema de enfriamiento} & \multicolumn{2}{hV{3}}{%
\Centerstack{Sistema de enfriamiento\\mediante 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 vectoriales\\o 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ámetros\\de marcado\\lá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}