Wie übersetzt man \ifthenelse von „ifthen“ in „etoolbox“?

Wie übersetzt man \ifthenelse von „ifthen“ in „etoolbox“?

Versuchen Sie, bedingte Ausdrücke zu erstellen, die die Gesamtseitenzahl des Dokuments überprüfen (siehediese Frage), habe ich diese Lösung mit ifthendem 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, etoolboxanstelle 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 \ifthenelsenoch in den etoolboxFunktionen 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 \ifnumder entsprechenden etoolboxFunktion 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 \makeatletterund \makeatotherund \AtBeginDocumentwie der obige Code, da wir sicherstellen müssen, dass der Code ausgeführt wirdnachdie .auxDatei wurde eingelesen.

Wenn Sie die Zeilen mit auskommentieren, %wird die Seitenzahl auf beiden Seiten angezeigt. Andernfalls wird keine Seitenzahl gedruckt.

verwandte Informationen