考虑一下代码
\documentclass[12pt]{book}
\usepackage{pgfpages}
\pgfpagesuselayout{2 on 1}
\usepackage{lipsum}
\begin{document}
\tableofcontents
\cleardoublepage % Force break to an odd-numbered page.
\newpage
\thispagestyle{empty}
\lipsum[1]
\addtocontents{toc}{TOC entry.}
\end{document}
产生 TOC 输出:
问题:我怎样才能删除所产生的额外页面上的页眉,\cleardoublepage
以便在目录页的末尾出现一个完全空白的页面?
谢谢。
答案1
查看的定义(通过在文档中的某处\cleardoublepage
添加并检查):\ShowCommand\cleardoublepage
.log
\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
\hbox{}\newpage\if@twocolumn\hbox{}\newpage\fi\fi\fi}
它按顺序执行以下操作:
- 发出
\clearpage
刷新所有待处理浮动指令,然后 - 检查您的文档是否设置为
twoside
模式(默认book
设置为模式);twoside
- 如果您处于
twoside
模式,它会检查当前页面(新页面)是奇数还是偶数(通过\ifodd\c@page
)。如果是,它什么也不做,因为\cleardoublepage
想要在奇数页上结束。但是,如果页面是偶数,它会设置一个空框(通过\hbox{}
- 这实际上只是看不见的东西),然后发出一个\newpage
以转到奇数页。 - 如果您也处于
twocolumn
模式,则会设置额外的不可见内容,因为\newpage
可能会将您刷新到第二列的顶部,而不是下一页。
- 如果您处于
因此,您可以根据自己的情况手动执行此过程:
% Mimic \cleardoublepage
\clearpage
\mbox{}% Set something invisible (\hbox{} would also work)
\thispagestyle{empty}
\clearpage
或者你可以\cleardoublepage
使用以下方式修补序言etoolbox
:
\usepackage{etoolbox}
\patchcmd{\cleardoublepage}% <cmd>
{\newpage}% <search>
{\thispagestyle{empty}\newpage}% <replace>
{}{}% <success><failure>
请注意,补丁将是全局的,除非您保存原始定义并根据需要恢复它,或者在\thispagestyle{empty}
第一个命令之前插入一个可调整的命令\newpage
。