\newpage 和 \vfill\eject 之间的区别

\newpage 和 \vfill\eject 之间的区别

我想我明白了newpagepagebreak

我的问题主要是出于好奇。我偶然发现了这种方式来获取新页面: 。这与(或)\vfill\eject有什么区别。它有优势吗?\newpage\pagebreak

答案1

\newpage和之间有很大区别\vfill\eject

  • \newpageLaTeX 中的定义

    % latex.ltx, line 6342:
    \def \newpage {%
      \if@noskipsec
        \ifx \@nodocument\relax
          \leavevmode
          \global \@noskipsecfalse
        \fi
      \fi
      \if@inlabel
        \leavevmode
        \global \@inlabelfalse
      \fi
      \if@nobreak \@nobreakfalse \everypar{}\fi
      \par
      \vfil
      \penalty -\@M}
    
  • \ejectPlain TeX 中的定义

    % plain.tex, line 558:
    \def\break{\penalty-\@M}
    
    % plain.tex, line 564:
    \def\eject{\par\break}
    

LaTeX 首先尝试捕捉问题\everypar;如果\newpage在章节标题中或紧随其后给出,或者在列表中给出,则采取一些对策。

此后的工作几乎相同,但您可以注意到,\newpage问题\vfil在于它处理\flushbottom和的方式\raggedbottom。两种结构都以\penalty-10000强制分页符结尾。

相关内容