如何清除 \cleardoublepage 产生的额外页面上的页眉

如何清除 \cleardoublepage 产生的额外页面上的页眉

考虑一下代码

\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

相关内容