\longtable Seitenumbruch verhindern

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: \longtable Seitenumbruch verhindern

von en.ko » Mo 22. Dez 2014, 12:49

Dass es an \hline liegt, darauf wäre ich nicht gekommen. In einer anderen Tabelle habe ich zufälligerweise hhline benutzt. Daher trat der Fehler nicht auf; gibt aber unschöne Nebeneffekte. Auf meiner Suche bin ich sogar auf http://tex.stackexchange.com/questions/ ... 702#186702 getroffen, habe es mir aber nicht bis zum wichtigen Teil durchgelesen. Danke für die Antworten!

von u_fischer » Mo 22. Dez 2014, 09:17

von Besserwisser » Mo 22. Dez 2014, 07:37

Das Problem sind die ganzen Linien. longtable definiert \hline so um, dass an dieser Stelle explizit ein Seitenumbruch erlaubt ist und im Falle des Seitenumbruchs die Linie quasi verdoppelt wird, nämlich sowohl am Ende der Seite als auch am Anfang der nächsten ausgegeben wird. Man könnte fast sagen, dass das ein Bug ist, wenn explizit vor dem \hline \\* verwendet wurde. Zumindest ist es unschön. Ein schneller Workaround ist mir auch nicht bekannt – außer die Anzahl der Linien stark zu reduzieren. Vertikale Linien sind ohnehin schlecht und horizontale braucht man normalerweise auch nicht zwischen allen Tabellenzeilen. Gerade, wenn die Zeilen so stark verbinden sind, dass sie nur zusammen umbrochen werden dürfen, sollte man sie in der Regel nicht durch eine Linie voneinander trennen:
\documentclass[]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{longtable}
\usepackage{blindtext}

\begin{document}

\section*{title}
\blindtext

\section*{title}
\blindtext

\section*{title}
\blindtext

\begin{longtable}{rl}
\hline
Links & Rechts \\*
Links & Rechts \\*
Zeile & Umbrechen \\
\hline
Links & Rechts \\*
Links & Rechts \\*
Zeile & Umbrechen \\
\hline
Links & Rechts \\*
Links & Rechts \\*
Links & Rechts \\*
\hline \nopagebreak
\end{longtable}

\end{document}
Eventuell wäre auch die Verwendung des Paket booktabs anzuraten.

\longtable Seitenumbruch verhindern

von en.ko » Mo 22. Dez 2014, 00:59

Hallo,

die von mir erstellte \longtable hat eigentlich nur an zwei Punkten die Möglichkeit die Tabelle "aufzutrennen". Allerdings wir die Tabelle gerade da abgetrennt wo die Seite aufhört. Habe schon mehrere Varianten versucht, aber nichts führte zum gewünschten Ergebnis.

Daher die Frage: wie kann ich in der \longtable kontrollieren wann die Tabelle auf der nächsten Seite fortgeführt wird?

Vielen Dank im Voraus für alle sinnvollen Antworten.
\documentclass[]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{longtable}
\usepackage{blindtext}

\begin{document}

\section*{title}
\blindtext

\section*{title}
\blindtext

\section*{title}
\blindtext

\begin{longtable}{|r|l|}

%\hline % Steht am Anfang der Tabelle
%Anfang-Links & Anfang-Rechts \\ 
%\hline \endfirsthead

%\hline % Steht ab der zweiten Seite am Anfang der fortgeführten Tabelle
%Oben-Links & Oben-Rechts \\ 
%\hline \endhead

%\hline % Steht bis zur vorletzten Seite am Ende der fortzuführenden Tabelle
%Unten-Links & Unten-Rechts \\ 
%\hline \endfoot

%\hline % Steht am Ende der Tabelle
%Ende-Links & Ende-Rechts \\ 
%\hline \endlastfoot

 % Tabellenwerte Anfang
\hline
Links & Rechts \\*
\hline \nopagebreak
Links & Rechts \\*
\hline \nopagebreak
Zeile & Umbrechen \\
\hline 
Links & Rechts \\*
\hline \nopagebreak
Links & Rechts \\*
\hline \nopagebreak
Zeile & Umbrechen \\
\hline 
Links & Rechts \\*
\hline \nopagebreak
Links & Rechts \\*
\hline \nopagebreak
Links & Rechts \\*
\hline \nopagebreak
 % Tabellenwerte Ende

\end{longtable}

\end{document}

Nach oben