
Ich möchte die Ziffern unter Berücksichtigung der Prozentzeichen in der ersten Zeile ausrichten.
MWE:
\documentclass{article}
\usepackage{booktabs}
\begin{document}
\begin{table}
\centering
\begin{tabular}{@{}rrrr@{}}\toprule
Col1 & Col2 & Col3 & Col4\\ \midrule
10\% & 20\% & 30\% & 40\%\\
5 & 6 & 7 & 8 \\
115 &116 &117 &118 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
Ich erhalte die folgende Ausgabe:
Ich möchte die Ziffern jedoch wie in diesem Bild gezeigt ausrichten, dabei das Prozentzeichen in der ersten Zeile berücksichtigen und die folgenden Zahlen entsprechend einrücken.
Antwort1
Ihre Leser können sich nicht sicher sein, ob sich jeder Eintrag auf einen Prozentsatz bezieht: Geben Sie dies in der Kopfzeile an.
\documentclass{article}
\usepackage{siunitx,booktabs}
\begin{document}
\begin{tabular}{
@{}
l
*{2}{S[table-format=3.0]}
@{}
}
\toprule
Debt/Assets & {2003} & {2004} \\
& {(\%)} & {(\%)} \\
\midrule
\SI{<50}{\percent} & {--} & 10 \\
\SIrange{50}{59.9}{\percent} & 20 & 5 \\
\SIrange{60}{69.9}{\percent} & {--} & 10 \\
\SIrange{70}{79.9}{\percent} & {--} & 10 \\
\SIrange{80}{89.9}{\percent} & 40 & 10 \\
\SI{\ge90}{\percent} & 40 & 55 \\
\cmidrule(lr){2-2} \cmidrule(l){3-3}
Total & 100 & 100 \\
Mean & 85 & 80 \\
Median & 85 & 94 \\
\midrule
Number of projects & {5} & {20} \\
\bottomrule
\end{tabular}
\end{document}
Das Finale \midrule
dient dazu, deutlich zu machen, dass es sich in der Zeile um unterschiedliche Daten handelt.
Wenn Sie den schlechten Stil des Bildes bevorzugen …
\documentclass{article}
\usepackage{siunitx,booktabs}
\newcommand{\dashpercent}{%
\makebox[1.5em][r]{--\makebox[0pt][l]{\,\%}}%
}
\newcommand{\dash}{\makebox[1.5em][r]{--}}%
\newcommand{\ppercent}{\makebox[0pt][l]{\,\%}}
\begin{document}
\begin{tabular}{
@{}
l
*{2}{S[table-format=3.0]@{\hspace{1.2em}}}
@{}
}
\toprule
Debt/Assets & {2003} & {2004} \\
\midrule
\SI{<50}{\percent} & {\dashpercent} & 10\ppercent \\
\SIrange{50}{59.9}{\percent} & 20 & 5 \\
\SIrange{60}{69.9}{\percent} & {\dash} & 10 \\
\SIrange{70}{79.9}{\percent} & {\dash} & 10 \\
\SIrange{80}{89.9}{\percent} & 40 & 10 \\
\SI{\ge90}{\percent} & 40 & 55 \\
\cmidrule(lr){2-2} \cmidrule(lr){3-3}
Total & 100\ppercent & 100\ppercent \\
Mean & 85\ppercent & 80\ppercent \\
Median & 85\ppercent & 94\ppercent \\
\midrule
Number of projects & {5} & {20} \\
\bottomrule
\end{tabular}
\end{document}
Antwort2
Sie könnten ein \phantom
%
Symbol definieren:
\newcommand{\pct}{\phantom{\%}}
Dann
\begin{tabular}{@{}rrrr@{}}\toprule
Col1 & Col2 & Col3 & Col4\\ \midrule
10\% & 20\% & 30\% & 40\%\\
5\pct & 6\pct & 7\pct & 8\pct \\
115\pct &116\pct &117\pct &118\pct \\
\bottomrule
\end{tabular}
erzeugt die gewünschte Ausgabe, ohne dass das %
Vorzeichen über den Spaltenrand hinausragt.
Antwort3
Definieren Sie es vorübergehend \%
als neu \rlap
. Erweitern Sie außerdem die Tabelle rechts um die Breite eines \%
. Der Vorteil ist, dass sich der Inhalt der tabular
Definition nicht ändert.
\documentclass{article}
\usepackage{booktabs,calc}
\begin{document}
\begin{table}
\centering
\let\svpc\%
\setbox0=\hbox{\%}
\edef\tmp{\the\wd0}
\renewcommand\%{\rlap{\svpc}}
\begin{tabular}{@{}rrrr@{\hspace{\tmp}}}\toprule
Col1 & Col2 & Col3 & Col4\\ \midrule
10\% & 20\% & 30\% & 40\%\\
5 & 6 & 7 & 8 \\
115 &116 &117 &118 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}