Ausrichten der Ziffern in der Tabelle mit dem Prozentzeichen in der ersten Zeile

Ausrichten der Ziffern in der Tabelle mit dem Prozentzeichen in der ersten Zeile

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:

Bildbeschreibung hier eingeben

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.

Bildbeschreibung hier eingeben

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 \midruledient dazu, deutlich zu machen, dass es sich in der Zeile um unterschiedliche Daten handelt.

Bildbeschreibung hier eingeben

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}

Bildbeschreibung hier eingeben

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.

Bildbeschreibung hier eingeben

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 tabularDefinition 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}

Bildbeschreibung hier eingeben

verwandte Informationen