longtable mit \hline und \nopageBreak

Tabellen und Grafiken erstellen und anordnen


Benutzeravatar
mathe42
Forum-Anfänger
Forum-Anfänger
Beiträge: 15
Registriert: So 8. Jan 2017, 17:35

longtable mit \hline und \nopageBreak

Beitrag von mathe42 »

Moin,

Folgendes Beispiel funktioniert:
\documentclass[10pt]{article}

\usepackage{longtable}

\begin{document}

\begin{longtable}{c|c}
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
 a&bcccc\\\nopagebreak
a&bdddd\\
a&b\\
a&b\\
\end{longtable}

\end{document}
Die Zeilen a&bcccc und a&bdddd bleiben auf einer seite. Ändere ich nun folgendes:
a&b\\
a&b\\
 a&bcccc\\\nopagebreak\hline
a&bdddd\\
a&b\\
a&b\\
klappt es nicht mehr. Warum? Setze ich \nopagebreak falsch ein? Oder ist das nicht mit \hline kompatibel.

Vielen Dank im Voraus!

Gruß
Sebastian

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »


Gast

Beitrag von Gast »

\hline ist bei longtable so definiert, dass an der Stelle explizit ein Seitenumbruch erlaubt ist und im Falle eines Seitenumbruch die Linie sowohl unten auf dieser als auch oben auf der nächsten Seite gesetzt wird. Es ist derzeit AFAIK nicht möglich, einen Seitenumbruch an einer \hline zu verhinden. Man kann zwar duchaus \\*\hline\nopagebreak angeben, aber aus dem genannten Grund, kommt dabei das \pagebreak zu spät.

Du suchst also so eine Art \hline* (analog zu \\*), das keinen Seitenumbruch erlaubt. Das wäre ein Feature-Request zu longtable.

Es gibt aber einen Workaround: \cline statt \hline verwenden:
\documentclass[10pt]{article}
\usepackage{booktabs}
\usepackage{longtable}

\begin{document}

\begin{longtable}{c|c}
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
a&b\\
 a&bcccc\\*\cline{1-2}\nopagebreak
a&bdddd\\
a&b\\
a&b\\
\end{longtable}

\end{document}
BTW: Vergiss vertikale Linien in Tabellen, die stören fast immer mehr als sie nützen.

Benutzeravatar
mathe42
Forum-Anfänger
Forum-Anfänger
Beiträge: 15
Registriert: So 8. Jan 2017, 17:35

Beitrag von mathe42 »

Danke.

Ich war vorhin schon auf der Seite und habe das falsch interpretiert...
:o

Antworten