
In Dokumenten des Deutschen Bundestages finden sich Viertelseitenzahlen (z.B. Seite 9686 D für das vierte Viertel der Seite 9686,(Beispiel)). Wie erstelle ich eine solche Nummerierung in LaTeX und integriere sie in das Inhaltsverzeichnis?
Antwort1
Das ist ein sehr interessantes Problem. Ich habe versucht, es in meinem bevorzugten Makropaket, also einfachem TeX, zu lösen. Sie können sich davon inspirieren lassen und Sie (oder jemand anderes) können versuchen, diese Ideen in LaTeX neu zu implementieren.
Wir müssen die \output
Routine einrichten, um das angegebene Seitendesign zu erhalten. Ich habe das nicht getan (der Einfachheit halber und weil reines TeX nicht das gewünschte Makropaket ist). Ich habe nur eine Seite „manuell“ mit definierten \dopage
Makros für Experimente eingerichtet. Aber die Grundprinzipien werden hier gezeigt.
\input opmac
\def\lorem{Lorem ipsum dolor sit amet, consectetuer
adipiscing elit. Ut purus elit, vestibulum ut, placerat ac,
adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu
libero, nonummy eget, consectetuer id, vulputate a, magna. Donec
vehicula augue eu neque. Pellentesque habitant morbi tristique
senectus et netus et malesuada fames ac turpis egestas. Mauris ut
leo.}
\splittopskip=12pt
\long\def\dopage#1{%
\setbox0=\vbox{\hsize=7cm \emergencystretch=2em \penalty0
#1\par\nobreak\vfil\penalty0}
\setbox1=\vsplit0 to0pt
\hbox{\vbox to240pt{\hbox{(A)}\vfil\hbox{(B)}\vfil}\kern5pt
\vbox{\setpartpage{A}%
\setbox1=\vsplit0 to 120pt
\edef\tmp{\the\dp1}\box1 \kern-\tmp
\setpartpage{B}%
\vsplit0 to120pt}%
\kern5pt\vrule\kern5pt
\vbox{\setpartpage{C}%
\setbox1=\vsplit0 to 120pt
\edef\tmp{\the\dp1}\box1 \kern-\tmp
\setpartpage{D}%
\vsplit0 to120pt}%
\kern5pt\vbox to240pt{\hbox{(C)}\vfil\hbox{(D)}\vfil}}
}
\def\setpartpage#1{\wref\addto{\noexpand\toclist{\def\noexpand\partpage{#1}}}}
\def\pglink#1{#1 \partpage}
\maketoc
\vskip1cm
\dopage{
\sec First item
\lorem
\sec Second item
\lorem \par \lorem
\sec Third item
\lorem
}
\bye
Das Ergebnis ist:
Erklärung: Wir müssen \vsplit
den Seiteninhalt in vier Teile aufteilen, die ersten beiden Teile bilden die erste Spalte und die zweiten beiden Teile die zweite Spalte. Dann müssen wir \write
in die REF-Datei (oder AUX- oder TOC-Datei, wenn LaTeX verwendet wird) die Informationen über den Teil der Seite vor jedem Teil einfügen. Dies wird per \setpartpage
Makro erledigt. Beispielsweise haben wir mit OPmac den folgenden Inhalt in der REF-Datei:
%% OPmac - REF file
\Xpage{1}
\addto\toclist {\def \partpage {A}}
\Xtoc{1}{\rm }{1}{First item }{1}
\addto\toclist {\def \partpage {B}}
\Xtoc{1}{\rm }{2}{Second item }{1}
\addto\toclist {\def \partpage {C}}
\addto\toclist {\def \partpage {D}}
\Xtoc{1}{\rm }{3}{Third item }{1}
Dies bedeutet, dass \toclist
nach dem Lesen der REF-Datei Folgendes eingeschlossen wird:
\def\partpage {A}
\tocline{1}{\rm}{1}{First item }{1} % {level}{font}{sec number}{text}{page}
\def\partpage {B}
\tocline{1}{\rm}{2}{Second item }{1}
\def\partpage {C}
\def\partpage {D}
\tocline{1}{\rm}{3}{Third item }{1}
Jetzt müssen wir nur noch neu definieren \tocline
, damit nicht nur
#5
(die Seitennummer), sondern \partpage
auch die gedruckt werden. Ich habe das gemacht, indem ich neu definiert habe
\pglink
, was in Tocline zum Drucken der Seitenzahl verwendet wird. Das ist nicht sehr konzeptionell, weil die \hyperlinks
hier kaputt sind, aber wir verwenden das nur als experimentellen Code.