\ newpage 대신 \ clearpage를 사용하는 것이 잘못입니까?
On 2월 13, 2021 by admin \newpage
및 \clearpage
명령은 모두 페이지 나누기를 강제합니다. . 또한 후자의 명령은 스택에서 보류중인 모든 float를 “플러시”합니다. 즉, 페이지 나누기 다음 페이지에서 시작하여 조판되도록 강제합니다.
제 질문은 다음과 같습니다. \newpage
대신 \clearpage
를 사용하는 것입니다. 단, 보류중인 플로트를 원하지 않는 경우에는 플러시? 두 명령의 정의를 우연히 살펴보면 (아래 참조) 항상 \clearpage
를 사용하는 데 문제가 있는지 알 수 없습니다.
참조의 편의를 위해 다음은 \newpage
의 정의입니다 (latex.ltx
에서) :
\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}
다음은 \clearpage
의 정의입니다. \newpage
를 호출합니다.
\def\clearpage{% \ifvmode \ifnum \@dbltopnum =\m@ne \ifdim \pagetotal <\topskip \hbox{}% \fi \fi \fi \newpage \write\m@ne{}% \vbox{}% \penalty -\@Mi }
답변
기술적으로 대신 \newpage
. 그러나 두 명령은 서로 다른 의미를 가지고 있으며 어떤 의미에 관심이 있는지가 궁금합니다.
우선 이미 언급했듯이 \clearpage
뿐만 아니라 페이지 (또는 두 열 모드의 열)를 종료하지만 추가로 지연된 모든 부동 소수점을 플러시합니다. 그것은 좋은 생각 일 수 있지만 다음 상황을 고려하십시오. 페이지 크기의 1/3에 불과한 하나의 플로트가 대기 중입니다. 이제 \newpage
를 사용하여 새 페이지를 시작한 다음 float 알고리즘 ( 자세한 내용은이 알고리즘에 대한 설명 참조 )을 수행합니다. 시작하고 다음 페이지에 대기중인 플로트를 배치하려고합니다 (대기 플로트를 다음 페이지의 상단 영역에 할당 할 가능성이 높습니다. 이와 대조적으로 \clearpage
도이 플로트를 출력하지만
그러므로 챕터 시작과 같은 상황에서는 \clearpage
로 이전 챕터를 끝내거나 새 챕터를 시작하는 것이 좋습니다. 그것으로) 모든 플로트를 플러시하지만 다른 상황에서는 원할 수도 있고 원하지 않을 수도있는 플로트 만있는 상당히 빈 페이지가 나타날 수 있습니다.
두 번째 차이점은 실제로는 항상 새 “페이지”를 시작하지만 \newpage
정말로 현재 열만 끝냅니다 — 이는 2 열 모드에서 큰 차이입니다. 다음을 시도해보십시오. 차이점보기 :
\documentclass[twocolumn]{article} \begin{document} A test \newpage % ends first column but not page A second test \newpage A clearpage test \clearpage % ends page (which has one column) A second clearpage test \end{document}
댓글
Answer
제 생각에는 “그렇게하지 않는 특별한 이유가있는 “경우를 제외하고 어디에서나. 저에게이 특별한 이유는 당신이 (심미적이든 어떤 이유로 든) 정말로 원할 때입니다.
- 정말 빈 페이지이면 예를 들어
\newpage\leavevmode\thispagestyle{empty}\newpage
- 특정 페이지에 배치 된 무언가 (
\clearpage
는 “대기중인 플로트가 많으면 페이지 나누기를 두 개 이상 추가 할 수 있지만\newpage
는 하나만 추가합니다.) - 옆에 두 페이지를 추가하려는 경우 서로 (텍스트가없는 왼쪽 페이지에 장 제목이 있고 오른쪽 페이지에서 텍스트가 시작되는 것이 좋습니다. 그런 다음 입력 후
\newpage
를 사용합니다. 장 제목 참조).
확실히이 두 명령의 모든 사용법은 개념적이어야합니다. 즉, 작업의 주요 텍스트에서 사용할 필요가 없습니다. 매크로 정의 (예 : 위에서 언급 한 \chapter
) 또는 서문 /…
에서 사용
\newpage
또는\clearpage
를 사용하는 것은 제 생각에는 정말 눈살을 찌푸리며 매우 신중하게 수행해야합니다.\newpage
가이 경우에 더 적절할 것입니다.\newpage
가 새 열을 강제하는 반면\clearpage
는 새 페이지를 강제합니다.