Ich habe folgendes Beispiel:

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\documentclass{scrartcl}
\usepackage{scrlayer-scrpage}
\usepackage{lipsum}
\cfoot{Seite \thepage\ von \pageref{LastPage}}
\begin{document}
%\lipsum[1] % keine Seitennummerierung
\lipsum % Seitennummerierung
\label{LastPage}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Nun möchte ich, dass die Seitennummerierung nur dann gedruckt wird, wenn der Text auch mehr als eine Seite umfasst. Ich hab dies zunächst wie folgt probiert:

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\documentclass{scrartcl}
\usepackage{scrlayer-scrpage}
\usepackage{lipsum}
\usepackage{ifthen}
\ifthenelse{\pageref{LastPage}>1}%
{\cfoot{Seite \thepage\ von \pageref{LastPage}}}%
{\cfoot{}}
\begin{document}
%\lipsum[1] % keine Seitennummerierung
\lipsum % Seitennummerierung
\label{LastPage}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Dies funktioniert nicht, es wird nun grundsätzlich keine Seitennummerierung mehr gedruckt.

Wenn ich die if-Abfrage aber statt in die Präambel in den Body schreibe, dann klappt es:

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\documentclass{scrartcl}
\usepackage{scrlayer-scrpage}
\usepackage{lipsum}
\usepackage{ifthen}
\begin{document}
\ifthenelse{\pageref{LastPage}>1}%
{\cfoot{Seite \thepage\ von \pageref{LastPage}}}%
{\cfoot{}}
%\lipsum[1] % keine Seitennummerierung
\lipsum % Seitennummerierung
\label{LastPage}
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Kann mir jemand bitte erklären, woran dies liegt und ob es andere Probleme/Seiteneffekte geben kann, wenn man \cfoot u.ä. Befehle in den Body statt in die Präambel schreibt?

Gibt es andere (einfache) Alternativen für eine optionale Seitennummerierung?

gefragt 18 Jun '15, 17:10

tom75's gravatar image

tom75
2.2k277984
Akzeptiert-Rate: 57%

bearbeitet 18 Jun '15, 17:42

saputello's gravatar image

saputello
11.1k174365


\pageref arbeitet mit Labels. Labels werden zwischen den LaTeX-Läufen in der aux-Datei gespeichert. Die aux-Datei wird während \begin{document} geladen. Daher liefert \pageref erst nach \begin{document} tatsächlich ein Seiten-Label.

Allerdings ist nicht gesagt, dass \pageref tatsächlich eine Zahl liefert. Es könnte beispielsweise auch eine Box mit einer Zahl liefern. Es ist daher etwas riskant eine Zahle mit \pageref{LastPage} zu vergleichen. Mit Hilfe des Pakets refcount gibt es allerdings eine sichere Möglichkeit. Durch geringe Umformung der Logik, kann man außerdem die gesamte Logik in die Präambel verschieben, also eine saubere Trennung von Form und Inhalt durchführen:

Open in Online-Editor
Code, hier editierbar zum Übersetzen:
\documentclass{scrartcl}
\usepackage{scrlayer-scrpage}
\usepackage[ngerman]{babel}
\usepackage{refcount}
\usepackage{lipsum}
\usepackage{lastpage}
\cfoot{%
\ifnum\getpagerefnumber{LastPage}>1
Seite \thepage\ von \pageref{LastPage}%
\fi
}
\begin{document}
\lipsum[1] % keine Seitennummerierung
%\lipsum % Seitennummerierung
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Um noch die Nebenfrage zu beantworten: Es ist durchaus erlaubt \cfoot innerhalb des Dokuments zu verwenden.

Permanenter link

beantwortet 18 Jun '15, 17:31

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 18 Jun '15, 17:34

Vielen Dank, @saputello, für die Erklärung und den Alternativvorschlag!

(20 Jun '15, 13:12) tom75
Deine Antwort
[Vorschau ausblenden]

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Frage-Themen:

×33
×25
×14
×5

gestellte Frage: 18 Jun '15, 17:10

Frage wurde gesehen: 10,744 Mal

zuletzt geändert: 20 Jun '15, 13:12