PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Tabellen



Xaran
11-10-2011, 08:45
Moin Moin,

Ich habe inzwischen viel gesucht und ausprobiert, aber inzwischen bin ich am verzweifeln :( - gerade auch deshalb, weil mein Problem eigentlich gar nicht so schwer wiegen müsste:

Für meine Arbeit möchte ich Tabellen in Latex erstellen, die nicht total grottenhäßlich sind. Die Spalten sollen sich dabei an den Deizmaltrennzeichen ausrichten, was ja durch \usepackage{dcolumn} erzielt werden kann. Nun ist mein Problem folgendes:
Ich schaffe es nicht, Überschriften passend über die Spalten zu setzen: Die Breiten der Überschriftszellen sind ungleich der Spalten der Zahlen. Die Überschriften müssen zudem Zeilenumbrüche aufweisen, da sonst nicht alles auf die Breite der Seite passt. Die Überschriften brauchen also einen anderen Spaltentyp als die dann folgenden Daten. Da setzt es bei mir leider aus.

Mein Beispiel, an dem ich mich zurzeit versuche:



\documentclass[a4paper, titlepage, openright, 11pt, notitlepage, twoside, fleqn]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage{amsmath,amssymb,amsfonts,textcomp,late xsym}
\usepackage{subfigure}
\usepackage{calc}
\usepackage{hyperref}
\usepackage{fancyhdr}
\usepackage{units}

%%% Ganz viel Zeugs für Tabelle: Hachherrije
\usepackage{tabularx} % für Tabellen
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{dcolumn}
\usepackage{array}
\usepackage{multirow} % für Tabellen (beide werden benötigt!)

\setlongtables

\newcolumntype{s}[1]{\setlength\hsize{#1\hsize}}%>{\small}l{#1}}
\newcolumntype{N}{>{\scriptsize}l}
\newcolumntype{v}[1]{>{\raggedright\hspace{0pt}}p{#1}}
\newcolumntype{V}[1]{>{\scriptsize\raggedright\hspace{0pt}}X}

%D{eingabe_zeichen}{ausgabe_zeichen}{dezimal_stell en}
\newcolumntype{d}{D{,}{,}{1}}

\newcommand{\mrc}[2]{\multicolumn{1}{v{#2}}{#1}}
%%% Ende des Tabellenzeugs

\begin{document}

\begin{center}
\begin{table}
\begin{center}
\begin{tabularx}{\linewidth}{p{3.5cm} d d d d d}
\toprule
\mrc{Quelle}{3.0cm} & \mrc{Streuung}{2cm} & \mrc{Frei\-heits\-gra\-de}{2.5cm} & \mrc{Mittlerer quad. Fehler}{2.5cm} & \mrc{F}{1cm} & \mrc{Sig.}{1cm}\\
\midrule
Stücke & 0,005 & 1 & 0,005 & 0,004 & 0,950\\
Fehler(Stücke) & 13,808 & 12 & 1,151 & &\\
\hline
Radiokonfigurationen & 192,149 & 7 & 27,450 &6,186 & 0,000\\
Fehler(Radiokonfig.) & 41,038 & 84 & 0,489 &\\
\hline
Stücke $\cdot$ Radiokonfig. & 68,418 & 7 & 9,774 &22,637 & 0,000\\
Fehler(Stücke $\cdot$ Radiokonfig.)&36,269& 84 & 0,432 & &\\
\bottomrule
\end{tabularx}
\label{tab:ANOVA}
\caption{Tests der zweifaktoriellen Varianzanalyse (ANOVA).}
\end{center}
\end{table}
\end{center}

\end{document}

ctansearch
11-10-2011, 10:14
Hier ein abgespeckter Vorschlag, das mit der Ausrichtung am Dezimalpunkt habe ich hier nicht drin, geht aber, war auch hier schon mal Thema.


documentclass[a4paper, titlepage, openright, 11pt, notitlepage, twoside, fleqn]{scrreprt}

\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{dcolumn}
\begin{document}
\begin{center}
\begin{longtable}{p{0.25\linewidth}p{0.15\linewidt h}p{0.15\linewidth}p{0.15\linewidth}p{0.15\linewid th}p{0.15\linewidth}}
\toprule
Quelle &Streuung&Freiheits\-grade& Mittlerer quad. Fehler&F&Sig.\\
\midrule
Stücke & 0,005 & 1 & 0,005 & 0,004 & 0,950\\
Fehler(Stücke) & 13,808 & 12 & 1,151 & &\\
\hline
Rkfg & 192,149 & 7 & 27,450 &6,186 & 0,000\\
Fehler (Rkfg) & 41,038 & 84 & 0,489 &\\
\hline
Stücke $\cdot$ Rkfg & 68,418 & 7 & 9,774 &22,637 & 0,000\\
Fehler (Stücke $\cdot$ Rkfg)&36,269& 84 & 0,432 & &\\
\bottomrule
\caption{Tests der zweifaktoriellen Varianzanalyse (ANOVA).}\label{tab:ANOVA}\\
\end{longtable}
Abk.: Rkfg=Radiokonfigurationen
\end{center}
\end{document}

LuPi
11-10-2011, 10:16
Ein erster Ansatz, sicherlich ausbaufähig.


\documentclass[a4paper, titlepage, openright, 11pt, notitlepage, twoside, fleqn]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage{amsmath,amssymb,amsfonts,textcomp,late xsym}
\usepackage{subfigure}
\usepackage{calc}
\usepackage{hyperref}
\usepackage{fancyhdr}
\usepackage{units}

%%% Ganz viel Zeugs für Tabelle: Hachherrije
\usepackage{tabularx} % für Tabellen
\usepackage{longtable}
\usepackage{booktabs}
\usepackage{dcolumn}
\usepackage{array}
\usepackage{multirow} % für Tabellen (beide werden benötigt!)

\setlongtables

\newcolumntype{s}[1]{\setlength\hsize{#1\hsize}}%>{\small}l{#1}}
\newcolumntype{N}{>{\scriptsize}l}
\newcolumntype{v}[1]{>{\raggedright\hspace{0pt}}p{#1}}
\newcolumntype{V}[1]{>{\scriptsize\raggedright\hspace{0pt}}X}

%D{eingabe_zeichen}{ausgabe_zeichen}{dezimal_stell en}
\newcolumntype{d}{D{,}{,}{3.3}}

\newcommand{\mrc}[2]{\multicolumn{1}{v{#2}}{#1}}
%%% Ende des Tabellenzeugs

\begin{document}

\begin{center}
\begin{table}
\begin{center}
\begin{tabularx}{\linewidth}{Xddddd}
\toprule
\mrc{Quelle}{3.0cm} & \mrc{Streuung}{1.6cm} & \mrc{Freiheits-}{2cm} & \mrc{Mittlerer}{2.5cm} & \mrc{F}{1cm} & \mrc{Sig.}{1cm}\\
& & \mrc{grade}{1.5cm} & \mrc{quad. Fehler}{2.5cm} & & \\
\midrule
Stücke & 0,005 & 1 & 0,005 & 0,004 & 0,950\\
Fehler(Stücke) & 13,808 & 12 & 1,151 & &\\
\hline
Radiokonfigurationen & 192,149 & 7 & 27,450 &6,186 & 0,000\\
Fehler(Radiokonfig,) & 41,038 & 84 & 0,489 &\\
\hline
Stücke $\cdot$ Radiokonfig, & 68,418 & 7 & 9,774 &22,637 & 0,000\\
Fehler(Stücke $\cdot$ Radiokonfig,)&36,269& 84 & 0,432 & &\\
\bottomrule
\end{tabularx}
\label{tab:ANOVA}
\caption{Tests der zweifaktoriellen Varianzanalyse (ANOVA).}
\end{center}
\end{table}
\end{center}

\end{document}

Curryhunter
11-10-2011, 10:20
Hallo,
hier mein Vorschlag mit Änderungen in roter Farbe:
\documentclass[a4paper, titlepage, openright, 11pt, notitlepage, twoside, fleqn]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
% \usepackage{graphicx} %Paket hier überflüssig
% \usepackage{setspace} %Paket hier überflüssig
\usepackage{amsmath,amssymb,amsfonts,textcomp,late xsym}
%\usepackage{subfigure} %Paket hier überflüssig
% \usepackage{calc} %Paket hier überflüssig
%\usepackage{hyperref} %Paket hier überflüssig
%\usepackage{fancyhdr} %Paket hier überflüssig
%\usepackage{units} %Paket hier überflüssig, nutze stattdessen auch besser SIunitx
\usepackage{lmodern} %nur andere Schrift
%%% Ganz viel Zeugs für Tabelle: Hachherrije
\usepackage{tabularx} % für Tabellen
%\usepackage{longtable} %Paket hier überflüssig
\usepackage{booktabs}
\usepackage{dcolumn}
%\usepackage{array} %Paket hier überflüssig
%\usepackage{multirow} %Paket hier überflüssig% für Tabellen (beide werden benötigt!)

% \setlongtables %hier überflüssig

%\newcolumntype{s}[1]{\setlength\hsize{#1\hsize}}%>{\small}l{#1}}
%\newcolumntype{N}{>{\scriptsize}l}
%\newcolumntype{v}[1]{>{\raggedright\hspace{0pt}}p{#1}}
%\newcolumntype{V}[1]{>{\scriptsize\raggedright\hspace{0pt}}X}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}} % rechtsbündig mit Breitenangabe

%D{eingabe_zeichen}{ausgabe_zeichen}{dezimal_stell en}
\newcolumntype{d}{D{,}{,}{3}} %die Zahl gibt die Anzahl der Dezimalstellen an, da du 3 Stellen hast, sollte dort auch die 3 stehen.

\newcommand{\mrc}[2]{\multicolumn{1}{R{#2}}{#1}}
%%% Ende des Tabellenzeugs

\begin{document}

%\begin{center} %fügt nur unnötigen vertikalen Abstand ein und ist mit der center-Umgebung innerhalb der Tabelle doppelt
\begin{table}
\centering %\begin{center} %\centering fügt keinen vertikalen Abstand ein
\begin{tabularx}{\linewidth}{p{5cm} d d d d d}
\toprule
Quelle & \mrc{Streuung}{1.5cm} & \mrc{Frei\-heits\-gra\-de}{1.5cm} & \mrc{Mittlerer quad. Fehler}{2cm} & \mrc{F}{1cm} & \mrc{Sig.}{1cm}\\
\midrule
Stücke & 0,005 & 1 & 0,005 & 0,004 & 0,950\\
Fehler(Stücke) & 13,808 & 12 & 1,151 & &\\
\hline
Radiokonfigurationen & 192,149 & 7 & 27,450 &6,186 & 0,000\\
Fehler(Radiokonfig.) & 41,038 & 84 & 0,489 &\\
\hline
Stücke $\cdot$ Radiokonfig. & 68,418 & 7 & 9,774 &22,637 & 0,000\\
Fehler(Stücke $\cdot$ Radiokonfig.)&36,269& 84 & 0,432 & &\\
\bottomrule
\end{tabularx}
\label{tab:ANOVA}
\caption{Tests der zweifaktoriellen Varianzanalyse (ANOVA).}
%\end{center}
\end{table}
%\end{center}

\end{document}

hakaze
11-10-2011, 10:21
Zunächste habe ich mal viel unwichtiges aus deinem (Nicht-ganz-)Minimalbeispiel rausgeworfen. Das sieht arg nach copy-paste-Stückelei aus mehreren Vorlagen; u.a. die doppelt center-Umgebung, tabularx, longtable, unnötige Spaltendefinitionen ...

Folgendes tut es meiner Ansicht nach schon ganz gut:

\documentclass[a4paper, titlepage, openright, 11pt, notitlepage, twoside, fleqn]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}

\usepackage{booktabs}
\usepackage{dcolumn}
\usepackage{array}

\newcolumntype{v}[1]{>{\centering\hspace{0pt}}p{#1}}

%D{eingabe_zeichen}{ausgabe_zeichen}{dezimal_stell en}
\newcolumntype{d}{D{,}{,}{3.3}}

\newcommand{\mrc}[2]{\multicolumn{1}{v{#2}}{#1}}

\begin{document}

\begin{table}
\centering
\captionabove{Tests der zweifaktoriellen Varianzanalyse (ANOVA).}\label{tab:ANOVA}
\begin{tabular}{lddddd}
\toprule
Quelle & \multicolumn{1}{c}{Streuung} & \mrc{Frei\-heits\-gra\-de}{2.0cm} & \mrc{Mittlerer quad. Fehler}{2.2cm} & \multicolumn{1}{c}{F} & \multicolumn{1}{c}{Sig.}\\
\midrule
Stücke & 0,005 & 1 & 0,005 & 0,004 & 0,950\\
Fehler(Stücke) & 13,808 & 12 & 1,151 & &\\
\hline
Radiokonfigurationen & 192,149 & 7 & 27,450 &6,186 & 0,000\\
Fehler(Radiokonfig.) & 41,038 & 84 & 0,489 &\\
\hline
Stücke $\cdot$ Radiokonfig. & 68,418 & 7 & 9,774 &22,637 & 0,000\\
Fehler(Stücke $\cdot$ Radiokonfig.)&36,269& 84 & 0,432 & &\\
\bottomrule
\end{tabular}
\end{table}

\end{document}Wichtig ist auch den den p-Spalten \centering zu übergeben und nicht \raggedright ;)
Ansonsten schau nochmal in die dcolumn-Anleitung für ein Feintuning der d-Spalten (ich habe jetzt alle auf 3 Nachkommastellen gesetzt).

Alternativ kann ich auch das siunitx (http://www.ctan.org/pkg/siunitx)-Paket empfehlen. Das bietet ein sehr guten Tabellensatz von Zahlen in unterschiedlichen Formaten.

EDIT: war wohl etwas langsam beim tippen... da sind schon einige Alternativen. :)

Xaran
11-10-2011, 10:25
Super - Vielen Dank für die vielen Antworten :)

Ich werde mich (nach der Nahrungsaufnahme) gleich mal an die Arbeit machen :)

LuPi
11-10-2011, 10:37
Wichtig ist auch den den p-Spalten \centering zu übergeben und nicht \raggedright ;)

Lass mich neugierig sein: warum? Wenn Xaran die Einträge linksbündig haben
möchte (was a priori nicht schlecht sein muss)?

Xaran
11-10-2011, 12:09
So, ich habe den Vorschlag von Curryhunter benutzt und bin absolut happy :)

@hakaze: Ja, Du hast Recht - es ist leider recht viel Copy&Paste. Bei den center-Umgebungen wusste ich bisher auch nicht recht Bescheid und zu meiner Schande muss ich gestehen, dass ich mir darum auch keinen Kopf gemacht habe "solange es halt funktioniert hat"
Die dcolumn-Anleitung hatte ich mir auch schon angeguckt, aber ich glaub, dass ich zuviele Sachen parallel ausprobiert habe und einfach den Faden verlor.

Also nochmals vielen herzlichen Dank für die wertvollen Tipps! :)

@Curryhunter: Die Änderungen in rot war super zum nachvollziehen - Danke!

hakaze
11-10-2011, 12:33
Lass mich neugierig sein: warum? Wenn Xaran die Einträge linksbündig haben
möchte (was a priori nicht schlecht sein muss)?

Stimmt! :) Das hatte ich wohl nur "reingelesen", dass Xaran es zentriert haben wollte. Ich fand es angenehmer für meine Augen ;) ...die Macht der Gewohnheit.

Xaran
11-10-2011, 12:59
Stimmt! :) Das hatte ich wohl nur "reingelesen", dass Xaran es zentriert haben wollte. Ich fand es angenehmer für meine Augen ;) ...die Macht der Gewohnheit.

Eigentlich bin ich auch für zentrierte Überschriften bei Tabellen. In diesem Fall finde ich es allerdings ausnahmsweise nicht so gut und hab es nun rechtsbündig. Die Überschriften schließen So mit den Zahlen ab, das find ich recht angenehm.