\part 似乎不使用 \cleardoublepage

\part 似乎不使用 \cleardoublepage

我重新定义了\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}

在此处输入图片描述

相关内容