
Ich versuche, eine Hintergrundfarbe für meine Tabellen zu erhalten, die sowohl aus als auch besteht multirows
. multicolums
Ohne Farbe funktioniert die Tabelle einwandfrei. Aber was ich einfärben möchte, erstreckt sich über eine unterschiedliche Anzahl von Zeilen. Ich habe versucht, vier Zeilen mit derselben Farbe einzufärben, wobei sich eine Zelle über vier Zeilen und eine Zelle über zwei Zeilen erstreckt.
Aber wenn ich das mache, wird bei der zweiten Färbung die Farbe über dem mehrzeiligen Text angewendet.
Wie Sie sehen, rowcolor
entfernt die zweite Zeile den oberen Teil von „Grad“ cell 1
und die dritte Zeile entfernt den unteren Teil von „Grad“ und den unteren Teil von „Dicke“. Irgendwelche Lösungsideen?
mein Text:
\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}
Antwort1
Basierend auf Vermutungen zu Ihrer Präambel und der Bedeutung der verwendeten Befehle:
\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}
Bearbeiten:
Makros makecell
haben Optionen b
für die untere Position, t
für die obere Position, l
für linksbündig ausgerichteten Zellinhalt und r
für rechtsbündig ausgerichteten Zellinhalt. Bei Verwendung ohne Optionen wird der Zellinhalt vertikal und horizontal zentriert.
Wenn im obigen MWE die zweite Tabellenzeile ersetzt wird durch
\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} } \\
dann sieht die Tabelle wie folgt aus:
Antwort2
So können Sie diese Tabelle mit erstellen {NiceTabular}
. nicematrix
Egal, welchen PDF-Viewer Sie verwenden, Sie werden keine dünnen weißen Linien sehen.
\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}
Sie benötigen mehrere Kompilierungen (da nicematrix
im Hintergrund PGF/Tikz-Knoten verwendet werden).