
Я бы хотел выровнять цифры с учетом символов процентов в первой строке.
МВЭ:
\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}
Я получаю следующий вывод:
Однако я хотел бы выровнять цифры, как показано на этом изображении, приняв во внимание символ процента в первой строке и сделав соответствующий отступ для следующих цифр.
решение1
Ваши читатели не будут уверены, что каждая запись относится к процентному значению: укажите это в заголовке.
\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}
Финал \midrule
помогает прояснить, что строка касается разных данных.
Если вам больше по душе плохой стиль на картинке…
\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}
решение2
Вы можете определить \phantom
%
символ:
\newcommand{\pct}{\phantom{\%}}
Затем
\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}
обеспечивает желаемый результат, при этом %
знак не выходит за пределы края столбца.
решение3
Временно переопределить \%
как \rlap
. Также растянуть таблицу справа на ширину \%
. Преимущество в том, что содержание определения tabular
не меняется.
\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}