不计算 twoside+openright 文档中的空白页

不计算 twoside+openright 文档中的空白页

我正在处理一份 300 页 (scr) 的文档report,最初设置为单面打印。我目前正在准备它的第二个版本,我想双面打印,当然要打开部分和章节right。除了页脚布局外,其内容和布局与 ›源‹ 文档相同(并且必须相同)。

所有这些都毫无麻烦,除了一件事:插入空白页以确保部分和章节仅从正面页面开始。TeX 本身会将这些页面视为非空白页面 - 但这当然会破坏两个文档页码之间的对应关系。

比较:

\documentclass[twoside=true,open=right,paper=A5]{scrreprt}
\usepackage{blindtext}
\begin{document}
\Blinddocument
\Blinddocument
\Blinddocument
\end{document} 

\documentclass[twoside=false,open=any,paper=A5]{scrreprt}
\usepackage{blindtext}
\begin{document}
\Blinddocument
\Blinddocument
\Blinddocument
\end{document} 

有没有一种优雅的方法可以将这些空白页从 ›官方‹ 编号中移除(即打印的编号,而不是 TeX 内部编号)?也许可以通过建立两个不同的页码序列?我当然可以想到一种方法,在page调用隐式 \cleardoublepage 时摆弄计数器,但我想这样做弊大于利。

我确实看到了问题:实际上,我想要的是质疑正面/背面和奇数/偶数之间的明确对应关系 - 我相信 TeX 更愿意保留这一点......

答案1

跟踪您扔出的空白页数量,并调整页面的打印形式,使底层计数器与实际页数保持一致。

\documentclass[twoside=true,open=right,paper=A5]{scrreprt}
\usepackage{blindtext}
\newcounter{blankpages}



\makeatletter

\def\cleardoubleoddstandardpage{%
\clearpage
\if@twoside \ifodd \c@page \else
 \stepcounter{blankpages}%
  \hbox {}\newpage \if@twocolumn \hbox {}\newpage \fi 
\fi \fi }
\makeatletter


\renewcommand\thepage{\the\numexpr\value{page}-\value{blankpages}\relax}
\begin{document}
\Blinddocument
\Blinddocument
\Blinddocument
\end{document} 

相关内容