von u_fischer » Di 29. Jan 2013, 11:38
Nun, "ganz einfach" ist das nicht. Die Breite der longtable ist ja nicht bekannt, also kann caption nicht einfach irgendwo nachsehen, wie groß der linke Rand sein muss, bzw. wie breit die caption sein darf/soll.
Man kann aber die Breite der Tabelle berechnen lassen:
(Mehrmals kompilieren, bis es passt):
\documentclass[a4paper, 12pt, titlepage]{article}
\usepackage[singlelinecheck=1,hang,small,bf]{caption}
\usepackage{longtable}
\captionsetup[longtable]{margin={\dimexpr 0.5\textwidth-0.5\myLTwidth,0pt}}
%oder
%\captionsetup[longtable]{margin={\dimexpr 0.5\textwidth-0.5\myLTwidth}}
\makeatletter
\newlength\myLTwidth
\myLTwidth=3cm
\newcommand\getcurrentLTwidth{%
\begingroup
\advance\c@LT@tables by 1
\ifcsname LT@\romannumeral\c@LT@tables\endcsname
\myLTwidth=0pt
\def\LT@entry##1##2{\advance\myLTwidth by ##2}%
\csname LT@\romannumeral\c@LT@tables\endcsname
\global\myLTwidth=\myLTwidth
\fi
\endgroup
}
\makeatother
\begin{document}
\getcurrentLTwidth
\begin{longtable}{|c|c|c|}
\caption{Verdünnungsreihen Verdünnungsreihen für beide Polymerlösungen }\\
\hline
\rule[-1ex]{0pt}{3.5ex} & Kollidon 30 [$\frac{g}{L}$] & Kollidon 17 PF [$\frac{g}{L}$]\\
\hline
\rule[-1ex]{0pt}{2.5ex} 1 & 12 & 30 \\
\hline
\rule[-1ex]{0pt}{2.5ex} 2 & 24 & 60 \\
\hline
\rule[-1ex]{0pt}{2.5ex} 3 & 36 & 90\\
\hline
\rule[-1ex]{0pt}{2.5ex} 4 & 48 & 120\\
\hline
\end{longtable}
\getcurrentLTwidth
\begin{longtable}{|c|c|c|}
\caption{Verdünnungsreihen Verdünnungsreihen für beide Polymerlösungen }\\
\hline
\rule[-1ex]{0pt}{3.5ex} & Kollidon 30 [$\frac{g}{L}$] & Ko\\
\hline
\rule[-1ex]{0pt}{2.5ex} 1 & 12 & 30 \\
\hline
\rule[-1ex]{0pt}{2.5ex} 2 & 24 & 60 \\
\hline
\rule[-1ex]{0pt}{2.5ex} 3 & 36 & 90\\
\hline
\rule[-1ex]{0pt}{2.5ex} 4 & 48 & 120\\
\hline
\end{longtable}
\end{document}
Nun, "ganz einfach" ist das nicht. Die Breite der longtable ist ja nicht bekannt, also kann caption nicht einfach irgendwo nachsehen, wie groß der linke Rand sein muss, bzw. wie breit die caption sein darf/soll.
Man kann aber die Breite der Tabelle berechnen lassen:
(Mehrmals kompilieren, bis es passt):
[code]\documentclass[a4paper, 12pt, titlepage]{article}
\usepackage[singlelinecheck=1,hang,small,bf]{caption}
\usepackage{longtable}
\captionsetup[longtable]{margin={\dimexpr 0.5\textwidth-0.5\myLTwidth,0pt}}
%oder
%\captionsetup[longtable]{margin={\dimexpr 0.5\textwidth-0.5\myLTwidth}}
\makeatletter
\newlength\myLTwidth
\myLTwidth=3cm
\newcommand\getcurrentLTwidth{%
\begingroup
\advance\c@LT@tables by 1
\ifcsname LT@\romannumeral\c@LT@tables\endcsname
\myLTwidth=0pt
\def\LT@entry##1##2{\advance\myLTwidth by ##2}%
\csname LT@\romannumeral\c@LT@tables\endcsname
\global\myLTwidth=\myLTwidth
\fi
\endgroup
}
\makeatother
\begin{document}
\getcurrentLTwidth
\begin{longtable}{|c|c|c|}
\caption{Verdünnungsreihen Verdünnungsreihen für beide Polymerlösungen }\\
\hline
\rule[-1ex]{0pt}{3.5ex} & Kollidon 30 [$\frac{g}{L}$] & Kollidon 17 PF [$\frac{g}{L}$]\\
\hline
\rule[-1ex]{0pt}{2.5ex} 1 & 12 & 30 \\
\hline
\rule[-1ex]{0pt}{2.5ex} 2 & 24 & 60 \\
\hline
\rule[-1ex]{0pt}{2.5ex} 3 & 36 & 90\\
\hline
\rule[-1ex]{0pt}{2.5ex} 4 & 48 & 120\\
\hline
\end{longtable}
\getcurrentLTwidth
\begin{longtable}{|c|c|c|}
\caption{Verdünnungsreihen Verdünnungsreihen für beide Polymerlösungen }\\
\hline
\rule[-1ex]{0pt}{3.5ex} & Kollidon 30 [$\frac{g}{L}$] & Ko\\
\hline
\rule[-1ex]{0pt}{2.5ex} 1 & 12 & 30 \\
\hline
\rule[-1ex]{0pt}{2.5ex} 2 & 24 & 60 \\
\hline
\rule[-1ex]{0pt}{2.5ex} 3 & 36 & 90\\
\hline
\rule[-1ex]{0pt}{2.5ex} 4 & 48 & 120\\
\hline
\end{longtable}
\end{document} [/code]