나는 여러 장으로 구성된 책을 쓰고 있으며 모든 장을 별도의 파일로 나누었습니다. 내 서문에는 다음과 같은 내용이 있습니다.
\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
.