PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Longtable Underfull und Overfull \hbox



Stefan2902
11-01-2008, 19:15
Hallo,

ich bekomme bei folgender longtable sowohl Overfull, als auch Underfull \hbox Meldungen. Meine Fragen sind:

1. Wie kann ich die Overfull und Underfull Meldungen beheben?
2. Wie kann ich die Kopfzeile der Tabelle geschickter zentrieren?

Stefan

Hier das Codebeispiel:

% Dokumentenklasse
\documentclass[12pt,a4paper]{scrreprt} % Papierformat, Schriftgröße, Dokumentenart
\usepackage[latin1]{inputenc} % deutscher Schriftsatz
\usepackage{longtable} % zur Verwendung der Longtables
\usepackage{colortbl} % wichtig für Farben in Tabelle siehe Longtable


\begin{document}
\begin{longtable}[t]{|p{0.15\textwidth}|p{0.4\textwidth}|p{0.45\textwi dth}|}
\caption{ITM Checklist - 360 degree analysis}
\\
\hline
\rowcolor[rgb]{0.9,0.9,0.9}[5.5pt]
\begin{center}\textbf{Complex of topics}\end{center} & \begin{center}\textbf{Questions of critical success}\end{center} & \begin{center}\textbf{Comments / Suggestions}\end{center} \\ \hline\hline
\endfirsthead
\hline
\rowcolor[rgb]{0.9,0.9,0.9}[5.5pt]
\begin{center}\textbf{Complex of topics}\end{center} & \begin{center}\textbf{Questions of critical success}\end{center} & \begin{center}\textbf{Comments / Suggestions}\end{center} \\ \hline\hline
\endhead
\hline\hline
%Die Fu"szeilen & f"ur & alle Seiten \\ \hline\hline
\endfoot
\hline\hline
%Nur die letzte & Fu"szeile ist etwas & BESONDERES \\ \hline\hline
\endlastfoot
General Economics & Which macroeconomic relevance is inherent in the topics?
& \\
\hline
Strategic Management & How is the topic's strategic relevance to be evaluated, especially concerning the aspects of securing existence, competitive advantages, tying up resources, sustainability, and risk?
& \\
\hline
\end{longtable}
\label{lon:itm_checklist}
% End Longtable
\end{document}

sommerfee
11-01-2008, 21:54
Hallo Stefan,

Vorab: Bitte benutze für Codebeispiele immer die "code" Umgebung hier im Forum, weil ansonsten Leerzeichen auftauchen können, wenn man sich den Code in sein TeX-System kopiert. Das kostet dann immer etwas Mühe, die Fehlermeldungen zu beseitigen, weil z.B. mitten in \textwi dth ein Leerzeichen ist.



1. Wie kann ich die Overfull und Underfull Meldungen beheben?

Das Hauptproblem an deiner Tabelle ist, daß sie zu breit ist, deswegen gibt es bei jeder Zeile eine "Overfull \hbox". Bei einer Tabelle ist quasi (0.15+0.4+0.45)*\textwidth != \textwidth, weil auch die vertikalen Striche zusätzlich Platz benötigen, ebenso wie der "Sicherheitsabstand" zwischen den einzelnen Tabellenzellen (\tabcolsep). Insgesamt ist die Tabelle so 37.59311pt zu Breit, wie man an den "Overfull \hbox" Meldungen ablesen kann.

Die "Underfull \hbox" gibt es bei "Strategic Management", weil er hier keine Trennung findet, die eine bessere Ausnutzung der ersten Zeile dieser Tabellenzelle bedeutet. Ich würde bei einer solch schmalen Zelle vielleicht gar keine automatische Trennung bzw. Blocksatz machen, sondern "Strategic\par Management" schreiben. Ebenso finde ich die Trennung bei "General Economics" nicht sehr hübsch, das könnte man ebenso händisch nachbessern.



2. Wie kann ich die Kopfzeile der Tabelle geschickter zentrieren?

Diese Frage ist mir nicht ganz klar. Möchtest du die Elemente der Kopfzeile vertikal zentriert angeordnet haben?

Liebe Grüße,
Axel

Stefan2902
11-01-2008, 22:20
Hallo Axel,

zunächst mal Danke für die schnelle Antwort.

Ich habe nun die Spaltengrößen verkleinert. Siehe:

<code>

\begin{longtable}[t]{|p{0.12\textwidth}|p{0.36\textwidth}|p{0.42\textw idth}|}

<\code>

Dies hat nun dazu geführt, dass die Spalten nicht mehr zu groß definiert sind. Wie ich aber auch immer das Verhältnis der einzelnen Spalten zueinander setze, ich bekomme ich Underfull oder Overfull \hbox. (Bsp. General\par Economics --> führt dazu, dass er im Anschluss Economics anmeckert).

Gibt es nicht eine Möglichkeit, dass die Spaltenbreite automatisch so definiert wird, dass möglichst sämtlicher Text gesetzt werden kann und nur noch im Einzelfall manuell eingegriffen werden muss?

Zur Zentrierung: Standardmäßig werden die Zelleninhalte im Blocksatz angezeigt. Ich möchte jedoch die Kopfzeile sowohl horizontal, als auch vertikal zentrieren. Z. Zt. mache ich es, indem ich jeden Zelleninhalt einzeln mit einem \begin \end center einschließe. Das scheint mir nicht die richtige Vorgehensweise zu sein, oder?

Danke und Gruß
Stefan

Es ist eigentlich egal, wie ich die Aufteilung der Spaltengrößen vornehme, da der Compilevorgang immer wieder andere Zellen anmeckert