Tentando fazer expressões condicionais que inspecionem a contagem total de páginas do documento (vejaessa questão), encontrei esta solução usando ifthen
o pacote:
\documentclass{article}
\usepackage{lipsum}
\usepackage{ifthen}
\usepackage{lastpage}
\begin{document}
\ifthenelse{\pageref{LastPage}>1}{\pagestyle{plain}}{\pagestyle{empty}}
\lipsum[2-3]
\end{document}
Eu gostaria de tentar usar etoolbox
em vez de ifthen
porque parece que agora é um pacote mais comumente usado. Minha seguinte tentativa não funciona:
\documentclass{article}
\usepackage{lipsum}
\usepackage{etoolbox}
\usepackage{lastpage}
\begin{document}
\ifnumcomp{\pageref{LastPage}}{>}{1}{\pagestyle{plain}}{\pagestyle{empty}}
\lipsum[2-13]
\end{document}
Então, como posso fazer isso cometoolbox
Responder1
O principal problema é que \pageref{LastPage}
não pode ser usado no argumento de \ifthenelse
, nem nas etoolbox
funções, porque só serve paraimpressãoa referência da página.
É preciso usar uma abordagem diferente, com o pacote mais 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}
Em vez da função \ifnum
correspondente etoolbox
pode ser usada
\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
No entanto, isso ainda requer \makeatletter
e \makeatother
e \AtBeginDocument
como o código acima, porque temos que garantir que o código seja executadodepoiso .aux
arquivo foi lido.
Remover o comentário das linhas %
mostrará o número da página em ambas as páginas; como é, nenhum número de página será impresso.