我重新定义了\cleardoublepage
以显示“此页故意留空”。但是当使用\part
命令时,它会产生一个空白页,与 中定义的不同\cleardoublepage
。为什么会发生这种情况?
下面是 MWE。
\documentclass[10pt]{book}
\usepackage{tikz}
\makeatletter
\renewcommand{\cleardoublepage}{\relax
\clearpage
\if@twoside \ifodd\c@page\relax\else
\thispagestyle{empty}%
\tikz[remember picture, overlay] \node at (current page.center)
{\large This page is intentionally left blank};\newpage\fi\fi}
\makeatother
\usepackage{blindtext}
\begin{document}
\part{Some title}
\chapter{Name}
\blindtext
\chapter{Other Name}
\end{document}
答案1
正确;\part
不发出\cleardoublepage
。以下是与相关的定义,\part
取自book.cls
:
\newcommand\part{%
\if@openright
\cleardoublepage
\else
\clearpage
\fi
\thispagestyle{plain}%
\if@twocolumn
\onecolumn
\@tempswatrue
\else
\@tempswafalse
\fi
\null\vfil
\secdef\@part\@spart}
\def\@part[#1]#2{%
\ifnum \c@secnumdepth >-2\relax
\refstepcounter{part}%
\addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
\else
\addcontentsline{toc}{part}{#1}%
\fi
\markboth{}{}%
{\centering
\interlinepenalty \@M
\normalfont
\ifnum \c@secnumdepth >-2\relax
\huge\bfseries \partname\nobreakspace\thepart
\par
\vskip 20\p@
\fi
\Huge \bfseries #2\par}%
\@endpart}
\def\@spart#1{%
{\centering
\interlinepenalty \@M
\normalfont
\Huge \bfseries #1\par}%
\@endpart}
\def\@endpart{\vfil\newpage
\if@twoside
\if@openright
\null
\thispagestyle{empty}%
\newpage
\fi
\fi
\if@tempswa
\twocolumn
\fi}
请注意,如何\part
使用\@part
或\@spart
取决于您是否使用\part
或\part*
,但两者都以 结尾。而且,内\@endpart
没有。使用您的基本设置,只需重新定义为\cleardoublepage
\@endpart
\@endpart
\def\@endpart{\vfil\cleardoublepage}