清理空白页的底部

清理空白页的底部

可能重复:
如何删除章节之间的页眉和页脚?

使用下面的代码,您可以清除空白页的页脚。

\makeatletter
\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
\hbox{}
\vspace*{\fill}
\vspace{\fill}
\thispagestyle{empty}
\newpage
\if@twocolumn\hbox{}\newpage\fi\fi\fi}
\makeatother

是否有任何包或其他命令可以减少这个代码?

答案1

的定义中有一些不必要的空格和框线\cleardoublepage。这个稍微短一点:

\makeatletter
\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
  \null\thispagestyle{empty}\newpage\fi\fi}
\makeatother

但是,如果您知道文档的设置,则可以删除许多条件语句,因为它们添加了大部分代码。这样做的原因是该命令是为了适应一般的文档设置,而不是特定于一个实例。为此,如果您正在排版book使用该twoside选项的文件,您也可以使用

\makeatletter
\def\cleardoublepage{\clearpage\ifodd\c@page\else
  \null\thispagestyle{empty}\newpage\fi}
\makeatother

如果你不喜欢这个@符号(带有\makeatletter\makeatother),你也可以使用

\def\cleardoublepage{\clearpage\ifodd\value{page}\else
  \null\thispagestyle{empty}\newpage\fi}

答案2

来自 ams 文档类的此代码可以完美地覆盖旧版本 latex 中不合标准的版本:

\let\cleardouble@page\cleardoublepage
\AtBeginDocument{%
  \ifx\cleardouble@page\cleardoublepage
    \def\cleardoublepage{\clearpage{\pagestyle{empty}\cleardouble@page}}
  \fi
}

当然,在文档序言中您需要\makeatletter .... \makeatother

答案3

我在用着:

\let\origdoublepage\cleardoublepage
\newcommand{\clearemptydoublepage}{\clearpage{\pagestyle{empty}\origdoublepage}}
\let\cleardoublepage\clearemptydoublepage

可以说比该方法更少涉及\AtBeginDocument,但仍然足够小心以保存先前的定义:)

相关内容