
다음 코드는 12페이지 문서를 조판합니다. 텍스트는 다른 모든 페이지에만 나타나고 두 텍스트 페이지 사이에는 빈 페이지가 있습니다.
\documentclass{article}
\usepackage{atbegshi}
\usepackage{lipsum}
\makeatletter
\AtBeginShipout{%
\ifodd\c@page
\begingroup
\AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox
\global\AtBegShi@Discardedtrue
\mbox{}\thispagestyle{empty}\clearpage
\endgroup
\else
\fi%
}
\makeatother
\begin{document}
\lipsum[1-30]
\end{document}
이제 나는 텍스트가 포함된 페이지에 순차적으로 번호를 매기려고 합니다. 위의 코드에서 텍스트가 있는 페이지의 번호는 1,3,5,...이지만 1,2,3,...이기를 원합니다. 몇 번 시도했지만 그 중 어느 것도 원하는 결과를 얻지 못했습니다. 연속 번호를 어떻게 얻을 수 있나요?
아이디어는 이것을 그룹 내 텍스트 흐름의 동작을 변경할 수 있는 명령으로 래핑하는 것입니다. 호출되면 명령을 사용하면 다른 모든 페이지에서 텍스트가 조판되지만 텍스트가 있는 페이지의 연속 번호는 유지됩니다. ; 그룹이 끝나면 텍스트와 번호 매기기는 정상적인 동작으로 돌아가야 합니다.
답변1
이것은 나에게 효과적인 것 같습니다. 비결은 페이지 대신 배송 횟수에 대해 다른 카운터를 사용하는 것입니다.
\documentclass{article}
\usepackage{changepage}
\usepackage{etoolbox}
\usepackage{atbegshi}
\usepackage{lipsum}
\newcounter{mypage}
\makeatletter
\AtBeginShipoutInit{\setcounter{mypage}{0}}
\AtBeginShipout{
\ifnumodd{\value{mypage}}{
\AtBeginShipoutOriginalShipout\box\AtBeginShipoutBox
\addtocounter{page}{-1}
}{
\mbox{}\thispagestyle{empty}\clearpage
}
\addtocounter{mypage}{1}
}
\makeatother
\begin{document}
First page \pageref{test}
Last page \pageref{test2}
\label{test}
\lipsum[1-30]
\label{test2}
\end{document}