문서의 총 페이지 수를 검사하는 조건식을 만들려고 합니다(참조이 질문), 패키지를 사용하여 이 솔루션을 찾았습니다 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
을 읽었습니다.
줄의 주석 처리를 제거하면 %
두 페이지 모두에 페이지 번호가 표시됩니다. 페이지 번호가 인쇄되지 않습니다.