PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abstand von Tabellen zum Text



Kathrin_B
24-03-2011, 18:14
Hallo zusammen,

ich verwende in meinem Dokument verschiedene Arten von Tabellen, tabular (bzw. tabularx) und longtable (bzw. LTXtable). Außerdem verwende ich für tabular keine Gleitumgebungen, da ich die Position selbst bestimmen möchte (ich kann mir denken, dass es hierzu wieder einige kritische Stimmen geben wird...). Für das Aussehen der Beschriftungen nehme ich das caption-Paket, außerdem benutze ich capt-of, um Captions außerhalb von Gleitumgebungen setzen zu können. Soweit ich weiß, bestimmt caption auch das Aussehen von captionof und der caption in der Longtable, oder? Zumindest wirkt es in meinem Dokument auch dafür und für die caption in der Longtable :-)

Mein Problem ist, dass der Abstand von longtables zum Fließtext davor und danach ein anderer ist als der von tabular/tabularx zum Text bzw. der center-Umgebung. Ich habe bereits Verschiedenes ausprobiert, bin aber noch nicht auf die Lösung gekommen.

Longtables verwenden den Abstand \LTpre und \LTpost vor bzw. nach der Tabelle, soviel habe ich aus der Doku und durch Ausprobieren herausbekommen. Allerdings fügt longtable nach der Tabelle wohl noch einen weiteren Abstand hinzu, den ich nicht kenne, vorher ist der Abstand deutlich kleiner als bei den anderen Tabellen/Beschriftungen (s. Minimalbeispiel).

Ich habe bisher für meine tabulars die center-Umgebung genutzt, um ganz bewusst davor und danach einen Abstand zum Text zu bekommen. In Kombination mit longtable kann ich es momentan aber nicht nutzen, da eben die Abstände unterschiedlich sind. Wie wird der Abstand der center-Umgebung zum Text festgelegt, sodass ich diesen ändern kann? Lasse ich die Umgebung weg und füge vorher nur ein \vskip{\LTpre} (bzw. \vskip{LTpost} danach), sind die Abstände auch nicht identisch zu denen der Longtable.

Ein weiteres Problem besteht darin, dass die tabular-Tabelle ohne die center-Umgebung leider nicht zentriert ist, trotz \centering. Wo muss ich \centering genau einfügen, damit die Tabelle zentriert ist?


\documentclass[captions=tableheading,parskip=full]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{capt-of}
\usepackage{longtable}

\usepackage[skip=\parskip]{caption}

\begin{document}

Irgendein Text, der lang genug ist, fast eine komplette Zeile auszufüllen.

\setlongtables
\begingroup
\footnotesize \sffamily
\begin{longtable}{ll}
\caption{Longtable}
\\\toprule
Überschrift 1 & Überschrift 2 \\\toprule\endfirsthead\toprule
Überschrift 1 & Überschrift 2 \\\toprule\endhead
Text in erster Spalte & Text in zweiter Spalte \\
\bottomrule
\end{longtable}
\endgroup

Irgendein Text, der lang genug ist, fast eine komplette Zeile auszufüllen.

\begingroup
\vspace{\LTpre}
\centering
\begin{minipage}{.6\linewidth}% Einbindung in Minipage, damit Tabelle und Beschriftung zusammen bleiben.

\captionof{table}{Tabular}
\centering \footnotesize \sffamily

\begin{tabular}{ll}

\toprule
Überschrift 1 & Überschrift 2 \\\midrule
Text in erster Spalte & Text in zweiter Spalte \\
\bottomrule

\end{tabular}
\end{minipage}
\vspace{\LTpost}
\endgroup

Irgendein Text, der lang genug ist, fast eine komplette Zeile auszufüllen.

\begin{center}
\begin{minipage}{.6\linewidth}% Einbindung in Minipage, damit Tabelle und Beschriftung zusammen bleiben.

\captionof{table}{Tabular}
\centering \footnotesize \sffamily

\begin{tabular}{ll}

\toprule
Überschrift 1 & Überschrift 2 \\\midrule
Text in erster Spalte & Text in zweiter Spalte \\
\bottomrule

\end{tabular}
\end{minipage}
\vspace{\LTpost}
\end{center}

Irgendein Text, der lang genug ist, fast eine komplette Zeile auszufüllen.

\end{document}

Ich hoffe, ich habe mein Problem verständlich beschrieben und jemand kann mir weiterhelfen.

Kathrin

voss
24-03-2011, 19:04
ich verwende in meinem Dokument verschiedene Arten von Tabellen, tabular (bzw. tabularx) und longtable (bzw. LTXtable). Außerdem verwende ich für tabular keine Gleitumgebungen, da ich die Position selbst bestimmen möchte (ich kann mir denken, dass es hierzu wieder einige kritische Stimmen geben wird...). Für das Aussehen der Beschriftungen nehme ich das caption-Paket, außerdem benutze ich capt-of, um Captions außerhalb von Gleitumgebungen setzen zu können. Soweit ich weiß, bestimmt caption auch das Aussehen von captionof und der caption in der Longtable, oder? Zumindest wirkt es in meinem Dokument auch dafür und für die caption in der Longtable :-)


Wenn man Tabellen nicht gleiten lässt erschwert man massiv den Umbruch ....

Abgesehen davon hast du natürlich viel zu viele Zentrierungen, pro Tabelle brauchst du nur eine. Hier ein Beispiel mit gleichen Abständen _und_ zusätzlich Gleitumgebungen, die trotzdem dort erscheinen, wo sie definiert sind.


\documentclass[captions=tableheading,parskip=full]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{longtable}

\usepackage[skip=\parskip]{caption}

\begin{document}

Irgendein Text, der lang genug ist, fast eine komplette Zeile auszufüllen.

\begingroup
\medskip
\footnotesize \sffamily
\begin{longtable}{ll}
\caption{Longtable}\\\toprule
Überschrift 1 & Überschrift 2 \\\toprule\endfirsthead\toprule
Überschrift 1 & Überschrift 2 \\\toprule\endhead
Text in erster Spalte & Text in zweiter Spalte \\
\bottomrule
\end{longtable}
\endgroup

Irgendein Text, der lang genug ist, fast eine komplette Zeile auszufüllen.

\begin{minipage}{\linewidth}% Einbindung in Minipage, damit Tabelle und Beschriftung zusammen bleiben.
\captionof{table}{Tabular}
\centering \footnotesize \sffamily
\begin{tabular}{ll}\toprule
Überschrift 1 & Überschrift 2 \\\midrule
Text in erster Spalte & Text in zweiter Spalte \\
\bottomrule

\end{tabular}
\end{minipage}
\vspace{\LTpost}

Irgendein Text, der lang genug ist, fast eine komplette Zeile auszufüllen.

\begin{minipage}{\linewidth}% Einbindung in Minipage, damit Tabelle und Beschriftung zusammen bleiben.
\centering
\captionof{table}{Tabular}
\footnotesize \sffamily
\begin{tabular}{ll}\toprule
Überschrift 1 & Überschrift 2 \\\midrule
Text in erster Spalte & Text in zweiter Spalte \\
\bottomrule

\end{tabular}
\end{minipage}
\vspace{\LTpost}

Irgendein Text, der lang genug ist, fast eine komplette Zeile auszufüllen.

\begin{table}[!htb]
\captionof{table}{Tabular}
\centering \footnotesize \sffamily
\begin{tabular}{ll}\toprule
Überschrift 1 & Überschrift 2 \\\midrule
Text in erster Spalte & Text in zweiter Spalte \\
\bottomrule

\end{tabular}
\end{table}

Irgendein Text, der lang genug ist, fast eine komplette Zeile auszufüllen.

\begin{table}[!htb]
\centering
\caption{Tabular}
\footnotesize \sffamily
\begin{tabular}{ll}\toprule
Überschrift 1 & Überschrift 2 \\\midrule
Text in erster Spalte & Text in zweiter Spalte \\
\bottomrule

\end{tabular}
\end{table}

Irgendein Text, der lang genug ist, fast eine komplette Zeile auszufüllen.

\end{document}

Kathrin_B
24-03-2011, 20:17
Hallo Herbert,

danke für deine Antwort. Auf \medskip vor der Longtable wäre ich nie gekommen, ich habe eher umgekehrt probiert, die Tabular anzupassen!

Deine Tabellen in der table-Umgebung haben weder oben noch unten den gleichen Abstand wie die Longtable. Ich werde einfach bei meiner nicht-gleitenden Tabelle bleiben, jetzt funktioniert es ja, auch wenn ich die Umbrüche dann manuell 'verschönern' muss.

Das mit den vielen centering-Befehlen hat mich auch gewundert, weil scheinbar nichts davon funktioniert hat - dabei lag es an der falschen Breite der minipage :o Manchmal sieht man die einfachsten Sachen nicht!

Kathrin

sommerfee
24-03-2011, 22:07
Noch eine Anmerkung:

außerdem benutze ich capt-of, um Captions außerhalb von Gleitumgebungen setzen zu können.

Da du das caption-Paket verwendest, ist das überflüssig. Das capt-of-Paket enthält nur eine einzige Definition und die wird vom caption-Paket gnadenlos übergebügelt :D

Schweinebacke
25-03-2011, 08:13
Und außerdem wird auch noch eine KOMA-Script-Klasse verwendet, die ebenfalls \captionof (und in der nächsten Version laut http://www.komascript.de/releasesvn auch \captionaboveof und \captionbelowof) bereitstellt. Mit KOMA-Script und caption ist capt-of sozusagen überüberflüssig. ;)

Kathrin_B
25-03-2011, 11:11
Prima, dann weiß ich jetzt auch, warum Herberts Minimalbeispiel auch ohne capt-of funktioniert. Ich hatte mich darüber gewundert, aber vergessen zu fragen, ob es durch ein anderes Paket automatisch geladen wird :-) Dann schmeiße ich es jetzt aus meiner Präambel raus.