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

관련 정보