Seite 1 von 1

underfull und overfull hbox in Tabellen

Verfasst: So 13. Mai 2018, 14:03
von lunen
Hallo zusammen,

ich habe folgende Tabelle:
\documentclass[paper=a4,
               ngerman]
               {scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{booktabs}
\usepackage{geometry}
\usepackage{microtype}
\usepackage{siunitx}

\geometry{
  left=2.2cm,
  right=1.8cm,
  top=3cm,
  bottom=3cm}

\DeclareSIUnit[number-unit-product = \,]\eq{eq.}

\begin{document}
\begin{table}[ht]
    \caption{Ansatzgrößen}
     \begin{tabular}{p{4cm}p{2.3cm}p{1.2cm}p{2cm}p{2cm}p{1cm}p{1.4cm}}
    \toprule
        Substanz &%
        Molare Masse \si{\gram\per\mole} &%
        Dichte \si{\gram\per\cubic\centi\metre} &%
        Stoffmenge \si{\mole} &%
        Äquivalente \si{\eq} &%
        Masse \si{\gram} &%
        Volumen \si{\milli\liter}  \\
        \midrule
        A"-di"-pin"-säu"-re"-ethyl"-ester"-mono"-chlorid & 192.64 & - & 0.189 & 1 & 36.43 & -\\
        \bottomrule
    \end{tabular}
\end{table}
\end{document}
Ich bekomme für die verschiedenen Spalten underfull und overfull hbox Warnungen. Gibt es eine elegante Möglichkeit, dies zu beheben? Oder eine allgemein bessere Möglichkeit Tabellen dieser Art zu gestalten?
Prinzipiell ist mir klar, was die Warnungen mir sagen wollen.

Es ist gewollt, dass die Einheiten unterhalb der Spaltendeklaration stehen, weshalb p-Spalten gewählt wurden.

Vielen Dank,
Gruß
Lunen

Verfasst: So 13. Mai 2018, 14:55
von Bartman
Warum benutzt Du nicht den Spaltentyp S und schreibst die Einheiten in die nächste Zeile?
\documentclass[ngerman, captions=tableheading]{scrreprt}% <- geändert
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{babel}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{geometry}
\usepackage{microtype}
\usepackage{siunitx}
\usepackage{showframe}

\geometry{
  left=2.2cm,
  right=1.8cm,
  top=3cm,
  bottom=3cm
}

\sisetup{locale=DE}

\DeclareSIUnit[number-unit-product = \,]\eq{eq.}

\begin{document}
\begin{table}[ht]
	\caption{Ansatzgrößen}
	\begin{tabularx}{\textwidth}{X *6S}
	\toprule
	Substanz & 
	{Molare Masse} &
	{Dichte} &
	{Stoffmenge} &
	{Äquivalente} &
	{Masse} &
	{Volumen} \\
	& \si{\g\per\mole} & 
	\si{\g\per\cubic\cm} & 
	\si{\mole} & 
	\si{\eq} & 
	\si{\g} & 
	\si{\mL}\\
	\midrule
	Adipinsäureethylestermo"-nochlorid & 192.64 & {--} & 0.189 & 1 & 36.43 & {--}\\
	\bottomrule
	\end{tabularx}
\end{table}
\end{document}

Verfasst: So 13. Mai 2018, 15:39
von lunen
Vielen Dank.
Das Paket tabularx ist mir zwar hin und wieder in die Hände gefallen, nur habe ich seine Verwendung nicht ganz verstanden.
Eine S-Spalte ist Spalte, in der Zahlen am Dezimaltrennzeichen orientiert werden. Das X macht im Prinzip eine p-Spalte daraus. Woran orientiert sich den TeX nun, dass die Spaltenbreite optimal gesetzt wird?

Und ja, ich kann auch eine neue Zeile für die Einheiten aufmachen. Ist, glaube ich, noch ein Relikt aus Zeiten ohne booktabs.

Gruß
Lunen