\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을 읽었습니다.

줄의 주석 처리를 제거하면 %두 페이지 모두에 페이지 번호가 표시됩니다. 페이지 번호가 인쇄되지 않습니다.

관련 정보