PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tabellenformatierung falsch!



jonnyboy
20-05-2013, 16:13
Hi Leute,
kann mir jemand sagen wieso sich in dieser Tabelle die Spalten überschneiden? Bin jetzt schon ne gute zeit am rätseln und herumprobieren :(


\documentclass{scrreprt}

\usepackage[english]{babel} %Sprachoptionen
\usepackage{booktabs}
\usepackage[acronym, toc]{glossaries}
\begin{document}

\begin{table}[h!]
\centering
\begin{tabular}{p{0.125\textwidth}p{0.125\textwidt h}p{0.125\textwidth}p{0.125\textwidth}p{0.125\text width}p{0.125\textwidth}p{0.125
\textwidth}p{0.125\textwidth}}
&Measurement Quality&Noise Immunity&Versatility&Safety&Electronics Cost&Assembly Cost&Maintenance Cost\\\addlinespace
Centralized&**&***&*&*&***&**&*\\\addlinespace
Modular&**&***&**&*&*&**&*\\\addlinespace
Distributed&***&**&***&***&*&*&**\\\addlinespace
\end{tabular}[1ex]
\caption{Evaluation of Architectures; *=Good **=Better ***=Best}
\label{tab:architectures}
\end{table}

\end{document}


Danke und Gruß
Jonnyboy

klops
20-05-2013, 16:22
Zum einen ist 8 * ( 0.125 \textwidth + 2\tabcolsep) > \textwidth, zum anderen wird das erste Wort eines Absatzes nicht getrennt. Was das [1ex] bei \end{tabular} soll, kannst vermutlich auch nur Du erklären. Mir erscheint es unsinnig. Und auch in Form von [h!] ist nur Option "h" bei Gleitumgebungen wenig sinnvoll, weil das von LaTeX ohnehin zu [ht!] erweitert wird. Wenn Du nicht willst, dass eine Tabelle gleitet, dann verwende keine Gleitumgebung!

Wenn Du ein vollständiges Minimalbeispiel gemacht hättest, hätte ich Dir jetzt zeigen können, wie man das besser macht. So musst Du Dir das aus dem Forum selbst heraussuchen.

jonnyboy
20-05-2013, 16:36
Also bei mir funktioniert das Beispiel, wenn ich es in einw neue .tex Datei einfüge..

Wie Groß ist denn \tablecolsep? Sodass ich es anpassen kann..

jonnyboy
20-05-2013, 16:43
und ersetze "[1ex]" durch "\\[1ex]" , dann weißt du es :)

bobmalaria
20-05-2013, 17:04
hi,

wenn du eine tabelle auf seitenbreite willst, dann empfehle ich dir das tabularx paket mit seinen spaltentyp X.
damit werden die spalten so breit wie nötig.

klops
20-05-2013, 17:22
Als ich meinen Kommentar geschrieben habe, war da kein vollständiges Minimalbeispiel. Und wenn man im Beispiel etwas ersetzen soll, dann taugt es auch nichts. Wobei auch ein \\[1ex] nicht besser ist. Wenn der Abstand zwischen Tabelle und caption größer sein soll, dann setzt man den per Länge \abovecaptionskip global und einheitlich für alle Tabellen entsprechend und murkst nicht mit Zeilenumbrüchen hinter der Tabelle herum! Braucht aber in dem Fall schlicht nicht:

\documentclass{scrreprt}

\usepackage[english]{babel} %Sprachoptionen
\usepackage{booktabs}
\usepackage{graphicx}

\newcommand*{\tabuptitle}[1]{%
\multicolumn1c{\rotatebox{70}{#1}}%
}

\begin{document}

\begin{table}
\centering
\begin{tabular}{*8l}
\toprule% Kann man auch weg lassen.
&\tabuptitle{Measurement Quality}
&\tabuptitle{Noise Immunity}
&\tabuptitle{Versatility}
&\tabuptitle{Safety}
&\tabuptitle{Electronics Cost}
&\tabuptitle{Assembly Cost}
&\tabuptitle{Maintenance Cost}\\
\midrule
Centralized&**&***&*&*&***&**&*\\
Modular&**&***&**&*&*&**&*\\
Distributed&***&**&***&***&*&*&**\\
\bottomrule
\end{tabular}
\caption[Evaluation of Architectures]{Evaluation of Architectures; *=Good **=Better ***=Best}
\label{tab:architectures}
\end{table}

\end{document}
oder

\documentclass{scrreprt}

\usepackage[english]{babel} %Sprachoptionen
\usepackage{booktabs}
\usepackage{tabularx}

\newcommand*{\tabuptitle}[1]{#1}

\begin{document}

\begin{center}
\begin{minipage}{\textwidth}
\centering
\begin{tabularx}{\textwidth}{l*7{>{\hspace{0pt}}X}}
\toprule
&\tabuptitle{Measurement Quality}
&\tabuptitle{Noise Immunity}
&\tabuptitle{Versatility}
&\tabuptitle{Safety}
&\tabuptitle{Electronics Cost}
&\tabuptitle{Assembly Cost}
&\tabuptitle{Maintenance Cost}\\
\midrule
Centralized&**&***&*&*&***&**&*\\
Modular&**&***&**&*&*&**&*\\
Distributed&***&**&***&***&*&*&**\\
\bottomrule
\multicolumn8r{\footnotesize *=Good **=Better ***=Best}
\end{tabularx}
\captionof{table}{Evaluation of Architectures}
\label{tab:architectures}
\end{minipage}
\end{center}

\end{document}

Im zweiten Beispiel habe ich auch gleich gezeigt, wie das mit einer nicht gleitenden Tabelle funktioniert. Man kann das aber auch mit table-Umgebung + \caption statt center + minipage + \captionof machen.

Wenn man die Legende zu den Sternen als eine Art Fußnote verstehen will, kann auch das Paket threeparttable nützlich sein.

Wie Du siehst, musst Du nicht wissen wie groß \tabcolsep ist. Im Zweifelsfall ändert sich der Wert ohnehin, so dass man, wenn man ihn denn braucht, tatsächlich die Länge \tabcolsep und nicht einen möglicherweise passenden Wert verwenden sollte.

BTW: Bei Tabellen sind Überschriften statt Unterschriften üblich. Siehe dazu \captionabove in der KOMA-Script-Anleitung.