Verwendung von Tausendertrennzeichen und Kommas bei Dezimalzahlen und Formatierungsprobleme

Verwendung von Tausendertrennzeichen und Kommas bei Dezimalzahlen und Formatierungsprobleme

Ich bin ein echter LaTex-Neuling und hätte gerne Hilfe beim Formatieren der folgenden Tabelle:

\documentclass[12pt]{article}
\usepackage{booktabs}
\usepackage{caption}
\usepackage{times}
\usepackage{dcolumn}
\usepackage[vmargin=3cm, hmargin=2.5cm]{geometry}
\usepackage[group-separator={.}]{siunitx}
\newcolumntype{d}[1]{D{.}{.}{#1}}
\usepackage[group-separator={,}]{siunitx}
\begin{document}




\begin{table}[ht]
\centering\setlength\extrarowheight{2pt}
\caption{Estat\'{i}sticas - Contribui\c{c}\~{o}es} 
\begin{tabular}{@{\extracolsep{4pt}}ll*{6}{d{5.2}}}
  \toprule
  {} & {}  & \multicolumn{3}{c}{Mediana}  & \multicolumn{3}{c}{Desvio Padr\~{a}o}\\
  \cmidrule(lr){3-5} 
  \cmidrule(lr){6-8} 
Ano & Vari\'{a}vel & {Controle} & {Tratado} & {Total} & {Controle} & {Tratado} & {Total} \\ 
  \midrule
2012 & Total de receitas & 3413.90 & 8645.19 & 3967.80 & 18077.13 & 94897.57 & 45339.62 \\ 
   & \hspace{4mm}Pessoas f\'{i}sicas & 300.00 & 2500.00 & 570.00 & 6201.29 & 20180.83 & 10763.53 \\ 
   & \hspace{4mm} Empresas & 0.00 & 1000.00 & 0.00 & 0.00 & 27854.24 & 12448.01 \\ 
   & \hspace{4mm} Partidos & 0.00 & 0.00 & 0.00 & 7193.99 & 54075.33 & 24547.63 \\ 
   & \hspace{4mm} Recursos pr\'{o}prios & 1550.00 & 1850.00 & 1598.00 & 5694.75 & 12012.86 & 7382.93 \\ 
   & \hspace{4mm} Outros recursos & 91.88 & 230.00 & 103.13 & 8456.98 & 21893.65 & 12259.07 \\ \\
   & Pessoas f\'{i}sicas (\%) & 12.10 & 30.20 & 16.90 & 31.06 & 28.57 & 30.73 \\ 
   & Empresas (\%) & 0.00 & 14.20 & 0.00 & 0.00 & 24.69 & 14.21 \\ 
   & Partidos (\%) & 0.00 & 0.00 & 0.00 & 9.78 & 9.50 & 9.73 \\ 
   & Recursos pr\'{o}prios (\%) & 57.90 & 22.70 & 49.90 & 36.33 & 28.93 & 36.31 \\ 
   & Outros recursos (\%) & 2.90 & 2.50 & 2.80 & 27.84 & 16.73 & 26.23 \\
   \midrule
  2016 & Total de receitas & 3600.00 & 7106.27 & 4009.00 & 11740.78 & 52605.28 & 25877.30 \\ 
   & \hspace{4mm} Pessoas f\'{i}sicas & 800.00 & 2344.70 & 1000.00 & 6136.54 & 27232.84 & 13392.53 \\ 
   & \hspace{4mm} Empresas & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 \\ 
   & \hspace{4mm} Partidos & 0.00 & 0.00 & 0.00 & 4343.52 & 28402.71 & 13027.55 \\ 
   & \hspace{4mm} Recursos pr\'{o}prios & 1695.00 & 3000.00 & 1857.72 & 6576.61 & 20169.18 & 10796.12 \\ 
   & \hspace{4mm} Outros recursos & 37.50 & 88.00 & 44.80 & 1544.50 & 6476.34 & 3160.15 \\ \\
   & Pessoas f\'{i}sicas (\%) & 26.70 & 37.30 & 28.90 & 31.18 & 31.46 & 31.35 \\ 
   & Empresas (\%) & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 \\ 
   & Partidos (\%) & 0.00 & 0.00 & 0.00 & 13.50 & 13.18 & 13.44 \\ 
   & Recursos pr\'{o}prios (\%) & 56.00 & 48.80 & 54.60 & 33.71 & 32.59 & 33.54 \\ 
   & Outros recursos (\%) & 0.70 & 0.80 & 0.80 & 20.21 & 16.07 & 19.51 \\
   \bottomrule

\end{tabular}
\end{table}

\end{document}

Ich weiß nicht, warum, aber nach der Verwendung des dcolumnPakets wurden einige Spaltennamen kursiv angezeigt und nicht mit den entsprechenden Werten ausgerichtet. Warum ist das so und wie kann das Problem behoben werden?

Wie kann ich die Zahlen in der Tabelle mit Tausendertrennzeichen und Kommas vor den Dezimalstellen anzeigen? 1.000.000,00Zum Beispiel.

Noch etwas: Die Tabelle passt nicht gut auf die PDF-Seite, obwohl die für das Dokument erforderlichen Ränder verwendet werden. Wie kann ich sie zentrieren und passend machen? Das endgültige Dokument wird viele andere Tabellen enthalten und ich verstehe nicht wirklich, was die Vor- und Nachteile der Verwendung von floatingOptionen sind.

Ich weiß Ihre Hilfe wirklich zu schätzen! Alle anderen Kommentare/Vorschläge sind willkommen!

Danke schön!

Antwort1

Damit das tabellarische Material in den Textblock passt, sollten Sie (a) die @{\extracolsep{4pt}}Anweisungen entfernen, (b) eine tabular*Umgebung anstelle von verwenden tabularund (c) die Anweisung \setlength\tabcolsep{0pt}vor dem Starten der tabular*Umgebung ausgeben und die Anweisung @{\extracolsep{\fill}}im Header der tabular*Definition verwenden. Auf diese Weise zwingen Sie LaTeX, den bestmöglichen Wert für die Leerzeichen zwischen den Spalten zu berechnen.

Um diese Vorschläge umzusetzen, schlage ich vor, dass Sie das folgende Setup verwenden:

\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} 
     ll *{3}{S[table-format=4.2]} *{3}{S[table-format=5.2]} }

Bezüglich der Formatierung der Zahlen: Laden Sie nicht sowohl dcolumnals auch siunitx. Da Sie möchten, dass LaTeX automatisch Tausendertrennzeichen einfügt, schlage ich vor, dass Sie sich auf das siunitxPaket und seinen SSpaltentyp konzentrieren.

Das vollständige MWE – beachten Sie, dass das timesPaket veraltet ist. Ich schlage vor, Sie laden die Pakete newtxtextund newtxmath:

Bildbeschreibung hier eingeben

\documentclass[12pt]{article}
\usepackage{booktabs}
\usepackage[skip=0.333\baselineskip]{caption} % <-- new
\usepackage{newtxtext,newtxmath} % <-- new
\usepackage[vmargin=3cm, hmargin=2.5cm]{geometry}
\usepackage[group-separator={.},
            group-four-digits,
            output-decimal-marker={,}]{siunitx}
\begin{document}
\begin{table}[ht]
\setlength\tabcolsep{0pt} % <-- new
\setlength\extrarowheight{2pt}
\caption{Estat\'{i}sticas -- Contribui\c{c}\~{o}es}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}         % <-- new
   ll *{3}{S[table-format=4.2]} *{3}{S[table-format=5.2]} } % <-- new
  \toprule
  & & \multicolumn{3}{c}{Mediana} & \multicolumn{3}{c}{Desvio Padr\~{a}o}\\
  \cmidrule{3-5} \cmidrule{6-8}
Ano & Vari\'{a}vel & {Controle} & {Tratado} & {Total} & {Controle} & {Tratado} & {Total} \\
  \midrule
2012 & Total de receitas & 3413.90 & 8645.19 & 3967.80 & 18077.13 & 94897.57 & 45339.62 \\
   & \hspace{4mm}Pessoas f\'{i}sicas & 300.00 & 2500.00 & 570.00 & 6201.29 & 20180.83 & 10763.53 \\
   & \hspace{4mm}Empresas & 0.00 & 1000.00 & 0.00 & 0.00 & 27854.24 & 12448.01 \\
   & \hspace{4mm}Partidos & 0.00 & 0.00 & 0.00 & 7193.99 & 54075.33 & 24547.63 \\
   & \hspace{4mm}Recursos pr\'{o}prios & 1550.00 & 1850.00 & 1598.00 & 5694.75 & 12012.86 & 7382.93 \\
   & \hspace{4mm}Outros recursos & 91.88 & 230.00 & 103.13 & 8456.98 & 21893.65 & 12259.07 \\ 
   \addlinespace
   & Pessoas f\'{i}sicas (\%) & 12.10 & 30.20 & 16.90 & 31.06 & 28.57 & 30.73 \\
   & Empresas (\%) & 0.00 & 14.20 & 0.00 & 0.00 & 24.69 & 14.21 \\
   & Partidos (\%) & 0.00 & 0.00 & 0.00 & 9.78 & 9.50 & 9.73 \\
   & Recursos pr\'{o}prios (\%) & 57.90 & 22.70 & 49.90 & 36.33 & 28.93 & 36.31 \\
   & Outros recursos (\%) & 2.90 & 2.50 & 2.80 & 27.84 & 16.73 & 26.23 \\
   \midrule
  2016 & Total de receitas & 3600.00 & 7106.27 & 4009.00 & 11740.78 & 52605.28 & 25877.30 \\
   & \hspace{4mm}Pessoas f\'{i}sicas & 800.00 & 2344.70 & 1000.00 & 6136.54 & 27232.84 & 13392.53 \\
   & \hspace{4mm}Empresas & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 \\
   & \hspace{4mm}Partidos & 0.00 & 0.00 & 0.00 & 4343.52 & 28402.71 & 13027.55 \\
   & \hspace{4mm}Recursos pr\'{o}prios & 1695.00 & 3000.00 & 1857.72 & 6576.61 & 20169.18 & 10796.12 \\
   & \hspace{4mm}Outros recursos & 37.50 & 88.00 & 44.80 & 1544.50 & 6476.34 & 3160.15 \\ 
   \addlinespace
   & Pessoas f\'{i}sicas (\%) & 26.70 & 37.30 & 28.90 & 31.18 & 31.46 & 31.35 \\
   & Empresas (\%) & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 & 0.00 \\
   & Partidos (\%) & 0.00 & 0.00 & 0.00 & 13.50 & 13.18 & 13.44 \\
   & Recursos pr\'{o}prios (\%) & 56.00 & 48.80 & 54.60 & 33.71 & 32.59 & 33.54 \\
   & Outros recursos (\%) & 0.70 & 0.80 & 0.80 & 20.21 & 16.07 & 19.51 \\
   \bottomrule
\end{tabular*} % <-- new
\end{table}

\end{document} 

Antwort2

Lassen Sie mich das näher erläuternAbonnierenKommentar:

  • für das, was Sie möchten, ist einfach erreichbar mit SSpaltentyp vonsiunitx
  • in \sisetup{...}definieren Sie die Mindestanzahl für Gruppierungsziffern
  • es genügt, siunitxdie

Schauen Sie also, ob die folgenden Änderungen an Ihrem MWE das ergeben, was Sie sich wünschen:

\documentclass[12pt]{article}
\usepackage[vmargin=3cm, hmargin=2.5cm]{geometry}
\usepackage{times}
\usepackage{siunitx}
\usepackage{booktabs}
\usepackage{caption}

\begin{document}
    \begin{table}[ht]
% \small
    \centering
    \setlength\extrarowheight{2pt}
\sisetup{table-format = 5.2,group-separator={.},
         group-separator={.},
         output-decimal-marker={,},
         group-four-digits}
\caption{Estat\'{i}sticas - Contribui\c{c}\~{o}es}
\begin{tabular}{ll*{6}{S}}
  \toprule
...
   \bottomrule
\end{tabular}
    \end{table}
\end{document}

Bildbeschreibung hier eingeben

Notiz: Ihre Tabelle ist zu breit, um in die Textbreite zu passen, selbst wenn ich entferne extracolsep.

verwandte Informationen