Seitennummerierung

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


harpas
Forum-Newbie
Forum-Newbie
Beiträge: 1
Registriert: Sa 7. Aug 2021, 21:06

Seitennummerierung

Beitrag von harpas »

Hallo verehrte Tex Gemeinde,
bitte um Hilfe bei meiner Seitennummerierung. Ich möchte es in der form Seite 1 von x, bringe es einach nicht hin, zudem erhalte ich 3 Warnungen, warum?. Hier mein Beispiel.

Allen helfenden meinen besten Dank!

\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{lmodern}
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=2cm]{geometry}
\usepackage{blindtext}
\usepackage{scrlayer-scrpage}
\pagestyle{scrheadings}
\clearpairofpagestyles
\setlength{\parindent}{0pt} 
\ofoot*{Seite\pagemark}

\begin{document}
\title{%
  Gedanken\\
  \large zu ausgewählten Themen \\
    }
\author{Shutao Tang}
\maketitle
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\end{document}
Zuletzt geändert von Stefan Kottwitz am Sa 2. Okt 2021, 18:15, insgesamt 1-mal geändert.
Grund: Code markiert

Gast*in

Re: Seitennummerierung

Beitrag von Gast*in »

\documentclass[12pt]{article}
%\usepackage[utf8]{inputenc}% Überflüssig → ltnews
\usepackage[ngerman]{babel}% german wäre veraltete Rechtschreibung → babel-german
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{lmodern}
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=2cm,head=14.5pt]{geometry}% Ich habe einfach die Warnung gelesen und gemacht, was dort steht.
\usepackage{blindtext}
\usepackage{lastpage}% Das Paket findet man häufig bei ähnlichen Fragen.
\usepackage{scrlayer-scrpage}
%\pagestyle{scrheadings}% Überflüssig → scrguide.pdf
\clearpairofpagestyles
%\setlength{\parindent}{0pt}% Ganz schlecht → https://komascript.de/faq_parindent 
\ofoot*{\pagemark}
\renewcommand*{\pagemark}{{\usekomafont{pagenumber}{Seite \thepage{} von \pageref{LastPage}}}}
\begin{document}
\title{%
  Gedanken\par% Damit der Zeilenabstand stimmt.
  \large zu ausgewählten Themen\par% Damit der Zeilenabstand stimmt
    }
\author{Shutao Tang}
\maketitle
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\end{document}

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: Seitennummerierung

Beitrag von KOMA »

Das Paket lastpage braucht man dafür mit aktuellen LaTeX nicht:

\documentclass[12pt]{article}
%\usepackage[utf8]{inputenc}% Überflüssig → ltnews
\usepackage[ngerman]{babel}% german wäre veraltete Rechtschreibung → babel-german
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage{lmodern}
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=2cm,head=14.5pt]{geometry}% Ich habe einfach die Warnung gelesen und gemacht, was dort steht.
\usepackage{blindtext}
\usepackage{scrlayer-scrpage}
%\pagestyle{scrheadings}% Überflüssig → scrguide.pdf
\clearpairofpagestyles
%\setlength{\parindent}{0pt}% Ganz schlecht → https://sf.net/p/koma-script/wiki-de/HowTo_NoParIndent/
\ofoot*{\pagemark}
\renewcommand*{\pagemark}{{\usekomafont{pagenumber}{Seite \thepage{} von \PreviousTotalPages}}}
\begin{document}
\title{%
  Gedanken\par% Damit der Zeilenabstand stimmt.
  \large zu ausgewählten Themen\par% Damit der Zeilenabstand stimmt
    }
\author{Shutao Tang}
\maketitle
\section{Test}\label{sec:test}% Um den Online-Compiler dazu zu bringen, min. zwei LaTeX-Läufe durchzuführen.
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\blindtext
\end{document}

Überhaupt hat das Paket lastpage ein paar Schwächen, die dazu führen können, dass es bezüglich der Bestimmung der letzten Seite daneben liegt oder sogar andere Pakete stört. Zwar habe ich das bereits vor Jahren gemeldet, aber wirklich verbessert wurde es nicht. Dabei wäre es seit LaTeX 2020/10/01 sogar ganz einfach, für das Paket entweder auf \PreviousTotalPages zurück zu greifen oder für das Schreiben in die aux-Datei den Hook enddocument/afterlastpage zu nutzen (da wäre dann der page-Zähler um eins zu groß). Bei Dokumenten, bei denen der Nummerierungsstil für die Seiten mehrfach wechselt, ist eine solche Angabe ohnehin etwas kritisch. Aber auch das könnte man natürlich lösen.


Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Re: Seitennummerierung

Beitrag von u_fischer »

KOMA hat geschrieben:
Sa 2. Okt 2021, 20:06

Überhaupt hat das Paket lastpage ein paar Schwächen, die dazu führen können, dass es bezüglich der Bestimmung der letzten Seite daneben liegt oder sogar andere Pakete stört. Zwar habe ich das bereits vor Jahren gemeldet, aber wirklich verbessert wurde es nicht. Dabei wäre es seit LaTeX 2020/10/01 sogar ganz einfach, für das Paket entweder auf \PreviousTotalPages zurück zu greifen oder für das Schreiben in die aux-Datei den Hook enddocument/afterlastpage zu nutzen (da wäre dann der page-Zähler um eins zu groß).

\PreviousTotalPages gibt die absolute Seitenzahl zurück. Das ist nicht unbedingt dasselbe wie die Seitenzahl der letzten Seite, wenn z.B. ein Frontmatter oder eine Titelseite im Dokument ist und daher oft nicht, was wirklich gewünscht ist.

Den Hook enddocument/afterlastpage kann man nicht verwenden, um einfach ein Label zu schreiben, man müsste es dann explizit machen. Der shipout/lastpage hook funktioniert und ist einfacher, braucht aber (noch?) eine dritte Kompilation:

\documentclass{article}
\AddToHook{enddocument/afterlastpage}{\label{NewLastPageA}}
\AddToHook{shipout/lastpage}{\label{NewLastPageB}}
\begin{document}
abc

\pageref{NewLastPageA} --
\pageref{NewLastPageB}

\end{document}

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: Seitennummerierung

Beitrag von KOMA »

u_fischer hat geschrieben:
So 3. Okt 2021, 12:46

\PreviousTotalPages gibt die absolute Seitenzahl zurück. Das ist nicht unbedingt dasselbe wie die Seitenzahl der letzten Seite, wenn z.B. ein Frontmatter oder eine Titelseite im Dokument ist und daher oft nicht, was wirklich gewünscht ist.

Das ist schon klar. Wenn man unterschiedliche Seitennummerierungen im Dokument verwendet, finde ich persönlich eine Nummerierung der Art "n vom m" aber ohnehin albern.

u_fischer hat geschrieben:
So 3. Okt 2021, 12:46

Den Hook enddocument/afterlastpage kann man nicht verwenden, um einfach ein Label zu schreiben

Für ein Label nicht, aber für etwas in der Art \immediate\write\@mainaux{\string\gdef\string\LastPage{\thepage}} (nachdem, man den Page-Zähler vorher um eins verringert hat).

Es führen eben viele Wege nach Rom und fast alle sind besser, als die Verwendung von \AtEndDocument einschl. darin enthaltende \clearpage wie bei lastpage.


Antworten