Die KOMA-Script-Klassen setzen die Seitenzahl normalerweise im Fuß. In einem eigenen Beitrag wurde bereits erklärt, wie die Seitenzahl im Kopf statt im Fuß ausgegeben wird. Soll nun zusätzlich ein vertikaler Strich zwischen der restlichen Kopfzeile und der Seitenzahl eingefügt werden, so ist wiederum ein Seitenstil-Paket wie scrlayer-scrpage notwendig.
Einen vertikalen Strich der Dicke 1 pt, der die Höhe und Tiefe einer Zeile hat, kann beispielsweise mit
\rule[-\dp\strutbox]{1pt}{\normalbaselineskip}
erzeugt werden. Dabei hat die Linie die gewünschte Breite (= Dicke) von 1 pt. Die Gesamthöhe beträgt \normalbaselineskip, entspricht also dem normalen Grundlinienabstand. Normalerweise würde die gesamte Linie über der Grundlinie ausgegeben werden. Sie soll aber um die normale Tiefe einer Zeile unter diese ragen. Daher erfolgt mit dem optionalen Argument eine entsprechende vertikale Verschiebung nach unten.
Bei einem einseitigen Dokument kann diese Angabe vor der Ausgabe der Seitenzahl, \pagemark, in den Kopf eingefügt werden. In der Regel soll noch ein gewisser Abstand zwischen die Linie und die Seitenzahl, beispielsweise \, (verminderter Zwischenraum), \nobreakspace (nicht umbrechbares Leerzeichen) oder \enskip (Halbgeviertabstand, also 0,5 em).
Eine mögliche Lösung für ein einseitiges Dokument wäre damit:
\documentclass{scrreprt}
\usepackage[automark]{scrlayer-scrpage}
\usepackage{blindtext}
\clearpairofpagestyles
\ihead{\headmark}
\ohead{\rule[-\dp\strutbox]{1pt}{\normalbaselineskip}\nobreakspace\pagemark}
\begin{document}
\blinddocument
\end{document}
Hier wurde ein etwas anderer Weg, als im oben verlinkten Beitrag gewählt, um die Seitenzahl in den Kopf zu verschieben. Zunächst wurden mit \clearpairofpagestyles alle Felder in den Seitenstilen scrheadings und plain.scrheadings gelöscht. Dann wurde mit \ihead das innere Kopfelement von scrheadings mit dem Kolumnentitel, \headmark, belegt. Bei einem einseitigen Dokument entspricht \ihead der Anweisung \lohead, setzt also das linke ungerade Element. Zum Schluss wurden mit \ohead Trennstrich, Abstand und Seitenzahl in das äußere Element von scrheadings gebracht. Die Verwendung von \ohead ist bei einseitigen Dokumenten gleichbedeutend mit \rohead, setzt also das rechte ungerade Elemente. Warum auf die Seitenzahl bei plain.scrheadings verzichtet wurde, ist im oben verlinkten Beitrag erklärt. Soll sie auf der Kapitelanfangsseite dennoch erscheinen, wird einfach die Sternform \ohead* verwendet.
Bei einem doppelseitigen Dokument ist die Sache schon etwas schwieriger. Hier muss der Strich auf rechten (in der LaTeX-Terminologie ungeraden) Seiten wie bei einseitigen Dokumenten vor der Seitenzahl stehen. Bei linken (in der LaTeX-Terminologie geraden) Seiten gehört der Strich jedoch hinter die Seitenzahl. scrlayer-scrpage bietet für diesen Zweck mit \rohead und \lehead die notwendige Unterscheidungsmöglichkeit:
\documentclass{scrbook}
\usepackage[automark]{scrlayer-scrpage}
\usepackage{blindtext}
\clearpairofpagestyles
\ihead{\headmark}
\rohead{\rule[-\dp\strutbox]{1pt}{\normalbaselineskip}\nobreakspace\pagemark}
\lehead{\pagemark\nobreakspace\rule[-\dp\strutbox]{1pt}{\normalbaselineskip}}
\begin{document}
\blinddocument
\end{document}
Bei genauer Betrachtung des Beispiels kommt vielleicht der Wunsch auf, die Seitenzahl nicht mehr innerhalb der normalen Kopfzeile, sondern quasi über der Randnotizspalte zu platzieren. Die vertikale Linie und der Abstand sollte dabei innerhalb des Abstandes zwischen Textbereich und Randnotizspalte platziert werden. Dazu gibt es zwei grundsätzliche Vorgehensweisen. Zum einen kann über Option headwidth=textwithmarginpar die Kopfzeile über die Randnotizspalte hinaus verlängert werden und dann mit einer Box der Breite \marginparwidth die Seitenzahl selbst innen bündig zur Randnotizspalte gesetzt werden:
\documentclass{scrbook}
\usepackage[automark,headwidth=textwithmarginpar]{scrlayer-scrpage}
\usepackage{blindtext}
\usepackage{showframe}
\clearpairofpagestyles
\ihead{\headmark}
\rohead{%
\rule[-\dp\strutbox]{1pt}{\normalbaselineskip}\nobreakspace
\makebox[\marginparwidth][l]{\pagemark}%
}
\lehead{%
\makebox[\marginparwidth][r]{\pagemark}%
\nobreakspace\rule[-\dp\strutbox]{1pt}{\normalbaselineskip}%
}
\begin{document}
\blinddocument
\end{document}
Zum anderen könnte bei gleichbleibender Kopfbreite das komplette Konstrukt über eine Box der Breite 0 in den jeweiligen Rand verschoben werden:
\documentclass{scrbook}
\usepackage[automark]{scrlayer-scrpage}
\usepackage{blindtext}
\usepackage{showframe}
\clearpairofpagestyles
\ihead{\headmark}
\rohead{%
\makebox[0pt][l]{%
\makebox[\marginparsep][r]{%
\rule[-\dp\strutbox]{1pt}{\normalbaselineskip}\nobreakspace
}%
\makebox[\marginparwidth][l]{\pagemark}%
}%
}
\lehead{%
\makebox[0pt][r]{%
\makebox[\marginparwidth][r]{\pagemark}%
\makebox[\marginparsep][l]{%
\nobreakspace\rule[-\dp\strutbox]{1pt}{\normalbaselineskip}%
}%
}%
}
\begin{document}
\blinddocument
\end{document}
Bei beiden Beispielen wurde das Paket showframe eingefügt, um die unterschiedlichen Seitenbereiche mit Rahmen zu verdeutlichen.
Während die beiden Beispiele auf den ersten Blick keinen nennenswerte Unterschied erkennen lassen, wird ein solcher deutlich, wenn mit Option headsepline eine Trennlinie unter dem Kopf ausgegeben wird. Im ersten Fall erstreckt sich diese nun über den Textbereich und die komplette Randnotizspalte. Im zweiten Fall bleibt sie hingegen auf die Breite des Textbereichs beschränkt und erstreckt sich damit auch nicht unter dem vertikalen Strich und der Seitenzahl.
In einigen Fällen wird gewünscht, dass der vertikale Strich bis an die obere Kante der Seite verlängert wird. Die genaue Länge wäre dann 1in+\topmargin+\headheight. Wird diese bei \rule angegeben, so vergrößert scrlayer-scrpage aber automatisch die Kopfhöhe, weil durch die lange Linie eben auch eine größere Kopfhöhe resultiert. Dieser Automatismus kann in scrlayer-scrpage per Option abgeschaltet werden. Es kann aber auch mit einer zusätzlichen \raisebox-Anweisung einen weniger hohen Kopf vorgaukelt werden:
\documentclass{scrbook}
\usepackage[automark]{scrlayer-scrpage}
\usepackage{blindtext}
\usepackage{showframe}
\clearpairofpagestyles
\ihead{\headmark}
\rohead{%
\makebox[0pt][l]{%
\makebox[\marginparsep][r]{%
\raisebox{0pt}[\ht\strutbox][\dp\strutbox]{%
\rule[-\dp\strutbox]{1pt}{\dimeval{1in+\topmargin+\headheight}}%
}%
\nobreakspace
}%
\makebox[\marginparwidth][l]{\pagemark}%
}%
}
\lehead{%
\makebox[0pt][r]{%
\makebox[\marginparwidth][r]{\pagemark}%
\makebox[\marginparsep][l]{%
\nobreakspace
\raisebox{0pt}[\ht\strutbox][\dp\strutbox]{%
\rule[-\dp\strutbox]{1pt}{\dimeval{1in+\topmargin+\headheight}}%
}%
}%
}%
}
\begin{document}
\blinddocument
\end{document}
Um Berechnungen als Argument von \rule zu ermöglichen, wurde hier die LaTeX-Anweisung \dimeval verwendet. Über das erste Argument von \raisebox wurde mit 0 pt keine vertikale Verschiebung gefordert. Dafür wurde über die optionalen Argumente die Höhe und Tiefe mit \ht\strutbox und \dp\strutbox als die Höhe und Tiefe einer Standardzeile festgelegt. Hier wäre tatsächlich ebenfalls jeweils 0 pt möglich gewesen.
Zum letzten Beispiel wäre noch anzumerken, dass Material, das bis an den Rand heran reicht, immer etwas über den Rand hinaus ragen sollte. Insbesondere bei Buchprojekten ist nur dann sichergestellt, dass beim Druck durch minimale Verschiebungen kein weißer Rand entsteht. Es wird daher empfohlen die Linie um drei bis sechs Millimeter oder einfach ein bis drei Zehntel Inch zu verlängern.
Wiki (Deutsch): HowTo_PageHeadFoot
Wiki (Deutsch): HowTo_PaginationInHead