페이지 나누기 조정

LaTeX은 전체 문서를 조사하고 페이지 나누기를 선택하지만 때로는 "여기서 페이지를 나누세요", "텍스트에서 이 제목을 찢지 마세요", "단락의 첫 번째 줄이 맨 아래에 붙어 있습니다."라고 말하고 싶을 때가 있습니다. 도구는 중단을 제안하거나 강제하는 명령, 중단을 방지하는 장치, 과부와 고아를 좌절시키는 처벌이라는 세 가지 계열로 분류됩니다. 이 페이지에서는 각각에 도달해야 하는 시기를 안내합니다.

휴식을 제안 vs. 강요

먼저 페이지를 *변경*하는 도구입니다. 여기서 중요한 차이점은 \pagebreak\newpage입니다. 둘 다 해당 지점에서 페이지를 종료하지만 남은 공간을 반대 방식으로 처리합니다. \pagebreak 세로 공간을 늘려 텍스트가 페이지 하단(일반적인 하단 여백)에 도달하여 내용이 펼쳐집니다. 대조적으로 \newpage는 늘어나지 *않습니다*. 페이지의 나머지 부분을 비워두고 계속 진행됩니다.

어떤 것을 사용할지는 의도에 따라 다릅니다. 텍스트가 깨지기 전에 자연스럽게 아래쪽으로 압축하려면 \pagebreak을 사용하세요. 깨끗한 새 페이지(예: 장의 끝)에서 새로 시작하려면 \newpage을 사용하세요. 하지만 \pagebreak은 부작용으로 단락 중간을 깨뜨릴 수 있습니다. 또한 공식 참조에서는 \pagebreak이 가능한 경우 페이지의 수직 공간을 늘리기 때문에 \flushbottom을 적용하면 전체 상자 부족 경고가 발생하거나 이상하게 보일 수 있다고 지적합니다.

\pagebreak선택적 강도 인수 \pagebreak[n](0에서 4까지의 n)을 사용합니다. 4는 완전한 요구이며 인수를 생략할 때 기본값이기도 합니다. 낮은 숫자는 "가능한 경우" 요청이 더 온화하며 \pagebreak[0]는 여기서 중단할 수 있는 단순한 권한에 해당합니다. 이는 줄에 대한 \linebreak[n]과 동일한 규칙을 따릅니다. 페이지 수준 대응이라고 생각하세요.

클리어 페이지로 플로트 플러시

\newpage의 더 강력한 친척은 \clearpage입니다. 페이지를 종료하고 계속 진행하는 것 외에도 보류 중인 모든 부동 소수점(그림 및 표)을 먼저 출력한 다음 중단됩니다. LaTeX은 figuretable을 가장 잘 판단되는 위치로 이동시키기 때문에 작성한 페이지보다 나중에 페이지에 표시될 수 있습니다. 섹션이 해당 그림 *뒤에* 와야 하는 경우 경계에 \clearpage을 넣으면 새 페이지가 시작되기 전에 누적된 부동 소수점을 플러시합니다.

양면 인쇄의 경우 \cleardoublepage이 도움이 됩니다. \clearpage과 마찬가지로 부동 소수점을 지우고 twoside 옵션 아래에서 다음 본문 콘텐츠가 오른쪽 홀수 페이지에서 시작되도록 하며, 필요한 경우 빈 짝수 페이지를 삽입합니다. 이는 오른쪽 페이지에 각 장을 여는 책에서 익숙한 동작입니다(book 클래스의 기본값). 또한 2열 모드에서 \newpage현재 열만 종료합니다. 전체 페이지를 끝내려면 \clearpage 또는 \cleardoublepage이 필요합니다.

페이지 나누기 방지

이제 반대의 도구가 있습니다. "여기서 깨지지 마세요." 기본은 \nopagebreak[n]이며, 이는 해당 시점에서 페이지 나누기를 방지합니다. n의 지속성을 설정합니다(0~4, 기본값 4). \nopagebreak[0]은 가능하면 중단을 피하라는 제안이고, \nopagebreak[4]은 절대 금지입니다. 찢어지고 싶지 않은 이음새, 즉 제목과 바로 뒤의 텍스트 사이, 그림과 설명 사이에 배치하세요.

한 페이지에 좀 더 큰 범위를 유지하기 위해 \samepage 선언과 같은 이름의 samepage 환경이 있습니다. 닫힌 영역 내부의 가능한 모든 중단점에 무한 페널티를 할당하여 작동하므로 그 안에서는 중단되지 않습니다. 그러나 TeX FAQ에서 경고한 것처럼 이것이 만병통치약은 아닙니다. 텍스트를 계속 함께 실행하려면 환경 내에서 단락을 종료해야 하며, 포함된 자료가 자체 중단 힌트를 내보내는 경우 \samepage에는 이에 대한 권한이 없습니다.

더 안정적인 것은 needspace 패키지입니다. \usepackage{needspace} 뒤에 \needspace{3\baselineskip}를 쓰면 "여기와 페이지 하단 사이에 3줄의 공간이 없으면 새 페이지를 시작합니다"를 의미합니다. 즉, 3줄이 맞으면 계속하고, 그렇지 않으면 새 페이지로 이동합니다. 제목과 처음 몇 줄을 함께 유지하는 것이 좋습니다. pt 또는 cm도 작동하지만 길이를 \baselineskip(줄 간격)의 배수로 표현하는 것이 직관적인 선택입니다. 공간을 더 정확하게 예약하는 \Needspace{...}\flushbottom 아래에 짧은 페이지를 바닥에 플러시하는 \Needspace*{...}도 있습니다(후자의 두 개는 단락 사이에 사용됩니다).

과부와 고아

고아페이지 맨 아래에 남겨진 단락의 첫 번째 줄입니다. 과부다음 페이지의 상단에 단독으로 표시되는 단락의 마지막 줄입니다. 둘 다 잘 읽히지 않으며 피하려고 하는 일종의 나쁜 중단 조판입니다. (용어는 소스마다 다르지만 TeX FAQ에서는 고아를 "페이지 끝 부분에 있는 단락의 첫 번째 줄"로 정의하고 과부를 "페이지 시작 부분에 있는 단락의 마지막 줄"로 정의합니다.)

두 개의 정수 페널티가 그들을 방해합니다. \clubpenalty는 고아(문단의 첫 줄 *뒤* 끊기)를 제어하고 \widowpenalty 과부(마지막 줄 *앞* 끊기)를 제어합니다. 값이 클수록 LaTeX는 중단이 "그럴 가치가 없다"고 판단하여 회피하게 됩니다. 표준 클래스 기본값은 150입니다(약간 권장하지 않음). TeX FAQ에는 실제로 두 가지 의미 있는 설정만 있습니다. 과부와 고아를 허용하는 유한(150 또는 500 - 어느 것이든 중요하지 않음)과 이를 금지하는 무한(10000 이상)입니다.

이를 금지하려면 프리앰블에서 둘 다 최대값으로 설정하세요. 일반적인 주문은 다음과 같습니다.

latex
\clubpenalty=10000
\widowpenalty=10000

그러나 전면 금지에는 비용이 있습니다. 나쁜 나눔을 피하려고 LaTeX가 페이지에서 한 줄을 덜어 내면 페이지 하단이 더 이상 맞지 않고 들쭉날쭉해집니다. 기본값이 “가벼운 억제”에 머무는 이유가 바로 이것입니다. 실제로는 모든 값을 10000으로 고정하기보다, 최종 교정 단계에서 문제가 되는 곳만 손으로 고치는 것이 더 좋은 결과를 냅니다. 고전적인 국소 수정은 \enlargethispage{\baselineskip}으로, 현재 페이지의 \textheight만 임시로 늘려 한 줄을 더 받아들이게 합니다. 아래쪽 단락을 한 줄 늘리면 흘러나간 마지막 줄이 다시 페이지 안으로 들어와 위도우가 해소됩니다. 간격을 조여서라도 한 줄을 넣어야 할 때는 별표가 붙은 \enlargethispage*{\baselineskip}를 사용합니다.

명령 빠른 참조

주요 페이지 나누기 명령과 매개변수를 한눈에 살펴보겠습니다. needspace 명령을 사용하려면 해당 패키지를 로드해야 합니다. 나머지는 표준 LaTeX입니다.

명령기능
\pagebreak[n]중단을 제안/강제합니다(n=0–4, 기본값 4). 수직 공간을 아래쪽으로 늘립니다.단락 중간을 깰 수 있음
\newpage지금 페이지를 종료하세요. 스트레칭은 안하고 나머지는 비워두세요2열에서는 열만 끝남
\clearpage페이지를 종료하고 보류 중인 모든 부동 소수점을 먼저 플러시한 다음 중단합니다.그림 뒤의 섹션을 유지하는 데 사용합니다.
\cleardoublepage클리어 페이지와 비슷하지만 양면에서 오른쪽(홀수) 페이지에서 시작하고 필요한 경우 공백을 삽입합니다.오른쪽에 장을 여는 책의 경우
\nopagebreak[n]이 시점에서 휴식을 취하지 않도록 합니다(n=0–4, 기본값 4).텍스트와 함께 제목 유지
\samepage한 페이지에 담기 위해 영역 내부의 중단에 대해 무한 페널티(환경도 마찬가지)절대 안전하지는 않습니다. 내부 단락 끝
\needspace{N\baselineskip}N라인만큼의 공간이 남지 않으면 중단(needspace 패키지)첫 번째 줄로 제목을 유지하세요.
\clubpenalty고아를 낙담시키는 정수(좌초된 첫 번째 줄); 기본값 150, 10000으로 금지높을수록 더 많이 피할 수 있음을 의미합니다.
\widowpenalty정수 낙담 미망인(좌초된 마지막 줄); 기본값 150, 10000으로 금지높을수록 더 많이 피할 수 있음을 의미합니다.
\enlargethispage{\baselineskip}현재 페이지의 텍스트 높이만 확대하여 한 줄 더 맞춥니다.별표 형식으로 줄을 긋습니다.

이를 실제로 활용하기

기본 규칙은 페이지 나누기를 마지막에 조정하는 것입니다. 한 문자라도 추가하거나 제거하면 후속 나누기마다 이동하므로 중간에 수동 \newpage 명령을 뿌리면 나중에 텍스트를 편집할 때마다 어색한 간격이 남습니다. 먼저 콘텐츠를 완성한 다음 마지막 단계에서 페이지 매기기를 검사하세요. 미망인과 고아의 경우에도 서문의 포괄적 금지에 전적으로 의존하기보다는 \enlargethispage 등을 사용하여 눈에 띄는 부분만 개별적으로 수정하는 것이 하단이 깔끔하게 정리된 페이지로 가는 더 확실한 경로입니다.

페이지 나누기는 줄 바꿈(\linebreak 또는 \\)과 별도의 레이어이며 figuretable배치와 긴밀하게 상호 작용합니다. 줄 조정에 대해서는 "줄 바꿈 조정"을 참조하고, 단락 자체에 대해서는 "줄 & 문단 나누기"를 참조하고, 부동 위치 지정에 대해서는 "부동 배치"를 참조하십시오.

페이지 매김 방지 작업 흐름

페이지 매김 증명은 본문, 부동 소수점 및 참고문헌이 배치된 후에만 시작됩니다. 먼저 부동 소수점이 \clearpage으로 백업되는지 확인하세요. 다음으로 needspace으로 페이지 하단에 단독으로 표시되는 제목을 보호합니다. 마침내 \enlargethispage와 같은 도구를 사용하여 눈에 띄는 과부와 고아를 수정합니다. 챕터 구조에서 실제로 필요한 곳에만 분산된 \newpage 명령을 유지하십시오.

  • 장 및 부록 경계: \clearpage 또는 \cleardoublepage을 사용하면 부동 소수점이 다음 부분으로 이동하지 않습니다.
  • 제목 뒤: 페이지 하단에 제목이 표시되지 않도록 \needspace{3\baselineskip}과 같은 몇 줄을 예약해 두세요.
  • 한 줄 과부 또는 고아: \enlargethispage을 로컬로 적용하기 전에 공백과 아래쪽 정렬을 모두 검사합니다.
  • 각 수동 수정사항에 대한 설명을 남겨 텍스트 편집 후 제거해야 할지 여부를 나중에 알 수 있습니다.