
Estoy tratando de obtener un color de fondo en mis mesas que consista en ambos multirows
y multicolums
. Sin ningún color, la mesa funciona bien. Pero lo que quiero colorear se expande en cantidades variables de filas. Intenté colorear cuatro filas con el mismo color, con una celda que se extiende sobre cuatro filas y una celda que se extiende sobre dos filas.
Pero si hago eso con el segundo color, aplico el color encima del texto de varias filas.
Como puede ver, la segunda línea rowcolor
elimina la parte superior de 'Grado' cell 1
y el color de la tercera fila eliminó la parte inferior de 'Grado' y la parte inferior de Espesor. ¿Alguna idea de solución?
mi texto:
\begin{table}[ht]
\begin{tabular}{|c|c|lll|}
\hline
\rowcolor{blue!20}
\multirow{4}{*}{Grades}&Yield&\multicolumn{3}{c|}{Impact bending test}\\
\rowcolor{blue!20}
&Strength&\multirow{2}{*}{Thickness}&Test& Impact\\
\rowcolor{blue!20}
&$\mathbf{R_e[N/mm^2]}$& &{\bf temperature} & {\bf work}\\
\rowcolor{blue!20}
&\bf{transv.min.} &\bf{ transv.} &$\mathbf{[\grader]}$ & {\bf [J]} \\\hline
\multirow{ 1}{*}{{\bf DH36}} & & {\bf 5.5 – 7.0} & {\bf -40} & {\bf 24} \\
\hline
\end{tabular}
\end{table}
Respuesta1
Basado en conjeturas sobre el preámbulo y el significado de los comandos utilizados:
\documentclass{article}
\usepackage{siunitx}
\usepackage{makecell,multirow}
\usepackage[table]{xcolor}
\begin{document}
\begin{table}[htb]
\sisetup{detect-weight=true}
\renewcommand\arraystretch{1.3}
\begin{tabular}{|*{2}{>{\bfseries}c|}
*{3}{>{\bfseries}c}|}
\hline
\rowcolor{blue!20}
& & \multicolumn{3}{c|}{\textbf{Impact bending test}} \\
\rowcolor{blue!20}
\multirow{-2}*{Grades}
& \multirow{-3}*[-1ex]{\makecell{Yield\\ Strength\\
{$\mathbf{R_e[\si{N\per\milli\meter^2}]}$} \\transv. min.}}
& \makecell{Thickness\\ transv.}
& \makecell{Test\\ temperature\\ \si{\celsius}}
& \makecell{Impact\\ work\\ \si{J} } \\
\hline
DH36 & & 5.5 – 7.0 & -40 & 24 \\
\hline
\end{tabular}
\end{table}
\end{document}
Editar:
La macro makecell
tiene opciones b
para la posición inferior, t
la posición superior, l
el contenido de la celda alineado a la izquierda y r
el contenido de la celda alineado a la derecha. Al usarlo sin opciones, el contenido de la celda está centrado vertical y horizontalmente.
Si en el MWE anterior reemplace la segunda fila de la tabla con
\multirow{-3}*{Grades}
& \multirow{-3}*[3pt]{\makecell{Yield\\ Strength\\
{$\mathbf{R_e[\si{N\per\milli\meter^2}]}$} \\transv. min.}}
& \makecell[b]{Thickness\\ transv.}
& \makecell[b]{Test\\ temperature\\ \si{\celsius}}
& \makecell[b]{Impact\\ work\\ \si{J} } \\
que la tabla es la siguiente:
Respuesta2
Así es como puedes hacer esa tabla con {NiceTabular}
of nicematrix
. No verá líneas blancas finas, independientemente del visor de PDF que utilice.
\documentclass{article}
\usepackage{siunitx}
\usepackage{xcolor}
\usepackage{nicematrix}
\begin{document}
\begin{table}[htb]
\sisetup{detect-weight=true}
\renewcommand\arraystretch{1.3}
\begin{NiceTabular}{|c|c|ccc|}[cell-space-top-limit=3pt]
\Hline
\RowStyle[nb-rows=2,rowcolor=blue!20]{\bfseries}
\Block{2-1}{Grades}
& \Block{2-1}{Yield\\ Strength\\ $\mathbf{R_e[\unit{N\per\milli\meter^2}]}$ \\transv. min.}
& \Block{1-3}{Impact bending test} \\
&
& \Block{}{Thickness\\ transv.}
& \Block{}{Test\\ temperature\\ \unit{\celsius}}
& \Block{}{Impact\\ work\\ \unit{J}} \\
\Hline
DH36 & & $5.5$ -- $7.0$ & $-40$ & $24$ \\
\Hline
\end{NiceTabular}
\end{table}
\end{document}
Necesita varias compilaciones (porque nicematrix
utiliza nodos PGF/Tikz bajo el capó).