Seite 1 von 2
Text außerhalb und innerhalb Tabelle nicht auf einer Ebene
Verfasst: Di 19. Sep 2017, 21:07
von Lanu
Hallo,
ich erstelle gerade eine Seite mit ein paar Informationen, die aufgelistet werden sollen. Es ist also keine wissenschaftliche Arbeit oder ähnliches.
Hierfür habe ich eine Tabelle und vor dieser Tabelle eine einfache Überschrift:
\documentclass[12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{longtable}
\begin{document}
\textbf{Überschrift der Tabelle}
\begin{longtable}{p{0.2\linewidth}p{0.8\linewidth}}
Test & Test \\
Test & Test
\end{longtable}
\end{document}
Meine Frage: Wieso ist die Überschrift und der Tabelleninhalt nicht auf einer Ebene, obwohl beides linksbündig ist?
Vielen Dank im Vorraus.
Verfasst: Mi 20. Sep 2017, 07:45
von markusv
Hallo. Im engeren Sinne ist beides nicht linksbündig, was dem Flattersatz entspricht, sondern der Text im Blocksatz gesetzt. Da es ein Absatzbeginn darstellt, kommt hier der Absatzeinzug hinzu, der den Abstand verursacht.
Die Tabelle hat einen Raum für den Rand, der einen anderen Abstand bewirkt.
Den Absatzeinzug verhinderst du mit \noindent (sollte im wiss. Satz nicht eingesetzt werden). Tabellenränder kannst du in der Spaltendefinition selbst definieren mit @{<randbreite>}.
Übrigens: schönes
Minimalbeispiel. TOP!
Im Beispiel:
\documentclass[12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{longtable}
\usepackage{showframe}%für Darstellung d. Satzspiegelkonstruktion
\begin{document}
\textbf{Überschrift der Tabelle}%Absatzeinzug
\begin{longtable}{p{0.2\linewidth}p{0.8\linewidth}}%Raum für Tabellenrand
Test & Test \\
Test & Test
\end{longtable}
\noindent\textbf{Überschrift der Tabelle}%Absatzeinzug ausgeschaltet
\begin{longtable}{@{}p{0.2\linewidth}p{0.8\linewidth}}%Tabellenrand entfernt
Test & Test \\
Test & Test
\end{longtable}
\end{document}
Verfasst: Mi 20. Sep 2017, 12:34
von Gast
Die Tabelle ist (auch in Markus' Beispielen) breiter als der Text: Jede Spalte, auch die erste und letzte hat vor der Spalte und danach einen Abstand von \tabcolsep. Markus verhindert das in seinem zweiten Beispiel vor der ersten Spalte mit @{}. Gibt man also p{0.2\linewidht}p{0.8\linewidth} als Spaltendeklaration an, so hat man eine Tabelle der Breite \tabcolsep+0.2\linewidth+\tabcolsep+\tabcolsep+0.8\linewidth+\tabcolsep=\linewidth+4\tabcolsep>\linewidth.
Dazu kommt, dass die Überschrift keine Überschrift ist. Eine
einfache Überschrift könnte man bei
scrartcl beispielsweise mit \minisec setzen:
\documentclass[12pt]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{longtable}
\begin{document}
\minisec{Überschrift der Tabelle}
\begin{longtable}{@{}p{\dimexpr 0.2\linewidth-\tabcolsep}p{\dimexpr 0.8\linewidth-\tabcolsep}@{}}
\endfirsthead
Test & Test \\
Test & Test
\end{longtable}
\end{document}
Mit @{} vor der ersten und nach der letzten Spalte verhindere ich dabei den Spaltenabstand an dieser Stelle (so wie Markus in seinem zweiten Beispiel vor der ersten Spalte).
Man kann aber auch gleich eine echte Tabellenüberschrift verwenden:
\documentclass[12pt,captions=nooneline,captions=tableheading]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{longtable}
\setkomafont{caption}{\bfseries}
\begin{document}
\begin{longtable}{@{}p{\dimexpr 0.2\linewidth-\tabcolsep}p{\dimexpr 0.8\linewidth-\tabcolsep}@{}}
\caption*{Überschrift der Tabelle}\\
\endfirsthead
Test & Test \\
Test & Test
\end{longtable}
\end{document}
Mit \caption* statt \caption verzichte ich dabei auf die Nummerierung der Tabelle. Mit captions=nooneline verhindere ich, dass einzeilige Tabellenüberschriften zentriert werden. Mit captions=tableheading sorge ich dafür, dass auch wirklich eine Überschrift formatiert wird (also mit kleinem vertikalem Abstand danach statt davor).
Verfasst: Mi 20. Sep 2017, 16:55
von Lanu
Hallo,
vielen Dank für die Hilfe und Hinweise zu Tabellen, genau das was ich wollte. Auch das Paket showframe find ich toll.
Noch eine kurze Frage: Wie kann ich den Absatzeinzug für das gesamte Dokument ausschalten?
Danke
Verfasst: Mi 20. Sep 2017, 18:02
von Bartman
Sieh Dir mal die Klassenoption parskip an.
Als Alternative zur Lösung des Gastes dürfte auch das Paket ltxtable interessant sein.
Re: Text außerhalb und innerhalb Tabelle nicht auf einer Ebe
Verfasst: Mi 20. Sep 2017, 18:27
von u_fischer
Lanu hat geschrieben: obwohl beides linksbündig ist?
Dass deine Überschrift nicht linkbündig ist, wurde ja schon erklärt. Aber die longtable ist auch nicht: Es spielt hier zwar keine Rolle, weil die Tabelle so breit ist, aber standardmäßig werden longtable-Tabellen zentriert.
Verfasst: Do 21. Sep 2017, 22:29
von Lanu
Hallo,
danke für den Tiop mit parskip, allerdings hat der wohl keine Option, die ich möchte.
Ich möchte den Absatzeinzug ausschalten, ohne dass zwischen den Absätzen ein gewissen Abstand (half = halbe Zeile, full = ganze Zeile) entsteht.
Ist soetwas möglich?
Danke
Verfasst: Do 21. Sep 2017, 23:01
von Bartman
Wie kennzeichnest Du dann die Absätze in Deinem Dokument?
http://texwelt.de/wissen/fragen/9
Verfasst: Do 21. Sep 2017, 23:13
von Lanu
Im Prinzip ist das was ich erstelle kein richtiges Dokument, sondern nur ein paar Informationen in mehren Tabellen und ab und zu eine kurze Beschreibung davor. Kurz gesagt: Mein Dokument braucht einfach keine Absätze, daher möchte ich kein Absatzeinzug haben und keine unnötigen Abstände.
Ist das irgendwie möglich? Ich kann auch dieses \noindent überall davorsetzen, aber es muss doch eine einfachere Möglichkeit geben?
Verfasst: Do 21. Sep 2017, 23:22
von u_fischer
\parindent=0pt