Overfull und underfull \hbox in Tabellen

Tabellen und Grafiken erstellen und anordnen


Guban
Forum-Anfänger
Forum-Anfänger
Beiträge: 49
Registriert: Di 1. Dez 2015, 14:37

Overfull und underfull \hbox in Tabellen

Beitrag von Guban »

Hallo ihr,

ich habe als Beispiel zwei Tabellen, bei denen ich verschiedene Warnungen bekomme. In einigen der Zellen ist viel längerer Text als in den übrigen (das sind die Abkürzungen). Wenn ich daher einen Zeilenumbruch hervorrufe durch Begrenzen der Spaltenbreite, entstehen underfull boxes in den anderen Zeilen. Mit dem Einbinden von \microtype bekomme ich:

! pdfTeX error (font expansion): auto expansion is only possible with scalable
fonts.

Wenn ich alle Spalten auf zentriert einstelle, wird die Tabelle zu breit für die Seite. Was würdet ihr machen?
%Schriftgröße, Layout, Papierformat, Art des Dokumentes
\documentclass[11pt,oneside,a4paper]{scrartcl}


\usepackage[ngerman, english]{babel}

%Umlaute ermöglichen
\usepackage[utf8]{inputenc}

%Kopf- und Fußzeile
\usepackage{scrpage2}
\pagestyle{scrheadings}
\renewcommand*{\headfont}{\normalfont\sffamily\bfseries}

\clearscrheadfoot
\automark[section]{chapter}
\ohead{\headmark}
\ofoot[\pagemark]{\pagemark}
%Kopfzeile rechts bzw. außen
\setheadsepline{0.5pt}

%Fußzeile rechts bzw. außen
\setfootsepline{0.5pt}
\usepackage{cite}
\usepackage{graphicx}

\usepackage{multirow}
\usepackage[T1]{fontenc}
\newcommand{\RM}[1]{\MakeUppercase{\romannumeral #1{}}}
\usepackage{longtable}
\setcounter{LTchunksize}{10}


\usepackage{xcolor}

\usepackage{pdflscape}

\usepackage{caption}
\captionsetup{font={footnotesize},labelfont={bf}}
\usepackage[version=4]{mhchem}
\usepackage{pifont}
\usepackage{wasysym}
\usepackage{xfrac}

\usepackage{bigdelim}


\usepackage{array}
\usepackage{booktabs}
\usepackage{float}
\usepackage{bm}
\usepackage{amsmath}
%Einstellungen der Seitenränder
\usepackage[left=3cm,right=2cm,top=2cm,bottom=2cm,includeheadfoot]{geometry}
\usepackage{setspace}
\usepackage{microtype}
\begin{document}

\begin{table}[H]
\caption[Homozygous and heterozygous mutant lines]{\textbf{Homozygous and heterozygous mutant lines}}
\label{tabmutants}
\begin{tabular}{|p{4.6cm}cc|}
\hline 
\rule[-1ex]{0pt}{4ex}
\textbf{mutant} & \textbf{gene} & \textbf{mutation} \\ 
\hline
\rule[-1ex]{0pt}{2.5ex}
Columbia-0 (Col-0) & none  & none \\
Col-Glabra (gl1) & At3g27920 & recessive fast neutron mutation \\ 
\textit{pdh1-1} & At3g30775 & \rdelim\}{8}{3cm}[\normalfont T-DNA insertions] \\
\textit{pdh1-2} & At3g30775 &  \\ 
\textit{pdh1-3} & At3g30775 &   \\ 
\textit{pdh2-1} & At5g38710 &  \\ 
\textit{p5cdh2} & At5g62530 &   \\ 
\textit{p5cdh3} & At5g62530 &  \\ 
\textit{pdh1-1 x pdh2-1} (\textit{pdh1 x pdh2}) & At3g30775, At5g38710 & \\
\textit{pdh1-1 x p5cdh2} (\textit{pdh1 x p5cdh}) & At3g30775, At5g62530 & \\
\hline
\end{tabular} 
\end{table}

\begin{table}[H]
\caption[Composition of germination medium]{\textbf{Composition of germination medium}}
\label{tabgerm medium}
\begin{tabular}{|cp{3.65cm}p{3.6cm}|}
\hline 
\rule[-1ex]{0pt}{4ex}
\textbf{substance} &\textbf{stock concentration}  &  \textbf{final concentration} \\ 
\hline 
sucrose & 50 \% (w/v) & 10 \% (w/v) \\ 
boric acid & 9.4 \% (w/v) & 0.01 \% (w/v) \\ 
CaCl$_2$ & 10 \% (w/v) & 0.01 \% (w/v) \\ 
Ca(NO$_3$)$_2$ & 9.6 \% (w/v) & 0.01 \% (w/v) \\ 
KCl & 1 M & 1 M \\
{casein enzymatic hydrolysate (NZ-Amine A)}  & 2 \% (w/v)  & 0,03 \% (w/v) \\
myo-inositol & 10 \% (w/v) & 0.01 \% (w/v) \\
ferric ammonium citrate (FAC) & 9.6 \% (w/v) & 0.01 \% (w/v) \\
spermidine & 0.1 M & 0.25 mM \\
$\gamma$-amino butyric acid (GABA) & 0.1 M & 1 M \\
\hline
\end{tabular} 
\end{table}

\end{document}

Gast

Beitrag von Gast »

Da du ohnehin pdflscape lädst, würde ich das einfach auch verwenden und die Tabellen quer setzen, damit sie auch bei Verwendung der natürlichen Spaltenbreite passt. Außerdem würde ich empfehlen, das ebenfalls bereits geladene Paket booktabs auch zu nutzten. Unter Weglassen aller überflüssigen Präambeldefinitionen und bei Verwendung eines aktuellen KOMA-Script ergibt sich dann beispielsweise:
\documentclass{scrartcl}% 11pt,oneside,a4paper sind Voreinstellung von
                        % scrartcl und damit überflüssig

\usepackage[ngerman, english]{babel}% Hauptsprache ist die letzte Sprache,
                                % also hier Englisch

\usepackage[utf8]{inputenc}% Eingabecodierung (muss mit den Editor-Einstellungen übereinstimmen)

%Kopf- und Fußzeile (siehe scrguide.pdf)
\usepackage[%
  headsepline=0.5pt,% Trennlinie unter dem Kopf mit Dicke 0.5pt statt 0.4pt
  footsepline=0.5pt,% Trennlinie über dem Fuß mit Dicke 0.5pt statt 0.4pt
  automark,% Lebende Kolumnentitel
]{scrlayer-scrpage}[2014/10/28]
\setkomafont{pageheadfoot}{\sffamily\bfseries}% Schrift in Kopf und Fuß
                                % (serifenlos + fett)
\clearpairofpagestyles% Voreinstellungen für scrheadings und plain.scrheadings löschen
\ohead{\headmark}% Kopfmark (Kolumnentitel) rechts statt in der Mitte
\ofoot*{\pagemark}% Seitenzahl rechts statt in der Mitte (Hinweis: Für
                  % Versionen von scrlayer-scrpage bis 3.13 muss hier noch
                  % umständlich \ofoot[\pagemark]{\pagemark} verwendet werden.

\usepackage{multirow}
\usepackage[T1]{fontenc}
\usepackage{lmodern}% Latin Modern statt European Computer Modern, siehe
                    % http://golatex.de/viewtopic,p,9526.html#9526

\usepackage{pdflscape}

\setkomafont{caption}{\footnotesize\bfseries}% siehe scrguide.pdf
\setkomafont{captionlabel}{\bfseries}% siehe scrguide.pdf

\usepackage{bigdelim}
\usepackage{array}
\usepackage{booktabs}

% Einstellungen der Seitenränder. Übrigens wirken mathematisch gleiche Ränder
% oben und untern als wäre der untere Rand kleiner und damit zu klein. Näheres
% zu geschickterer Satzspiegelkonstruktion ist im Anhang des KOMA-Script-
% Buches zu finden, siehe http://www.komascript.de/komascriptbuch
\usepackage[left=3cm,right=2cm,top=2cm,bottom=2cm,includeheadfoot]{geometry}
\usepackage{microtype}

\usepackage{mwe}% für Dummytext etc.

\begin{document}
\tableofcontents
\listoftables
\section{Test Section}
\Blindtext

\begin{landscape}
\centering
\captionaboveof{table}{Homozygous and heterozygous mutant lines}
\label{tabmutants}
\begin{tabular}{ccc}
\toprule
\textbf{mutant} & \textbf{gene} & \textbf{mutation} \\
\midrule
Columbia-0 (Col-0) & none & none \\
Col-Glabra (gl1) & At3g27920 & recessive fast neutron mutation \\
\textit{pdh1-1} & At3g30775 & \rdelim\}{8}{*}[\normalfont T-DNA insertions] \\
\textit{pdh1-2} & At3g30775 & \\
\textit{pdh1-3} & At3g30775 & \\
\textit{pdh2-1} & At5g38710 & \\
\textit{p5cdh2} & At5g62530 & \\
\textit{p5cdh3} & At5g62530 & \\
\textit{pdh1-1 x pdh2-1} (\textit{pdh1 x pdh2}) & At3g30775, At5g38710 & \\
\textit{pdh1-1 x p5cdh2} (\textit{pdh1 x p5cdh}) & At3g30775, At5g62530 & \\
\bottomrule
\end{tabular}

\bigskip% Mindestabstand
\vfill% verfügbarer Restabstand

\captionaboveof{table}{Composition of germination medium}
\label{tabgerm.medium}
\begin{tabular}{ccc}
\toprule
\textbf{substance} &\textbf{stock concentration} & \textbf{final concentration} \\
\midrule
sucrose & 50\,\% (w/v) & 10\,\% (w/v) \\
boric acid & 9.4\,\% (w/v) & 0.01\,\% (w/v) \\
CaCl$_2$ & 10\,\% (w/v) & 0.01\,\% (w/v) \\
Ca(NO$_3$)$_2$ & 9.6\,\% (w/v) & 0.01\,\% (w/v) \\
KCl & 1 M & 1 M \\
{casein enzymatic hydrolysate (NZ-Amine A)} & 2\,\% (w/v) & 0,03\,\% (w/v) \\
myo-inositol & 10\,\% (w/v) & 0.01\,\% (w/v) \\
ferric ammonium citrate (FAC) & 9.6\,\% (w/v) & 0.01\,\% (w/v) \\
spermidine & 0.1\,M & 0.25\,mM \\
$\gamma$-amino butyric acid (GABA) & 0.1\,M & 1\,M \\
\bottomrule
\end{tabular}
\end{landscape}

\end{document}
Wobei es mir mit \rdelim\}{8}{14em}[\qquad \textmd{T-DNA insertions}] noch besser gefällt bzw. ich die ganzen Spalten überhaupt nicht zentrieren, sondern linksbündig bzw. rechtsbündig setzen würde (ccc in der ersten Tabelle durch lll bzw. in der zweiten durch lrr ersetzen). Die Einheiten stehen übrigens zu weit entfernt von den Zahlen. Korrekt wäre eher \, statt eines ganzen Leerzeichens, wobei ich ausdrücklich die Verwendung von siunitx empfehlen möchte. Dabei solltest du dich dann für einen englischen Text auch gleich einheitlich für den Dezimalpunkt entscheiden. Bei einem deutschen Text wäre dagegen eher das Dezimalkomma zu empfehlen. Egal wofür man sich entscheidet: Man sollte das konsequent durchziehen und nicht wie oben mischen, weil dann die Bedeutung von Punkt und Komma unklar wird.

Bezüglich der ggf. empfehlenswerten Verwendung eines Chemiepakets für die Strukturformeln halte ich mich raus, weil ich mich damit nicht auskenne.

Dank der Verwendung eines frei skalierbaren Fonts (Link zu einer Erklärung im Quelltext) gibt es auch keine Probleme mit microtype, auch wenn das Paket hier gar nicht benötigt wird.

Insgesamt empfehle ich noch, dich nicht auf veraltete Dokumente oder Vorlagen zu stützen, sondern mit Hilfe einer aktuellen, ausführlichen LaTeX-Einführung und den Paketanleitungen das Dokument neu aufzubauen. Man übernimmt sonst zu leichtfertig schlechten Code von Vorgängern.

Guban
Forum-Anfänger
Forum-Anfänger
Beiträge: 49
Registriert: Di 1. Dez 2015, 14:37

Beitrag von Guban »

Oh, das mit den Dezimalzeichen ist mir noch gar nicht aufgefallen. Ich muss mal probieren wie es am besten rauskommt. Das sind recht viele Dinge, an denen ich herumprobieren kann. Vielen Dank!

Antworten