文書の総ページ数を検査する条件式を作成しようとしています(この質問)、パッケージを使用してこの解決策を見つけました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}
使えないということです。なぜなら、 は にしか使えないからです。\ifthenelse
etoolbox
印刷ページ参照。
より安全なパッケージを使用した別のアプローチを使用する必要があります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
が読み込まれました。
行のコメントを解除すると、%
両方のページにページ番号が表示されます。このままではページ番号は印刷されません。