Seitenumbruch in Druckvorlagen

Wir benutzen für die Positionstabellen in den Belegen generell die longtable Umgebung. Gerade wenn der Langtext länger wird kommt es immer wieder vor, daß auf dem ausgedruckten Beleg große leere Bereiche entstehen, v.A. auf der ersten Seite, so daß die Positionstabelle erst auf der zweiten Seite beginnt. Das sieht fast immer schlecht aus und erzeugt Unmut beim ästhetischen Belegersteller.

Dies liegt daran, daß LaTeX bei longtable nicht innerhalb einer Tabellenzeile umbrechen kann, und erst auf der zweiten Seite die Chance hat, die Position komplett unterzubringen. Wenn man nur eine Position hat kann man auch nicht durch manuelles Umsortieren der Positionen Abhilfe schaffen.

Bis zur Version 3.1 konnte man dies mit einem Trick umgehen, und zwar indem man \newline umdefinierte. Die Zeilenumbrüche aus der Langbeschreibung wurden in LaTeX nach \newline umgewandelt, und hierfür konnte man statt eines einfachen Zeilenumbruchs eine ganz neue Tabellenzeile generieren. Wenn sich z.B. die Langtextbeschreibung in der 3. Tabellenspalte befindet wie folgt:

\renewcommand{\newline}{ \\ & & }
\begin{longtable}{clp{10.2cm}crr}
...
\end{longtable}
\renewcommand{\newline}{\\ }

Dadurch kann LaTeX innerhalb des Langtextes nach Belieben die Seite umbrechen, da jede Langtextzeile einer Tabellenzeile entspricht. Das ist nicht wirklich elegant, funktioniert aber, solange in keine der anderen Spalten ein \newline vorkommt.

Mit dem neuen Langtexteditor wird der Langtext allerdings als HTML gespeichert, und statt einfacher Zeilenumbrüche wird nun alles in < pa r> Tags gesetzt.

In SL/Tempates/LaTeX.pm wird zudem das < /par > durch \n\n ersetzt, es gibt also kein \newline mehr und der Seitenumbruch funktioniert nicht mehr.

Um das alte Verhalten wiederherzustellen muß man dort das \n\n also durch ein \newline ersetzen.

One thought on “Seitenumbruch in Druckvorlagen

  1. Jan

    Ziemlich genau an dieser Stelle in LaTex.pm

    my %html_replace = (
    '< /p >' => "\\newline ",
    }

    Interessanterweise werden die < br /> noch mit newline ersetzt, allerdings ist es mir nicht gelungen diese mit dem HTML-Editor zu generieren.

Leave a Reply