Ich bearbeite gerade eine Sammlung von Artikeln eines Wissenschaftlers. Dabei halte ich es für äußerst nützlich, wenn nicht sogar notwendig, Seitenumbrüche in der ersten Ausgabe von Artikeln anzugeben, damit Zitate bestimmter Passagen dieser Artikel in anderen, insbesondere älteren Texten, weiterhin gültig und praktikabel sind. Hier ist mein MWE-Beispiel dafür:
\documentclass{scrbook}
\usepackage{lipsum}
\usepackage{scrlayer-scrpage}
\ohead{\textbf{\pagemark}}
\ihead{\textit{\theoldpage}}
\ofoot{}
\pagestyle{scrheadings}
\newcounter{oldpage}
\setcounter{oldpage}{1}
\newcommand{\markoldpage}{
[mark]
\marginpar{\begin{center}\footnotesize\theoldpage\end{center}}
\stepcounter{oldpage}
}
\begin{document}
\chapter{Chapter}
\markoldpage{} This is the first oldpage. \markoldpage{} Now the second oldpage has begun.
\newpage
\lipsum \markoldpage{} \lipsum \markoldpage{}
\end{document}
Was ich erreicht habe, ist die Definition eines neuen Zählers oldpage
. Jedes Kapitel beginnt mit einem neuen Artikel. Daher setze ich den oldpage
-Zähler jedes Mal manuell, wenn ein neues Kapitel beginnt. Eine Art ›[Markierung]‹-Symbol zeigt einen Seitenumbruch im alten Text an. Die alte Seite wird dann auch in den Rändern angezeigt. Der oldpage
-Zähler wird dann im Kopf gesetzt, genau auf der gegenüberliegenden Seite der normalen Seitenzähler (wenn beispielsweise der Seitenzähler in einem Buch oben außen ist, ist der alte Seitenzähler oben innen). Ich habe dies erreicht, indem ich verwendet habe scrlayer-scrpage
.
Ich möchte, dass der Oldpage-Zähler kontextsensitiv ist, das heißt, dass er sich folgendermaßen verhalten soll:
- Wenn auf der neuen Seite auf eine alte Seite verwiesen wird, sollte der Oldpage-Zähler einfach die Nummer anzeigen (z. B. ›1‹).
- Wenn auf der neuen Seite auf zwei alte Seiten verwiesen wird, sollte der Altseitenzähler die Zahlen durch ein Leerzeichen und ein Komma getrennt anzeigen (z. B. ›1, 2‹).
- Wenn auf der neuen Seite auf drei oder mehr alte Seiten verwiesen wird, sollte der Altseitenzähler die erste und die letzte Zahl mit einem doppelten Bindestrich verbunden anzeigen (z. B. ›1--3‹).
Um das gewünschte Verhalten zu programmieren, muss man wohl mit Bedingungssätzen arbeiten, und diese Bedingungen benötigen wahrscheinlich Informationen darüber, wie viele Oldpage-Umbrüche es am Ende auf der Ausgabeseite geben wird. Meine Fragen sind daher:
- Wo kann man die Informationen bekommen und wie kann man darauf verweisen? Ich habe keine Ahnung und weiß nicht, wo ich mit der Suche anfangen soll.
Ich wäre äußerst dankbar, wenn mir jemand beim ersten Schritt helfen und mir dabei helfen könnte, den Code hierfür zu schreiben.
Antwort1
Das Markierungssystem von TeX bietet eine Möglichkeit, Werte zu verfolgen, die im Seitenkopf registriert werden sollten.
\documentclass{scrbook}
\usepackage{lipsum}
\usepackage{scrlayer-scrpage}
\ohead{\textbf{\pagemark}}
\def\lastoldpagemark{\topmarks\oldpagemark}
\ihead{\textit{\lastoldpagemark\ifnum\lastoldpagemark<\botmarks\oldpagemark--\botmarks\oldpagemark\fi
\xdef\lastoldpagemark{\botmarks\oldpagemark}}}
\ofoot{}
\pagestyle{scrheadings}
\newmarks\oldpagemark % etex marks not completely reliable in latex, but probably OK here
\newcounter{oldpage}
\setcounter{oldpage}{1}
\newcommand{\markoldpage}{%%%
[mark]%%%
\marks\oldpagemark{\theoldpage}\marginpar{\centering\footnotesize\theoldpage}%%%
\stepcounter{oldpage}%%%
}
\begin{document}
\chapter{Chapter}
\markoldpage{} This is the first oldpage. \markoldpage{} Now the second oldpage has begun.
\newpage
\lipsum \markoldpage{} \lipsum \markoldpage{}
\end{document}