PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abstand von Über- UND Unterschriften bei Tabellen



kogb
30-12-2006, 13:35
Hallo zusammen.

Ich brauche eine Tabelle die sowohl eine Überschrift-, als auch eine Unterschrift (z. B. für Legenden …) hat. Dies funktioniert auch bestens, aber nun bereitet mir das Fine-tuning Kopfzerbrechen. Ich möchte nämlich die Abstände – jeweils nach oben und nach unten – für beide captions separat verändern. Ich habe mir folgenden Code gebastelt:



\documentclass[noonelinecaption]{scrreprt}
\usepackage{booktabs,tabularx}
\usepackage{caption}

\begin{document}

tabularx1 Beispieltext Beispieltext Beispieltext.

\begin{table}[!h]
\setlength{\abovecaptionskip}{0ex}
\setlength{\belowcaptionskip}{0ex}
\caption*{Ueberschrift ggg}
\begin{tabularx}{\textwidth}{*{3}{X}}
\toprule
Goofy & Daniel Duesentrieb & Daisy \\
Gundel Gaukeley & MacMoneysack & Dagobert Duck \\
\bottomrule
\end{tabularx}
%\setlength{\abovecaptionskip}{0ex}
%\setlength{\belowcaptionskip}{0ex}
\caption*{Unterschrift}
\end{table}

Beispieltext Beispieltext Beispieltext.

\newpage

tabularx2 Beispieltext Beispieltext Beispieltext.

\begin{table}[!h]
\setlength{\abovecaptionskip}{0ex}
\setlength{\belowcaptionskip}{0ex}
\caption*{Ueberschrift ggg}
\begin{tabularx}{\textwidth}{*{3}{X}}
\toprule
Goofy & Daniel Duesentrieb & Daisy \\
Gundel Gaukeley & MacMoneysack & Dagobert Duck \\
\bottomrule
\end{tabularx}
\setlength{\abovecaptionskip}{0ex}
\setlength{\belowcaptionskip}{0ex}
\caption*{Unterschrift}
\end{table}

Beispieltext Beispieltext Beispieltext.

\newpage

tabularx3.

\begin{table}[!h]
\setlength{\abovecaptionskip}{0ex}
\setlength{\belowcaptionskip}{0ex}
\caption*{Ueberschrift ggg}
\begin{tabularx}{\textwidth}{*{3}{X}}
\toprule
Goofy & Daniel Duesentrieb & Daisy \\
Gundel Gaukeley & MacMoneysack & Dagobert Duck \\
\bottomrule
\end{tabularx}
%\setlength{\abovecaptionskip}{0ex}
%\setlength{\belowcaptionskip}{0ex}
\caption*{Unterschrift}
\end{table}

Beispieltext Beispieltext Beispieltext.

\end{document}


Ich habe hier gleich drei mal die gleiche Tabelle reingestellt, damit man im PDF durch einfaches Blättern einen direkten Vergleich erhält.

Die setlength-Angaben am unteren Rand (Tab. 1) habe ich auskommentiert, damit man nach dem Kompilieren sieht, wie die Unterschrift aussehen sollte (so hätte ich sie gerne). Wenn man sie wieder reinnimmt (Tab. 2), dann entsteht ein hässlicher Abstand zwischen Tabellenende und Unterschrift. Zusätzlich erhält man die Meldung «zu volle/leere Box(en)».
Die Abstände habe ich lediglich zu Demonstrationszwecken auf 0ex gesetzt. Wenn man bei der Überschrift einen grösseren Abstand zum Text (\abovecaptionskip) wählt, ändert sich dies natürlich auch für den Abstand Unterschrift–Tabellenende. Wie bereits erwähnt, kann man aber durch ein zweites \setlength{\abovecaptionskip}{0ex} den ursprünglichen Abstand (wie in Tab. 1) nicht wiederherstellen.
Die dritte Tabelle zeigt ein weiteres Phänomen. Hier steht nur ein Wort am Zeilenanfang. Wenn man Tab. 3 mit einer der anderen Tabellen vergleicht, wo mehrere Wörter in der Zeile darüber stehen, stellt man fest, dass der Abstand des Tabellenanfangs zum Fliesstext hier abgenommen hat.

Die Fragen sind nun folgende:

Was muss ich ändern, damit ich die Abstände der Über- und Unterschrift getrennt verändern kann. Die Unterschrift sollte wie in Tabelle 1 aussehen, aber die Abstände zum Fliesstext sollten nach oben und eventuell auch nach unten vergrössert sein.

Nicht so wichtig, aber nur aus Neugierde: Warum verringert sich der Abstand zur Zeile oberhalb der Tabelle 3 im Vergleich zu Tabelle 1 oder 2, wo eine «ganze» Textzeile darüber steht?

Vielen herzlichen Dank für Eure Hilfe!

rais
30-12-2006, 14:30
Hallo und Herzlich Willkommen :)


Was muss ich ändern, damit ich die Abstände der Über- und Unterschrift getrennt verändern kann. Die Unterschrift sollte wie in Tabelle 1 aussehen, aber die Abstände zum Fliesstext sollten nach oben und eventuell auch nach unten vergrössert sein.

Nicht so wichtig, aber nur aus Neugierde: Warum verringert sich der Abstand zur Zeile oberhalb der Tabelle 3 im Vergleich zu Tabelle 1 oder 2, wo eine «ganze» Textzeile darüber steht?

zu 1) wieso? Du kannst so doch unterschiedliche Abstände schon einstellen (s.u.)
zu 2) Das ist sogar Dein Störenfried: durh die Verwendung der \setlength-Befehle zwischen caption und dem darüberliegenden Text (bzw bei Tab2 war's dann zwischen der Tabelle und der caption unten) baust Du unbewußt zusätzliche Abstände ein. Abhilfe schafft hier ein % am Ende jeder dieser \setlength-Zeilen (dann sollten auch die \underfull-Warnungen diesbezüglich verschwinden).
Übrigens konnte ich zwischen der ersten und dritten Tabelle keinen Unterschied feststellen.

Ich hab' das hier mal auf eine Tabelle gekürzt und die Längen innerhalb der jeweiligen caption gleich mit darstellen lassen:


\documentclass[noonelinecaption]{scrreprt}
\usepackage{blindtext,booktabs,tabularx}
\usepackage{caption}
\begin{document}
\blindtext
\begin{table}[!h]
\setlength{\abovecaptionskip}{0ex}%
\setlength{\belowcaptionskip}{1ex}%
\caption*{Ueberschrift ggg (above: \rule{\abovecaptionskip}{1pt} below: \rule{\belowcaptionskip}{1pt})}
\begin{tabularx}{\textwidth}{*{3}{X}}
\toprule
Goofy & Daniel Duesentrieb & Daisy \\
Gundel Gaukeley & MacMoneysack & Dagobert Duck \\
\bottomrule
\end{tabularx}
\setlength{\abovecaptionskip}{2ex}%
\setlength{\belowcaptionskip}{3ex}%
\caption*{Unterschrift (above: \rule{\abovecaptionskip}{1pt} below: \rule{\belowcaptionskip}{1pt})}
\end{table}
\blindtext
\end{document}
MfG,

kogb
30-12-2006, 15:36
Wow! Herzlichen Dank, genau danach habe ich gesucht.

Zum Unterschied zwischen Tabelle 2 und 3 (oder 1 und 3): Unten nochmals der Code von Tabelle 2 und 3 (mit den angepassten %-Zeichen). Wenn man im PDF immer zwischen den Seiten hin und herwechselt (direkt mit den Pfeiltasten um die Seite zu wechseln; Scrollen bringt nichts, da der Unterschied zu klein ist), fällt auf, dass Tie 3. Tabelle ein wenig weiter oben ist, als die 2., obwohl sie genau gleich definiert sind. Nur der Lauftext ist anders. Ich habe aber mittlerweilen herausgefunden, woran es liegt: Nämlich an den Unterlängen der Buchstaben (in diesem Fall p). Was mir nun aber nicht klar ist, warum wird dann der Lauftext unterhalb der Tabelle nicht auch um die entsprechende Länge nachkorrigiert? (Dies ist eigentlich nicht mehr wichtig für mich, aber ich bin trotzdem neugierig.)

Nochmals herzlichen Dank!


\documentclass[noonelinecaption]{scrreprt}
\usepackage{booktabs,tabularx}
\usepackage{caption}

\begin{document}

tabularx2 Beispieltext Beispieltext Beispieltext.

\begin{table}[!h]
\setlength{\abovecaptionskip}{0ex}%
\setlength{\belowcaptionskip}{0ex}%
\caption*{Ueberschrift ggg}
\begin{tabularx}{\textwidth}{*{3}{X}}
\toprule
Goofy & Daniel Duesentrieb & Daisy \\
Gundel Gaukeley & MacMoneysack & Dagobert Duck \\
\bottomrule
\end{tabularx}
\setlength{\abovecaptionskip}{0ex}%
\setlength{\belowcaptionskip}{0ex}%
\caption*{Unterschrift}
\end{table}

Beispieltext Beispieltext Beispieltext.

\newpage

tabularx3.

\begin{table}[!h]
\setlength{\abovecaptionskip}{0ex}%
\setlength{\belowcaptionskip}{0ex}%
\caption*{Ueberschrift ggg}
\begin{tabularx}{\textwidth}{*{3}{X}}
\toprule
Goofy & Daniel Duesentrieb & Daisy \\
Gundel Gaukeley & MacMoneysack & Dagobert Duck \\
\bottomrule
\end{tabularx}
\setlength{\abovecaptionskip}{0ex}%
\setlength{\belowcaptionskip}{0ex}%
\caption*{Unterschrift}
\end{table}

Beispieltext Beispieltext Beispieltext.

\end{document}

rais
31-12-2006, 17:32
Moin moin,

Wow! Herzlichen Dank, genau danach habe ich gesucht.

gern geschehen :)


Ich habe aber mittlerweilen herausgefunden, woran es liegt: Nämlich an den Unterlängen der Buchstaben (in diesem Fall p). Was mir nun aber nicht klar ist, warum wird dann der Lauftext unterhalb der Tabelle nicht auch um die entsprechende Länge nachkorrigiert? (Dies ist eigentlich nicht mehr wichtig für mich, aber ich bin trotzdem neugierig.)

ich hab' da mal ein wenig weiter experimentiert:


\documentclass{scrreprt}
\begin{document}
Text mit Unterlänge
\begin{table}[!h]
\rule{\textwidth}{1ex}
\end{table}

nachfolgender Beispieltext
\newpage
Text ohne Unterl.
\begin{table}[!h]
\rule{\textwidth}{1ex}
\end{table}

nachfolgender Beispieltext
\end{document}

und erst wenn man die table-Umgebung weglässt (\begin{table} ist hierbei durch eine Leerzeile zu ersetzen, sonst wird die Linie -- oder sollte ich besser `Balken´ sagen? -- in die vorstehende Zeile mit eingefügt), zeigt sich dieses Verhalten nicht mehr.
Das legt die Vermutung nahe, daß bei der table-Umgebung die vorstehende Unterlänge zwar oben stört, aber am Ende der table-Umgebung der Abstand entsprechend gestaucht werden kann.
Ganz genau steht das sicherlich in ltfloat.dtx (einen entsprechenden Abschnitt findest Du in source2e.pdf, dem dokumentierten Quellcode zu LaTeX2e), die Definition von \@float -- aber soooo weit bin ich noch nicht;-)

Wenn diesbezüglich nichts in der FAQ zu finden ist, lohnt sich vllt eine eine entsprechende Frage bei dctt.

MfG und
Guten Rutsch,

kogb
05-01-2007, 00:37
Moin moin,

gern geschehen :)

ich hab' da mal ein wenig weiter experimentiert:


\documentclass{scrreprt}
\begin{document}
Text mit Unterlänge
\begin{table}[!h]
\rule{\textwidth}{1ex}
\end{table}

nachfolgender Beispieltext
\newpage
Text ohne Unterl.
\begin{table}[!h]
\rule{\textwidth}{1ex}
\end{table}

nachfolgender Beispieltext
\end{document}

und erst wenn man die table-Umgebung weglässt (\begin{table} ist hierbei durch eine Leerzeile zu ersetzen, sonst wird die Linie -- oder sollte ich besser `Balken´ sagen? -- in die vorstehende Zeile mit eingefügt), zeigt sich dieses Verhalten nicht mehr.
Das legt die Vermutung nahe, daß bei der table-Umgebung die vorstehende Unterlänge zwar oben stört, aber am Ende der table-Umgebung der Abstand entsprechend gestaucht werden kann.
Ganz genau steht das sicherlich in ltfloat.dtx (einen entsprechenden Abschnitt findest Du in source2e.pdf, dem dokumentierten Quellcode zu LaTeX2e), die Definition von \@float -- aber soooo weit bin ich noch nicht;-)

Wenn diesbezüglich nichts in der FAQ zu finden ist, lohnt sich vllt eine eine entsprechende Frage bei dctt.

MfG und
Guten Rutsch,

Naja, so weit bin ich auch noch nicht, aber wenn es die Zeit erlaubt, werde ich mal schauen, ob ich da noch was herausfinde ;-)