Versuchen Sie, bedingte Ausdrücke zu erstellen, die die Gesamtseitenzahl des Dokuments überprüfen (siehediese Frage), habe ich diese Lösung mit ifthen
dem Paket gefunden:
\documentclass{article}
\usepackage{lipsum}
\usepackage{ifthen}
\usepackage{lastpage}
\begin{document}
\ifthenelse{\pageref{LastPage}>1}{\pagestyle{plain}}{\pagestyle{empty}}
\lipsum[2-3]
\end{document}
Ich würde gerne versuchen, etoolbox
anstelle von zu verwenden ifthen
, da es jetzt so aussieht, als wäre es ein häufiger verwendetes Paket. Mein folgender Versuch funktioniert nicht:
\documentclass{article}
\usepackage{lipsum}
\usepackage{etoolbox}
\usepackage{lastpage}
\begin{document}
\ifnumcomp{\pageref{LastPage}}{>}{1}{\pagestyle{plain}}{\pagestyle{empty}}
\lipsum[2-13]
\end{document}
Wie kann ich das also machen mitetoolbox
Antwort1
Das Hauptproblem besteht darin, dass weder \pageref{LastPage}
im Argument von \ifthenelse
noch in den etoolbox
Funktionen verwendet werden kann, da es nur fürDruckendie Seitenreferenz.
Man muss einen anderen Ansatz verwenden, mit dem sichereren Paket zref-lastpage
.
\documentclass{article}
\usepackage{zref-lastpage}
\makeatletter
\AtBeginDocument{% this must be executed after the aux file has been input
\ifnum\zref@extractdefault{LastPage}{page}{0}>1
\pagestyle{plain}%
\else
\pagestyle{empty}%
\fi
}
\makeatother
\begin{document}
x
%\clearpage
%y
\end{document}
Anstelle \ifnum
der entsprechenden etoolbox
Funktion kann verwendet werden
\makeatletter
\AtBeginDocument{% this must be executed after the aux file has been input
\ifnumcomp{\zref@extractdefault{LastPage}{page}{0}}{>}{1}
{\pagestyle{plain}}
{\pagestyle{empty}}%
}
\makeatother
Dies erfordert jedoch immer noch \makeatletter
und \makeatother
und \AtBeginDocument
wie der obige Code, da wir sicherstellen müssen, dass der Code ausgeführt wirdnachdie .aux
Datei wurde eingelesen.
Wenn Sie die Zeilen mit auskommentieren, %
wird die Seitenzahl auf beiden Seiten angezeigt. Andernfalls wird keine Seitenzahl gedruckt.