\ifthenelse を「ifthen」から「etoolbox」に翻訳するにはどうすればいいですか?

\ifthenelse を「ifthen」から「etoolbox」に翻訳するにはどうすればいいですか?

文書の総ページ数を検査する条件式を作成しようとしています(この質問)、パッケージを使用してこの解決策を見つけましたifthen:

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

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

\lipsum[2-3]

\end{document}

のほうが現在ではより一般的に使用されているパッケージのように見えるので、 のetoolbox代わりにを使用したいと思います。次の試みは機能しません。ifthen

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

\begin{document}

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

\lipsum[2-13]

\end{document}

それで、どうすればetoolbox

答え1

主な問題は、は の引数や関数では\pageref{LastPage}使えないということです。なぜなら、 は にしか使えないからです。\ifthenelseetoolbox印刷ページ参照。

より安全なパッケージを使用した別のアプローチを使用する必要があります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}

\ifnum対応する関数の代わりにetoolbox使用できる

\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

しかし、コードが実行されることを保証する必要があるため、上記のコードと同様に\makeatletter\makeatotherとが必要です。\AtBeginDocumentファイル.auxが読み込まれました。

行のコメントを解除すると、%両方のページにページ番号が表示されます。このままではページ番号は印刷されません。

関連情報