Seite 1 von 1

tabularx kommazentriert

Verfasst: Sa 26. Dez 2015, 22:10
von yellowbird
Liebe Leute,

ich habe nun auf unterschiedlichstem Wege versucht meine Tabelleninhalten kommazentriert auszurichten (mit dcolumn und siunitx) und habe am laufendem Band Fehlermeldungen erhalten.

Vielleicht hat jemand von euch eine Idee, wie ich eine solche Tabelle kommazentrieren kann?
\documentclass[a4paper,12pt,onesite]{article}

\usepackage{geometry}
\usepackage[utf8]{inputenc}
\usepackage[]{xcolor}
\usepackage[german]{babel}
\usepackage{setspace}
\usepackage{fancyhdr}
\usepackage[numbers, round]{natbib}
\usepackage{graphicx}
\usepackage{booktabs} %Für Tabellen im "wissenschaftlichen Stil" mit ausschließlich horizontalen Linien
\usepackage[justification=RaggedRight, singlelinecheck=false]{caption} %Für die Tabellenüberschrift (linkszentriert)
\usepackage{siunitx} %Zur individuellen Anpassung der Abstände zwischen den Spalten
\usepackage{dcolumn} %Zur kommazentrierten Darstellung der Werte mit Dezimalstellen in den Spalten         
\usepackage[flushleft]{threeparttable} %Für Anmerkungen etc. unter der Tabelle
\usepackage{multirow}
\usepackage{tabularx}
\usepackage{filecontents}
\usepackage{nicefrac}
\usepackage{ltxtable}
\usepackage{pdflscape}




% Seitengröße 
\geometry{a4paper, top=25mm, left=25mm, right=25mm, bottom=20mm,
headsep=10mm, footskip=12mm, textwidth=160mm}
%\tolerance=1500

% Zeilenabstand 
\setstretch{1.25}

\newcommand{\tabhead}[1]{\textbf{#1}}
\renewcommand{\tabularxcolumn}[1]{>{\centering\arraybackslash}p{#1}}


\begin{document}

\begin{table}
	\small
	\caption{Tabelle, kommazentriert}


		\begin{tabularx}{\textwidth}{l XX} 

			\toprule
		 
	
			& 
			A & 
			B \\
			\midrule
			
			 Text& $-3,399^{***}$ & $-4,675^{***}$ \\
			 & $(0,160)$ & (0,180) \\
			 \addlinespace
			 Text & $1,529^{***}$ & $1,906^{***}$\\
			 & $(0,147)$ & (0,170) \\
			 \addlinespace[0.09cm]
			 Text & $-0,121$ & $0,313^*$ \\
			 & $(0,129)$ & (0,123) \\
			Text & $-0,013$ & $-0,075$ \\
			 & $(0,090)$ & (0,088) \\
			Text & $-0,069$ & $1,139^{***}$ \\
			 & $(0,177)$ & (0,163) \\
			 Text & $0,916^{***}$ & $2,250^{***}$ \\
			 & $(0,165)$ & (0,173) \\
			 Text & $0,253^*$ & $0,472^{***}$ \\
			 & $(0,113)$ & (0,112) \\
			 Text & & $1,016^{***}$ \\
			 & & $(0,166)$ \\
	
	\addlinespace[.09cm]
				
\addlinespace
		\bottomrule
		\addlinespace[.09cm]
	\end{tabularx}
\begin{tablenotes}
       \footnoterule
        \footnotesize
        \item $^+p<0,1$, $^*p<0,05$, $^{**}p<0,01$, $^{***}p<0,001$, Standardfehler in Klammern, $N=$.
\end{tablenotes} 
\end{table}

\end{document}
Vielen Dank!

Verfasst: So 27. Dez 2015, 16:30
von Bartman
Mein Beispiel ist zwar eher ein Lösungsansatz als eine Lösung, aber es dürfte dennoch von Nutzen für Dich sein.

Ich habe die Gruppierung der Zahlen nur deshalb abgestellt, um den Abstand zur schliessenden runden Klammer zu vermeiden.

Die ersten beiden Zeilen zeigen sowohl Fußnoten als auch Klammern und dürften demnach auf den Rest der Tabelle übertragbar sein.
\documentclass[a4paper,12pt]{article}

\usepackage{geometry}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{setspace}
\usepackage{booktabs} %Für Tabellen im "wissenschaftlichen Stil" mit ausschließlich horizontalen Linien
\usepackage[justification=RaggedRight, singlelinecheck=false]{caption} %Für die Tabellenüberschrift (linkszentriert)
\usepackage{siunitx} %Zur individuellen Anpassung der Abstände zwischen den Spalten
\usepackage[flushleft, para]{threeparttable} %Für Anmerkungen etc. unter der Tabelle
\usepackage{array}
\usepackage{icomma} % Für die Kommazahlen im mathematischen Modus in der tablenotes-Umgebung
\usepackage{etoolbox} % Für den Befehl \robustify

\AtBeginEnvironment{tablenotes}{\footnotesize} % Setzt die Schriftgröße für alle tablenotes-Umgebungen

\sisetup{locale = DE}

% Seitengröße 
\geometry{a4paper, top=25mm, left=25mm, right=25mm, bottom=20mm,
headsep=10mm, footskip=12mm, textwidth=160mm}

% Zeilenabstand 
\setstretch{1.25}


\begin{document}

\begin{table}
	\robustify\tnote
	\caption{Tabelle, kommazentriert}
	\sisetup{
		table-format = -1.3,
		table-space-text-post =  \textsuperscript{***},
		input-symbols = (),
		group-digits  = false
	}
	\begin{threeparttable}
	\begin{tabular}{lSS}
		\toprule
		&  A & B \\
		\midrule
		Text & -3,399\tnote{***} & -4,675\tnote{***} \\
			 & (0,160) & (0,180) \\
		\bottomrule
	\end{tabular}
	\begin{tablenotes}
		\item[+] $p < 0,1$, 
		\item[*] $p < 0,05$, 
		\item[**] $p < 0,01$, 
		\item[***] $p < 0,001$, Standardfehler in Klammern, $N=$.
	\end{tablenotes}
\end{threeparttable}
\end{table}

\end{document}

Verfasst: So 27. Dez 2015, 18:07
von yellowbird
Hallo,

dieser Lösungsansatz funktioniert schonmal. Vielen Dank!

Allerdings sind meine Spalten nicht mit A und B benannt, sondern mit jeweils zwei Wörtern (z.B. "gestern Abend" und "heute Abend"). Nachdem ich die Spalten A und B wieder in ihre ursprüngliche Bennenung ändere, kompiliert es nicht mehr und gibt folgende Fehlermeldung aus:

! siunitx error: "invalid-number"
!
! Invalid numerical input 'e'.
!
! See the siunitx documentation for further information.

Ich nehme an, dass die Spalten durch das "S" als numerisch deklariert wurde, was ja auf die Beschriftung nicht zutrifft. Gibt es da einen Trick, dass Latex die Beschriftung trotz S-Spalten akzeptiert?

Vielen Dank!

Verfasst: So 27. Dez 2015, 18:28
von Bartman
yellowbird hat geschrieben:Gibt es da einen Trick, dass Latex die Beschriftung trotz S-Spalten akzeptiert?
Erweitere die Spaltenbeschriftungen in den Zellen um geschweifte Klammern.
  &  {A} & {B} \\

Verfasst: So 27. Dez 2015, 18:36
von yellowbird
Ah, super.
Ich ahbe es gerade mit \multicolumn versucht und es klappt auch. Liegt vermutlich auch an den geschweiften Klammern. Aber gut zu wissen, dass es auch ohne \multicolumn geht.

Danke für Deine Hilfe!