Gekleurde rijen combineren met een afwijkende inter-column spacing

Een gekleurde rij is geen probleem in LaTeX. Een afwijkende ruimte tussen twee cellen (@{}) ook niet. Maar deze twee combineren kan problemen opleveren. Hoe pak je dat dan aan?

Als je een tabel hebt met een decimaal getal erin, wil je dat die getallen uitgelijnd worden op het scheidingsteken. De bekende manier om dat te doen, is:

\begin{tabular}{|l r @{.} l |}
\hline
\rowcolor{gray!25} \textbf{Wat} & \multicolumn{2}
{>{\columncolor{gray!25}}c|}{\textbf{Getal}} \\ \hline \hline
1e getal & 123 & 4 \\ \hline
2e getal & 5 & 6789 \\ \hline
\end{tabular}
LaTeX rand 1

Kleur toevoegen

Als je nu een kleur aan zo’n tabel wilt toevoegen, gebruik je ‘\rowcolor’. Door de tweede regel te kleuren, gaat je tabel er als volgt uitzien:

\begin{tabular}{|l r @{.} l |}
\hline
\rowcolor{gray!25} \textbf{Wat} & \multicolumn{2}
{>{\columncolor{gray!25}}c|}{\hspace*{6pt}\textbf{Getal}} \\ \hline \hline
\rowcolor{green!10} 1e getal & 123 & 4 \\ \hline
2e getal & 5 & 6789 \\ \hline
\end{tabular}
LaTeX rand 2

Maar dat wil je niet hebben! Een deel van de tabel verdwijnt, omdat ‘\rowcolor’ geen rekening houdt met de afwijkende ruimtes tussen kolommen. Daar kan je wat aan doen. De package dcolumn kan wel goed met kleuren en afwijkende ruimtes tussen cellen overweg:

\begin{tabular}{|p{1.5cm} @{\hspace{-2pt}}D{.}{.}{3} |}
\hline
\rowcolor{gray!25}\textbf{Wat} & \multicolumn{1}
{>{\columncolor{gray!25}}c|}{\textbf{Getal}} \\ \hline
\hline
\rowcolor{green!10} 1e getal & 123.4 \\ \hline
2e getal & 4.6789 \\ \hline
\end{tabular}
LaTeX rand 3

In plaats van ‘@{}’, gebruik je nu ‘@D{.}{.}{3}’, waarbij de eerste punt ‘{.}’ door een punt ‘{.}’ vervangen wordt, en vervolgens de tweede kolom uit drie cijfers ‘{3}’ bestaat. Uit zichzelf lijnt de package dcolumn links uit; daarom heb ik bij de titel van de kolom gebruik gemaakt van ‘\multicolumn’ voor één cel; daarmee kan je voor die cel de uitlijning aangeven.

Tags: , , , , , , ,

Leave a Reply