
Gostaria de alinhar os dígitos levando em consideração os símbolos de porcentagem na primeira linha.
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}
Eu recebo a seguinte saída:
No entanto, gostaria de alinhar os dígitos conforme mostrado nesta imagem, levando em consideração o símbolo de porcentagem na primeira linha e recuando os números seguintes de acordo.
Responder1
Seus leitores não terão certeza de que cada entrada se refere a uma porcentagem: indique isso no cabeçalho.
\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}
A final \midrule
ajuda a deixar claro que a linha trata de dados diferentes.
Se você prefere o estilo ruim da foto…
\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}
Responder2
Você poderia definir um \phantom
%
símbolo:
\newcommand{\pct}{\phantom{\%}}
Então
\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}
produz a saída desejada, sem que o %
sinal ultrapasse a borda da coluna.
Responder3
Redefinir temporariamente \%
como um arquivo \rlap
. Além disso, estenda a tabela à direita pela largura de a \%
. A vantagem é que o conteúdo da tabular
definição não muda.
\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}