Bereits in der Voreinstellung setzen die KOMA-Script-Klassen die Seitenzahl im Fuß. Bei einseitigen Dokumenten geschieht dies in der Mitte. Um vor und hinter der Seitenzahl jeweils einen vertikalen Strich anzubringen, der bis an die Unterkante der Seite reicht, genügt es tatsächlich \pagemark umzudefinieren. Dazu müsste vor und hinter der eigentlichen Seitenzahl \thepage eine entsprechende \rule-Anweisung ergänzt werden.
Das erste Problem dabei ist die Frage, wie lang diese Linie sein soll und wie weit sie unter die Grundlinie ragen muss (sie soll ja nicht auf der Grundlinie stehen). Es gibt keine vordefinierte Länge für den unteren Rand der Seite. Allerdings kann diese berechnet werden: \paperheight-(1in+\topmargin+\headheight+\headsep+\textheight+\footskip) wäre die Höhe von der Papierunterkante bis zur Grundlinie des Fußes. Es wird also von der Papierhöhe alles abgezogen, was über der Grundlinie des Fußes steht. Das ergäbe bereits die gewünschte Verschiebung der Linie unter die Grundlinie. Dazu kommt bei der Länge der Linie dann noch der Teil, der auf der Grundlinie stehen soll. Das wäre beispielsweise \ht\strutbox also die Höhe einer normalen Zeile (zum Vergleich: \normabaselineskip wäre die Gesamthöhe, also Höhe + Tiefe einer normalen Zeile und entspricht damit \ht\strutbox+\dp\strutbox).
Mit diesen Überlegungen ergibt sich beispielsweise:
\documentclass{scrreprt}
\usepackage{blindtext}
\renewcommand*{\pagemark}{%
\rule[-\dimeval{\paperheight-(1in+\topmargin+\headheight+\headsep+\textheight+\footskip)}]
{1pt}
{\dimeval{\paperheight-(1in+\topmargin+\headheight+\headsep+\textheight+\footskip)+\ht\strutbox}}%
\nobreakspace
{\usekomafont{pagenumber}{\thepage}}%
\nobreakspace
\rule[-\dimeval{\paperheight-(1in+\topmargin+\headheight+\headsep+\textheight+\footskip)}]
{1pt}
{\dimeval{\paperheight-(1in+\topmargin+\headheight+\headsep+\textheight+\footskip)+\ht\strutbox}}%
}
\begin{document}
\blinddocument
\Blindtext
\end{document}
Wie zu sehen ist, wurde die Linie außerdem noch mit \nobreakspace um die Breite eines Wortabstands von der Seitenzahl abgetrennt. Hier wären auch andere Angaben wie \,, \enskip, \quad oder ein konkreter Abstand mit \hspace möglich.
Statt der Höhe einer Zeile zu verwenden, kann auch die Höhe des Fußes verwendet werden. KOMA-Script hat für die Gesamthöhe die Länge \footheight, die außerdem per Option eingestellt werden kann. Davon ziehen wir die Tiefe einer normalen Zeile \dp\strutbox ab. Außerdem ist es nicht besonders schön, das Riesenkonstrukt für die Linie zweimal anzugeben. Also definieren wir dafür auch noch einen einen Befehl:
\documentclass{scrreprt}
\usepackage{blindtext}
\newcommand*{\pagenumberseparatorline}{%
\rule[-\dimeval{\paperheight-(1in+\topmargin+\headheight+\headsep+\textheight+\footskip)}]
{1pt}
{\dimeval{\paperheight-(1in+\topmargin+\headheight+\headsep+\textheight+\footskip)+\footheight-\dp\strutbox}}%
}
\renewcommand*{\pagemark}{%
\pagenumberseparatorline\nobreakspace
{\usekomafont{pagenumber}{\thepage}}%
\nobreakspace\pagenumberseparatorline
}
\begin{document}
\blinddocument
\Blindtext
\end{document}
Bei doppelseitigen Dokumenten steht die Seitenzahl dagegen außen im Fuß. Natürlich könnten wir dort dasselbe Konstrukt verwenden. Allerdings sieht das sofort nicht mehr gut aus. Besser ist, wenn dort die Linie nur auf der Innenseite der Seitenzahl steht, aber nicht auf der Seite zum äußeren Rand hin. Um dazu zu erreichen, muss in der Definition von \pagemark abgefragt werden, ob eine linke (in LaTeX-Terminologie gerade) oder eine rechten (in LaTeX-Terminologie ungerade) Seite ausgegeben wird, um dann entweder die eine oder die andere Linie (einschließlich Abstand) zu setzen:
\documentclass{scrbook}
\usepackage{blindtext}
\newcommand*{\pagenumberseparatorline}{%
\rule[-\dimeval{\paperheight-(1in+\topmargin+\headheight+\headsep+\textheight+\footskip)}]
{1pt}
{\dimeval{\paperheight-(1in+\topmargin+\headheight+\headsep+\textheight+\footskip)+\footheight-\dp\strutbox}}%
}
\renewcommand*{\pagemark}{%
\ifodd\value{page}\pagenumberseparatorline\nobreakspace\fi
{\usekomafont{pagenumber}{\thepage}}%
\ifodd\value{page}\else\nobreakspace\pagenumberseparatorline\fi
}
\begin{document}
\blinddocument
\Blindtext
\end{document}
Mit dem TeX-Primitiv \ifodd wird hier getestet, ob der Wert des Zählers page, \value{page}, ungerade ist. Innerhalb des Textbereichs sollte niemals der Wert dieses Zählers direkt verwendet werden. Stattdessen wäre dort beispielsweise \Ifthispageodd zu verwenden. Im Kopf oder Fuß ist aber nicht zu befürchten, dass der Text auf eine andere Seite umbrochen wird. Daher ist der Zähler hier zuverlässig.
Keinesfalls darf an dieser Stelle \thepage für den Test verwendet werden. Diese Anweisung gibt die Darstellung des Werts eines Zählers aus. Das können auch römische Zahlen oder Buchstaben oder sogar beispielsweise aus Kapitelnummer und Seitennummer zusammengesetzte Zeichenfolgen sein. Auch die Angabe von \arabic{page} wäre genau genommen nicht korrekt. Auch das ist eine Darstellung und kein Zählerwert.
Bei genauerer Betrachtung des Ergebnisses kommt sehr schnell der Wunsch auf, die Seitenzahl zusätzlich in den äußeren Rand zu verschieben. In der Regel soll dann die Zahl selbst quasi unter der Randnotizspalte stehen und die Linie im Zwischenraum zum Text. Dafür müssen wir etwas tiefer in die Trickkiste greifen. Aber mit einer \makebox der Breite 0 und passender Ausrichtungsoption kann Material problemlos rechts oder links neben die aktuelle Position verschoben werden.
\documentclass{scrbook}
\usepackage{blindtext}
\newcommand*{\pagenumberseparatorline}{%
\rule[-\dimeval{\paperheight-(1in+\topmargin+\headheight+\headsep+\textheight+\footskip)}]
{1pt}
{\dimeval{\paperheight-(1in+\topmargin+\headheight+\headsep+\textheight+\footskip)+\footheight-\dp\strutbox}}%
}
\renewcommand*{\pagemark}{%
\ifodd\value{page}%
\makebox[0pt][l]{%
\makebox[\marginparsep][r]{\pagenumberseparatorline\nobreakspace}%
{\usekomafont{pagenumber}{\thepage}}%
}%
\else
\makebox[0pt][r]{%
{\usekomafont{pagenumber}{\thepage}}%
\makebox[\marginparsep][l]{\nobreakspace\pagenumberseparatorline}%
}%
\fi
}
\begin{document}
\blinddocument
\Blindtext
\end{document}
Eine alternative Methode, ohne Tests auf gerade oder ungerade Seite und ohne Umdefinierung von \pagemark stellt die Verwendung von Paket scrlayer-scrpage dar. Dabei können die Anweisungen \lefoot und \rofoot verwendet werden, um auf linken und rechten Seiten unterschiedliche Ausgaben zu tätigen. Die Verschiebung in den äußeren Rand kann dabei wie oben erfolgen. Allerdings ergibt sich mit dem naiven Ansatz:
\documentclass{scrbook}
\usepackage[automark]{scrlayer-scrpage}
\usepackage{blindtext}
\newcommand*{\pagenumberseparatorline}{%
\rule[-\dimeval{\paperheight-(1in+\topmargin+\headheight+\headsep+\textheight+\footskip)}]
{1pt}
{\dimeval{\paperheight-(1in+\topmargin+\headheight+\headsep+\textheight+\footskip)+\footheight-\dp\strutbox}}%
}
\lefoot*{%
\makebox[0pt][r]{%
\pagemark
\makebox[\marginparsep][l]{\nobreakspace\pagenumberseparatorline}%
}%
}
\rofoot*{%
\makebox[0pt][l]{%
\makebox[\marginparsep][r]{\pagenumberseparatorline\nobreakspace}%
\pagemark
}%
}
\begin{document}
\blinddocument
\Blindtext
\end{document}
das Problem, dass die Seitenzahl ab der zweiten Seite am unteren Rand klebt. Ursache dafür ist die Warnung:
Package scrlayer-scrpage Warning: \footheight to low.
(scrlayer-scrpage) At least 130.06195pt needed,
(scrlayer-scrpage) but only 17.0pt found.
(scrlayer-scrpage) I'll enlarge \footheight, for further
(scrlayer-scrpage) processing, but you should do this yourself,
(scrlayer-scrpage) e.g., setting typearea's option
(scrlayer-scrpage) `footheight=130.06195pt'.
(scrlayer-scrpage) I'll also increase \footskip on input line 22.
Da die Linie sehr tief reicht, geht scrlayer-scrpage fälschlich davon aus, dass der Fuß insgesamt mehr Platz benötigt und vergrößert ihn entsprechend. Tatsächlich soll die Linie aber aus dem eigentlichen Fuß nach unten hinaus ragen. Statt also dem Rat zu folgen, erklären wir besser, dass die eigentliche Tiefe keine Rolle spielt. Die Höhe dürfen wir jedoch nicht komplett ignorieren, weil sonst die vertikale Ausrichtung der Linie nicht mehr stimmt. Das ist mit Hilfe der optionalen Argumente von \raisebox leicht realisierbar:
\documentclass{scrbook}
\usepackage[automark]{scrlayer-scrpage}
\usepackage{blindtext}
\newcommand*{\pagenumberseparatorline}{%
\raisebox{0pt}[\dimeval{\footheight-\dp\strutbox}][\dp\strutbox]{\rule[-\dimeval{\paperheight-(1in+\topmargin+\headheight+\headsep+\textheight+\footskip)}]
{1pt}
{\dimeval{\paperheight-(1in+\topmargin+\headheight+\headsep+\textheight+\footskip)+\footheight-\dp\strutbox}}}%
}
\lefoot*{%
\makebox[0pt][r]{%
\pagemark
\makebox[\marginparsep][l]{\nobreakspace\pagenumberseparatorline}%
}%
}
\rofoot*{%
\makebox[0pt][l]{%
\makebox[\marginparsep][r]{\pagenumberseparatorline\nobreakspace}%
\pagemark
}%
}
\begin{document}
\blinddocument
\Blindtext
\end{document}
Hier sehen wir den Vorteil, die Linie als eigenständigen Befehl zu definieren. So musste nur deren Definition um die \raisebox ergänzt werden. Da wir keine (weitere) vertikale Verschiebung der Linie wollen, ist das erste Argument 0 pt. Das erste optionale Argument gibt die resultierende Höhe an. Für die Tiefe geben wir an Stelle von 0pt die Tiefe einer Zeile \dp\strutbox an. Damit ist die Tiefe der Linie für TeX die Tiefe einer normalen Zeile. Sie hat so keinen Einfluss mehr auf die Ermittlung der Gesamthöhe des Fußes durch scrlayer-scrpage. Wir hätten aber auch 0pt angeben können, so dass die Tiefe gar keine Rolle mehr spielt.
Alternativ wäre die automatische Korrektur durch scrlayer-scrpage übrigens auch generell per Option abschaltbar gewesen. In der Regel ist es jedoch besser, stattdessen den Einfluss von einzelnen Elementen gezielt auszuschalten.
Durch Verwendung der Sternformen \lefoot* und \rofoot* wurde sichergestellt, dass die veränderte Ausgabe der Seitenzahl auch auf Kapitelanfangsseiten verwendet wird. Diese werden mit dem plain-Seitenstil plain.scrheadings erstellt. Ohne den Stern würde die geänderte Ausgabe nur auf den übrigen Seiten mit dem Seitenstil headings verwendet werden.
Es sei an dieser Stelle noch darauf hingewiesen, dass im Buchdruck Material, das bis an den Seitenrand heranreicht, immer etwas über den Seitenrand hinaus gesetzt werden sollte. Anderenfalls kann es beim Buchdruck durch minimale Verschiebungen zu hässlichen weißen Rändern kommen. Daher sollten die Linie min. 3–6 mm oder 0,1–0,3 in verlängert und weiter nach unten verschoben werden. In der Regel stört es nicht, hier etwas großzügiger zu sein.