PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : tabelle in seitenbreite unter verwendung von dcolumn



epfel
22-05-2010, 12:45
Wertes Forum,

ich richte in einer Tabelle mehrere Zahlenwerte am Dezimaltrenner aus und benutze dazu das package {dcolumn}. Die Tabelle ist relativ schmal. Da sie selbsterklärend sein soll, ergänze ich mittels {threeparttable} einen Block für Anmerkungen. Aufgrund der schmalen Tabelle benötigen die Anmerkungen mehrere Zeilen, wodurch die Tabelle über Gebühr Platz beansprucht. Um die Anmerkungen auf 1 - 2 Zeilen zu verteilen, würde ich die Tabelle gern verbreitern (z.B. 0.75 textwidth). Dadurch funktioniert die optische Zentrierung allerdings nicht mehr. Hat jemand eine Idee, wie ich das Ziel realisieren kann?

VG!
%%%%%%%%Beispiel%%%%%%%%%%

\documentclass [12pt,a4paper] {scrreprt}

\usepackage {ngerman} % Silbentrennung mac oder ms
%\usepackage[applemac]{inputenc}
\usepackage [latin1]{inputenc}
\usepackage{booktabs} % Gescheite Tabellenlayouts
\usepackage{threeparttable} % Erlaubt die Nutzung von ebd.
\usepackage{dcolumn} % Erlaubt in Tabellen die Ausrichtung am Dezimaltrenner
\usepackage[singlelinecheck=false]{caption} %erlaubt detaillierte Definitionen zur Tabellenüberschrift caption. Eintrag hebt Zentrierung auf


\begin{document}

\begin{table}[H]
\fontsize{10pt}{20}\selectfont
\flushleft
\caption{Caption}
\begin{threeparttable}
\begin{tabular}{lD..{3.1}D..{3.1}D..{3.1}}
\toprule
\multicolumn{1}{l}{}&
\multicolumn{1}{c}{Median} &
\multicolumn{1}{c}{Min} &
\multicolumn{1}{c}{Max}
\\
\midrule
Alter [Jahre] & 21 & 19 & 37 \\
KH [cm] & 187 & 177 & 193 \\
KG [kg] & 84.4 & 72.1 & 106.5 \\
BMI [kg/m$^2$] & 25.0 & 20.5 & 28.5 \\
LBM [kg] & 71.4 & 67.8 & 85.8 \\
\bottomrule
\end{tabular}\smallskip
\footnotesize Legende:
\begin{tablenotes}
\footnotesize
\item KH = Körperhöhe; KG = Körpergewicht; BMI = Body Mass Index; LBM = Lean Body Mass; Unsinn = Verdeutlichung, dass hier u.U. auch noch mehr stehen könnte; N = 19
\end{tablenotes}
\label{}
\end{threeparttable}
\end{table}
\end{document}

localghost
22-05-2010, 14:52
Aus meiner Sicht hast Du mehrere Möglichkeiten. Einige sind im Code unten umgesetzt. Wenn Du die Tabelle ohnehin strecken willst, kannst Du die Begriffe in der ersten Spalte auch ausschreiben. Als Alternative zu dcolumn (http://ctan.org/pkg/dcolumn) wird in der letzten Tabelle siunitx (http://ctan.org/pkg/siunitx) für die Ausrichtung der Zahlenwerte verwendet. Für Tabellen dieser Art mit fester Breite gibt es auch noch tabularx (http://ctan.org/pkg/tabularx).

\documentclass[%
12pt,
a4paper,
captions=nooneline, % Beschriftungen immer linksbündig
captions=tableabove, % Formatierung für Beschriftungen über Tabellen
ngerman
]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{dcolumn,booktabs,threeparttable}
\usepackage[%
decimalsymbol=comma,
emulate=units,
expproduct=cdot,
load={abbr,physical}
]{siunitx}

\setkomafont{caption}{\small}
\setkomafont{captionlabel}{\bfseries}

\newcolumntype{d}[1]{D{.}{,}{#1}}

\begin{document}
\begin{table}[!ht]
\caption{Nur gestreckt}\label{tab:extended}
\begin{threeparttable}
\begin{tabular*}{\textwidth}{@{\extracolsep\fill}l d{3.1}d{3.1}d{3.1}}\toprule
& \multicolumn{1}{c}{Median} & \multicolumn{1}{c}{Min} & \multicolumn{1}{c}{Max} \\ \midrule
Alter [Jahre] & 21 & 19 & 37 \\
KH [cm] & 187 & 177 & 193 \\
KG [kg] & 84.4 & 72.1 & 106.5 \\
BMI [kg/m$^2$] & 25.0 & 20.5 & 28.5 \\
LBM [kg] & 71.4 & 67.8 & 85.8 \\ \bottomrule\addlinespace
\end{tabular*}
\footnotesize Legende:
\begin{tablenotes}
\footnotesize
\item KH = Körperhöhe; KG = Körpergewicht; BMI = Body Mass Index; LBM = Lean Body Mass; Unsinn = Verdeutlichung, dass hier u.U. auch noch mehr stehen könnte; N = 19
\end{tablenotes}
\end{threeparttable}
\end{table}

\begin{table}[!ht]
\caption{Aufgeteilte Fußnoten}\label{tab:split}
\begin{threeparttable}
\begin{tabular*}{\textwidth}{@{\extracolsep\fill}l d{3.1}d{3.1}d{3.1}}\toprule
& \multicolumn{1}{c}{Median} & \multicolumn{1}{c}{Min} & \multicolumn{1}{c}{Max} \\ \midrule
Alter [Jahre] & 21 & 19 & 37 \\
KH\tnote{1} [cm] & 187 & 177 & 193 \\
KG\tnote{2} [kg] & 84.4 & 72.1 & 106.5 \\
BMI\tnote{3} [kg/m$^2$] & 25.0 & 20.5 & 28.5 \\
LBM\tnote{4} [kg] & 71.4 & 67.8 & 85.8 \\ \bottomrule\addlinespace
\end{tabular*}
\footnotesize Legende:
\begin{tablenotes}
\footnotesize
\item[1] Körperhöhe
\item[2] Körpergewicht
\item[3] Body Mass Index
\item[4] Lean Body Mass
\item Unsinn = Verdeutlichung, dass hier u.\,U. auch noch mehr stehen könnte; N = 19
\end{tablenotes}
\end{threeparttable}
\end{table}

\begin{table}[!ht]
\caption{Mit \textsf{siunitx}}\label{tab:siunitx}
\begin{threeparttable}
\begin{tabular*}{0.75\textwidth}{%
@{\extracolsep\fill}
l
S[tabformat=3.1,tabnumalign=centre]
S[tabformat=3.1,tabnumalign=centre]
S[tabformat=3.1,tabnumalign=centre]
}\toprule
& {Median} & {Min} & {Max} \\ \midrule
Alter [Jahre] & 21 & 19 & 37 \\
Körperhöhe / cm & 187 & 177 & 193 \\
Körpergewicht / kg & 84.4 & 72.1 & 106.5 \\
Body Mass Index / \si[per=fraction,fraction=nice]{\kg\per\meter\squared} & 25.0 & 20.5 & 28.5 \\
LBM / kg & 71.4 & 67.8 & 85.8 \\ \bottomrule\addlinespace
\end{tabular*}
\footnotesize
Legende:
\begin{tablenotes}
\item Unsinn = Verdeutlichung, dass hier u.\,U. auch noch mehr stehen könnte; N = 19
\end{tablenotes}
\end{threeparttable}
\end{table}
\end{document}


Thorsten

epfel
22-05-2010, 18:11
Hallo Thorsten,

vielen Dank für die anscheinend ausgeschlafene Antwort. Leider laufen die Beispiele bei mir nicht. Ich verstehe leider noch nicht weshalb, weil einige Deiner Änderungen für mich unbekannt sind.

Die siunitx-Variante (s.u.) kann ich noch nicht nachvollziehen. Werde mich mit Deinem Vorschlag beschäftigen und mich dann nochmal melden.

Vielen Dank bis hierhin!

quote:
\usepackage[%
decimalsymbol=comma,
emulate=units,
expproduct=cdot,
load={abbr,physical}
]{siunitx}

localghost
22-05-2010, 18:27
[…] Leider laufen die Beispiele bei mir nicht. […]
Eine sehr triviale Aussage. Konkrete Fehlermeldungen sind sehr viel hilfreicher. Das Beispiel setzt die aktuell erhältlichen Versionen der Pakete voraus, insbesondere die der Dokumentklasse (KOMA Script (http://ctan.org/pkg/koma-script) 3.x). Mit Ausnahme der letzten Tabelle sollten die Beispiele fehlerfrei bei dir durchlaufen, denn da ist kein neues Paket hinzu gekommen.

epfel
23-05-2010, 19:22
Hallo Thorsten,

die ersten beiden Beispiele liefen zunächst nur wegen des utf8-Eintrags nicht. Mit \usepackage[latin1]{inputenc} erhalte ich ein gutes Ergebnis. Allerdings schmälert eine Fehlermeldung den Erfolg:

LaTeX Warning: Unused global option(s):
[captions=nooneline,captions=tableabove].

Ich verstehe den Grund nicht, in dessen Folge die caption nun zentriert und nicht linksbündig erscheint. Kannst Du mir weiterhelfen?

Zum 3 Bsp. bin ich noch nicht vorgedrungen. Mir fehlt das Paket siunitx und die Installation unter TexShop beherrsche ich noch nicht, versuche aber gerade diese Aufgabe zu lösen.

Viele Grüße.

lockstep
23-05-2010, 20:03
Allerdings schmälert eine Fehlermeldung den Erfolg:

LaTeX Warning: Unused global option(s):
[captions=nooneline,captions=tableabove].

Dies ist lediglich eine Warnung, und sie deutet darauf hin, dass du eine veraltete KOMA-Script-Version (<3.00) nutzt.

lockstep

epfel
24-05-2010, 13:45
... ich habe meine latex distribution erneuert.
@Thorsten: Vielen Dank für Deine Vorschläge. Die Variante mit tabular* gefällt mir sehr gut. Nach einer Durchsicht der Dokumentation scheint es aufgrund der vielen Möglichkeiten lohnend, siunitx zu integrieren.

Besten Dank!

lockstep
24-05-2010, 16:55
Die Version 2 von siunitx, in der offenbar diverse Optionen umbenannt worden sind, ist gestern erschienen und sollte im Laufe der nächsten Tage via TeX Live und MiKTeX verfügbar sein. Warte am besten noch solange mit dem Einarbeiten in dieses Paket.

lockstep

voss
24-05-2010, 17:06
Die Version 2 von siunitx, in der offenbar diverse Optionen umbenannt worden sind, ist gestern erschienen und sollte im Laufe der nächsten Tage via TeX Live und MiKTeX verfügbar sein. Warte am besten noch solange mit dem Einarbeiten in dieses Paket.


vis TeXLive steht sie bis auf weiteres nicht zur Verfügung. Und man sollte
sich schwer überlegen, ob man überhaupt die neue Version nutzen
will, denn _alles_ ist anders ...

Herbert

localghost
24-05-2010, 17:14
[...] Und man sollte
sich schwer überlegen, ob man überhaupt die neue Version nutzen
will, denn _alles_ ist anders [...]
Für ältere Dokumente gibt es einen Kompatibilitätsmodus

\usepackage[load-configurations=version-1]{siunitx}
Damit sind nur wenige Änderungen nötig.


Thorsten

lockstep
25-05-2010, 00:14
vis TeXLive steht sie bis auf weiteres nicht zur Verfügung. Und man sollte
sich schwer überlegen, ob man überhaupt die neue Version nutzen
will, denn _alles_ ist anders ...

Nach Überfliegen der Release Notes scheint die Umstellung bei den Optionennamen erfolgt zu sein, um ein verständlicheres und ausbaufähigeres System zu erhalten. Die inhaltliche Hürde der Umstellung kann ich nicht beurteilen, da ich bei siunitx bis jetzt hauptsächlich die S-Spalten für Tabellen benutzt habe. Zur technischen Hürde: Ich gehe davon aus, dass die aktuellen Versionen von expl3 und xpackages wenigstens in MikTeX ebenfalls bald verfügbar sein werden.

lockstep