
下面的程式碼排版了一個 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}