Warum erzeugt \chapter + \include eine leere Seite?

Warum erzeugt \chapter + \include eine leere Seite?

Ich schreibe ein Buch mit mehreren Kapiteln und habe jedes Kapitel in separate Dateien aufgeteilt. In meiner Einleitung steht Folgendes:

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

Datei chap1.tex:

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

und ähnliches für chap2.tex(und alle anderen Kapiteldateien). Dies funktioniert wie erwartet.

Ich habe mir jedoch kürzlich überlegt, dass ich diese anstelle \chapter{}der Kapiteldateien in die Präambel verschiebe und den Inhalt einfach in den Kapiteldateien lasse. Und zwar so:

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

\chapter{Number 2}
\include{chap2}

und so weiter. Das Ergebnis war jedoch nicht wie erwartet. Ich bekomme eine Kapitelüberschrift (wie erwartet), aber der Rest der Seite ist völlig leer. Ich muss umblättern, um zum Kapitelinhalt zu gelangen.

Die erwarteten Ergebnisse waren genau dieselben, als ob ich sie \chapter{}in den Kapiteldateien gehabt hätte.

Warum erscheint eine leere Seite, wenn ich \chapter{}den Kapitelinhalt aufteile?

Antwort1

Daraus texdef -t latex \includeergibt sich:

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

wo wir auch finden können \@include. Also texdef -t latex \@includefinden wir:

\@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

und ganz am Anfang steht macro:#1 ->\clearpage, das heißt, der erste Befehl lautet \clearpage.

Aus diesem Grund \include{file.tex}wird die Seite gelöscht, bevor der Inhalt eingefügt wird file.tex.

Der Vollständigkeit halber sehen wir uns Folgendes an: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

wo wir finden \newpage.

Als Übung für den Leser: Überprüfen Sie texdef -t latex \newpage. Vergleichen Sie außerdem das Obige mit texdef -t latex \input.

verwandte Informationen