Ich erzeuge mit Komascript und pdfLaTeX die PDF-Versionen für ein Russisch-Deutsches Wörterbuch.
Die Daten werden aus einer PostgreSQL-Datenbank mittels Perlskript ausgelesen und für LaTeX formatiert.
Nun muss auf jeder Seite im \ihead{} das erste Lemma (Stichwort) und im \ohead{} das letzte Lemma der Seite stehen.
Das letzte Lemma zu setzen ist nicht das Problem:
\newcommand\lemma[1]{\textbf{#1}\ohead{#1}}
sorgt auf "Brute-Force-Weise" dafür.
Welche Möglichkeit gibt es dies auch für das erste Lemma zu erreichen? Handarbeit ist ja nicht opportun.
Als Perl-Hacker würde ich ja die Lemmata einfach auf ein Array packen und \meinLemmaArray[0] als \ihead{} setzen. Gibt es eine Möglichkeit dies zu tun? Oder andere Wege? Die Lemmata als "blindes" Kapitel formatieren und \headmark verwenden, so dass das erste Lemma gesetzt wird?
Besser nicht so
So, wie Du das machst, kann Dir leicht die asynchrone Ausgaberoutine von LaTeX einen Streich spielen. Wenn nämlich Dein
\lemma
ausgeführt wird und anschließend LaTeX entscheidet, dass die dadurch erzeugte Ausgabe auf die nächste Seite muss, dann wird das äußere Kopfelement eine Seite zu früh geändert.Damit solche Probleme gar nicht erst entstehen, kennt TeX den mark-Mechanismus. Unter LaTeX steuert man den mit
\markboth
und\markright
und greift auf die Marken dann mit\rightmark
und\leftmark
zu. LaTeX verwendet das dann auch selbst für die Kolumnentitel. Bei Verwendung von scrpage2 gibt es außerdem auch noch\markleft
und\headmark
, wobei letzteres je nach Seite\leftmark
oder\rightmark
entspricht.