PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Benötige Hilfe mit tabu und tabellenbreite



ztluw
29-04-2013, 18:50
\documentclass{article}
%use of packages
\usepackage{tabu}
\usepackage{longtable}
\usepackage{needspace}
\usepackage[a4paper, left=2cm, right=2cm, top=1cm, bottom=1cm, footskip=1.5cm, includeheadfoot]{geometry}

\begin{document}
\section{Table is too wide --- Why?}
%\begin{minipage}{\linewidth}
\begin{center}
\renewcommand{\arraystretch}{1.4}
\begin{longtabu} to 0.8\linewidth{ | X[-1] | X[-1] | X[-1] | X[-1] | }
\hline
\multicolumn{4}{|l|}{\small\sl continued from previous page}\\
\hline
\multicolumn{1}{|c|}{\textbf{Experiment}} & \multicolumn{1}{c|}{\textbf{Ref-pH}} & \multicolumn{1}{c|}{\textbf{Solubility at Ref-pH}} & \multicolumn{1}{c|}{\textbf{Solubility gain per charge}}\\
\hline
\endhead
\hline
\multicolumn{1}{|c|}{\textbf{Experiment}} & \multicolumn{1}{c|}{\textbf{Ref-pH}} & \multicolumn{1}{c|}{\textbf{Solubility at Ref-pH}} & \multicolumn{1}{c|}{\textbf{Solubility gain per charge}}\\
\hline
\endfirsthead
\hline
\multicolumn{4}{|r|}{\small\sl continued on next page}\\
\hline
\endfoot
\endlastfoot
phosphate buffer solubility & 6.8 & 0.00067 & 1000\\
\tabuphantomline
\tabuphantomline
\hline
\caption{Too wide table}
\end{longtabu}
\end{center}
%\end{minipage}

\section{Second Row is too small --- Why?}
%\begin{minipage}{\linewidth}
\begin{center}
\renewcommand{\arraystretch}{1.4}
\begin{longtabu} to 0.8\linewidth{ | X[-1] | X[-1] | }
\hline
\multicolumn{2}{|l|}{\small\sl continued from previous page}\\
\hline
\multicolumn{1}{|c|}{\textbf{Experiment}} & \multicolumn{1}{c|}{\textbf{Permeability}}\\
\hline
\endhead
\hline
\multicolumn{1}{|c|}{\textbf{Experiment}} & \multicolumn{1}{c|}{\textbf{Permeability}}\\
\hline
\endfirsthead
\hline
\multicolumn{2}{|r|}{\small\sl continued on next page}\\
\hline
\endfoot
\endlastfoot
Calculated & \\
\tabuphantomline
\cline{1-2}\multicolumn{2}{|p{\dimexpr0.8\linewidth-2\tabcolsep}|}{\begin{tabu}{ | X[-1] | X[-1] | }
\multicolumn{1}{|c|}{\textbf{Lipophilicity}} & \multicolumn{1}{c|}{\textbf{Permeability}}\\
\cline{1-2}log MA fit & 0.04 cm/min\\
\tabuphantomline
\tabuphantomline
\end{tabu}
}\\
\cline{1-2}\tabuphantomline
\hline
\caption{Strange table}
\end{longtabu}
\end{center}
%\end{minipage}

\section{Second and Third Row are too small --- Why?}
%\begin{minipage}{\linewidth}
\begin{center}
\renewcommand{\arraystretch}{1.4}
\begin{longtabu} to 0.8\linewidth{ | X[-1] | X[-1] | X[-1] | }
\hline
\multicolumn{3}{|l|}{\small\sl continued from previous page}\\
\hline
\multicolumn{1}{|c|}{\textbf{Start Time}} & \multicolumn{1}{c|}{\textbf{Number of Repetitions}} & \multicolumn{1}{c|}{\textbf{Time Between Repetitions}}\\
\hline
\endhead
\hline
\multicolumn{1}{|c|}{\textbf{Start Time}} & \multicolumn{1}{c|}{\textbf{Number of Repetitions}} & \multicolumn{1}{c|}{\textbf{Time Between Repetitions}}\\
\hline
\endfirsthead
\hline
\multicolumn{3}{|r|}{\small\sl continued on next page}\\
\hline
\endfoot
\endlastfoot
37.00 h & 1.00 & 0 h\\
\tabuphantomline
\cline{1-3}\multicolumn{3}{|p{\dimexpr0.8\linewidth-2\tabcolsep}|}{\begin{tabu}{ | X[-1] | X[-1] | X[-1] | X[-1] | }
\multicolumn{1}{|c|}{\textbf{Start Time}} & \multicolumn{1}{c|}{\textbf{Dose}} & \multicolumn{1}{c|}{\textbf{Administration type}} & \multicolumn{1}{c|}{\textbf{Placeholder for formulation}}\\
\cline{1-4}0 h & 50.00 mg & Oral & Formulation\\
\tabuphantomline
\cline{1-4}\multicolumn{4}{|p{\dimexpr 0.8\linewidth-2\tabcolsep}|}{\begin{tabu}{ | X[-1] | X[-1] | }
\multicolumn{1}{|c|}{\textbf{Parameter}} & \multicolumn{1}{c|}{\textbf{Value}}\\
\cline{1-2}Volume of water/body weight & 3.50 ml/kg\\
\tabuphantomline
\tabuphantomline
\end{tabu}
}\\
\cline{1-4}\tabuphantomline
\end{tabu}
}\\
\cline{1-3}\tabuphantomline
\hline
\caption{Even stranger table}
\end{longtabu}
\end{center}
%\end{minipage}

\end{document}

Ich verstehe nicht warum die erste Tabelle zu breit gerät... :confused:

Ist dort ein Bug in der X[-1] Implementierung? Habe ich was falsch verstanden? Wer hat Erfahrungen mit tabu und kann mir weiterhelfen?

Freue mich auf Unterstützung... Vielen Dank schon mal... :)

rstuby
29-04-2013, 19:39
Nimm erstmal die ganzen Leerzeichen aus den Spaltendefinitionen. Damit ist schon eine ganze Menge gewonnen.

bobmalaria
29-04-2013, 21:53
im kopf überschreibst du mit deinen ganzen multicolumns mit c-spalten definitionen die X spalten... also wird zu langer text nicht umgebrochen = overfull boxes

rstuby
30-04-2013, 06:56
bobmalaria, den Verdacht hatte ich auch, aber in der ersten Spalte der ersten Tabelle sehe ich gar keinen Text, der bis zum Spaltenende geht? Deshalb konnte ich dem TE keinen konkreten Tipp dazu geben.

klops
30-04-2013, 08:15
Das sind alles Probleme durch exzessiven Gebrauch von \multicolumn. Wenn alle Zellen letztlich wieder durch c-, l- oder r-Spalten definiert sind, dann bekommt man auch deren Ergebnisse. Hier einmal eine Möglichkeit für die erste Tabelle:
\documentclass{article}
%use of packages
\usepackage{tabu}
\usepackage{longtable}
\usepackage{needspace}
\usepackage[a4paper, left=2cm, right=2cm, top=1cm, bottom=1cm, footskip=1.5cm,
includeheadfoot]{geometry}
\usepackage{siunitx}

\newcolumntype Y{S[
group-four-digits=false,
round-mode=places,
round-precision=2,
round-integer-to-decimal=true,
per-mode=symbol,
detect-all
]}

\newcolumntype Z{S[
group-four-digits=false,
round-mode=places,
round-precision=5,
round-integer-to-decimal=true,
per-mode=symbol,
detect-all
]}

\tabucolumn Y
\tabucolumn Z

\begin{document}
\section{Table is too wide --- Why?}
%\begin{minipage}{\linewidth}
\begin{center}
\renewcommand{\arraystretch}{1.4}
\begin{longtabu} to 0.8\linewidth{|X[-1]|Y|Z|X[-1r]|}
\hline
\multicolumn{4}{|l|}{\small\sl continued from previous page}\\
\hline
\rowfont\bfseries
{Experiment} & {Ref-pH} & {Solubility at Ref-pH} & {Solubility gain per charge}\\
\hline
\endhead
\hline
\rowfont\bfseries
{Experiment} & {Ref-pH} & {Solubility at Ref-pH} & {Solubility gain per charge}\\
\hline
\endfirsthead
\hline
\multicolumn{4}{|r|}{\small\sl continued on next page}\\
\hline
\tabuphantomline
\endfoot
\endlastfoot
{phosphate buffer solubility} & 6.8 & 0.00067 & 1000\\
\hline
\caption{Not longer too wide table}
\end{longtabu}
\end{center}

\end{document}

Näheres ist den Anleitungen zu tabu und siunitx zu entnehmen.

Es sei an dieser Stelle auch darauf hingewiesen, dass vertikale Linien in Tabellen einen störenden Einfluss auf das Lesen der Tabelle habe. Man sollte sie daher möglichst vermeiden. Zu gut gesetzten Tabellen siehe auch den tabsatz-Vortrag (http://www.ctan.org/pkg/tabsatz).

PS: Die überflüssigen Leerzeichen in den Spaltendefinitionen werden AFAIK ignoriert. Bei einen Kurztest hatten sie jedenfalls keinen Einfluss auf das Problem.