¿Cómo traducir \ifthenelse de "ifthen" a "etoolbox"?

¿Cómo traducir \ifthenelse de "ifthen" a "etoolbox"?

Intentar hacer expresiones condicionales que inspeccionen el recuento total de páginas del documento (veresta pregunta), encontré esta solución usando ifthenel paquete:

\documentclass{article}
\usepackage{lipsum}
\usepackage{ifthen}
\usepackage{lastpage}
\begin{document}

\ifthenelse{\pageref{LastPage}>1}{\pagestyle{plain}}{\pagestyle{empty}}

\lipsum[2-3]

\end{document}

Me gustaría intentar usarlo etoolboxen lugar de ifthenporque parece que ahora es un paquete más usado. Mi siguiente intento no funciona:

\documentclass{article}
\usepackage{lipsum}
\usepackage{etoolbox}
\usepackage{lastpage}

\begin{document}

\ifnumcomp{\pageref{LastPage}}{>}{1}{\pagestyle{plain}}{\pagestyle{empty}}

\lipsum[2-13]

\end{document}

Entonces, ¿cómo puedo hacer esto conetoolbox

Respuesta1

El principal problema es que \pageref{LastPage}no se puede usar en el argumento de \ifthenelse, ni en las etoolboxfunciones, porque solo sirve paraimpresiónla referencia de la página.

Hay que utilizar un enfoque diferente, con el paquete más seguro 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}

En lugar de \ifnumla función correspondiente etoolboxse puede utilizar

\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

Sin embargo, esto aún requiere \makeatlettery \makeatotherle \AtBeginDocumentgusta el código anterior, porque tenemos que asegurarnos de que el código se ejecute.despuésel .auxarchivo ha sido leído.

Al descomentar las líneas con %se mostrará el número de página en ambas páginas; ya que no se imprimirá ningún número de página.

información relacionada