\chapter + \include で空白ページが作成される理由は何ですか?

\chapter + \include で空白ページが作成される理由は何ですか?

私は複数の章からなる本を執筆しており、各章を別々のファイルに分割しました。序文には次のように書いています。

\include{chap1}
\include{chap2}
...

ファイルchap1.tex

\chapter{Chapter text - Number 1}
Text text text

chap2.tex(および他のすべての章ファイル)についても同様です。これは期待どおりに動作します。

しかし、最近、章のファイルに入れるのではなく\chapter{}、これらを序文に移動し、内容だけを章のファイルに残そうと考えました。次のようになります。

\chapter{Chapter text - Number 1}
\include{chap1}

\chapter{Number 2}
\include{chap2}

などです。しかし、この結果は期待どおりではありませんでした。章の見出しは表示されますが (期待どおり)、ページの残りの部分は完全に空白です。章の内容を表示するには、ページをめくる必要があります。

\chapter{}期待される結果は、章のファイル内にある場合とまったく同じでした。

\chapter{}章の内容を分割すると空白ページが表示されるのはなぜですか?

答え1

そこから次のtexdef -t latex \includeことがわかります:

\include:
macro:#1->\relax \ifnum \@auxout =\@partaux \@latex@error {\string \include \space cannot be nested}\@eha \else \@include #1 \fi

ここで も見つけることができます\@include。したがって、 から次のtexdef -t latex \@includeことがわかります。

\@include:
macro:#1 ->\clearpage \if@filesw \immediate \write \@mainaux {\string \@input {#1.aux}}\fi \@tempswatrue \if@partsw \@tempswafalse
\edef \reserved@b {#1}\@for \reserved@a :=\@partlist \do {\ifx
\reserved@a \reserved@b \@tempswatrue \fi }\fi \if@tempswa \let
\@auxout \@partaux \if@filesw \immediate \openout \@partaux #1.aux
\immediate \write \@partaux {\relax }\fi \@input@ {#1.tex}\clearpage
\@writeckpt {#1}\if@filesw \immediate \closeout \@partaux \fi \else
\deadcycles \z@ \@nameuse {cp@#1}\fi \let \@auxout \@mainaux

そして、一番最初はmacro:#1 ->\clearpage、つまり最初のコマンドは であることを示しています\clearpage

このため、\include{file.tex}は のコンテンツを挿入する前にページをクリアしますfile.tex

完全を期すために、以下を見てみましょう:texdef -t latex \clearpage

\clearpage:
macro:->\ifvmode \ifnum \@dbltopnum =\m@ne \ifdim \pagetotal <\topskip \hbox {}\fi \fi \fi \newpage \write \m@ne {}\vbox {}\penalty -\@Mi

見つけられる場所\newpage

読者の練習として、 を確認してくださいtexdef -t latex \newpage。また、上記を と比較してくださいtexdef -t latex \input

関連情報