세로 공간을 늘리고 페이지 하단의 불량을 줄입니다.

세로 공간을 늘리고 페이지 하단의 불량을 줄입니다.

문제

TeX/LaTeX에는 페이지의 대상 높이에서 한 줄의 거리로 인해 발생하는 불량성을 어떻게든 줄일 수 있는 방법이 있습니까?

문맥

저는 학생들이 MS Word 대신 LaTeX를 사용하여 휴대용 문서 생성을 자동화할 수 있는 문서 클래스를 만들고 있습니다. 학생들은 LaTeX에 전혀 익숙하지 않을 것으로 예상되므로 LaTeX 수업에서 가능한 한 많은 특수 사례를 자동으로 처리하고 싶습니다.

동시에 내가 다루고자 하는 문서 유형에 대한 글꼴, 공백, 양쪽 맞춤 등에 대한 요구 사항이 있습니다. 그러나 문서 전체에서 하단 페이지 여백이 다소 일치하지 않는 것은 허용됩니다.

특히, 논문은 줄간격 1.5, 크기 14pt의 특정 글꼴을 사용하도록 요구한다. 따라서 는 xelatex컴파일에 사용되며 더 중요한 것은 페이지 하단에서 줄의 수직 거리에 따른 불량이 일반 TeX/LaTeX 문서보다 훨씬 빠르게 증가한다는 것입니다.

다음 MWE는 문제를 재현합니다 pdflatex.

\documentclass{book}

\renewcommand{\section}[1]{\ifhmode\par\fi\addvspace{0.5em}\textbf{#1}\par
   \penalty201\addvspace{0.5em}}
\renewcommand{\subsection}[1]{\ifhmode\par\fi\addvspace{0.5em}\textbf{\textit{#1}}\par\penalty301}

\begin{document}

\parskip=1em\raggedbottom
\tracingonline=1\tracingpages=1

1\par2\par3\par4\par5\par6\par7\par8\par9\par10\par11\par12\par13\par14\par
15\par16\par17\par18\par19\par20\par21\par22

\section{Section 1}\section{Section 2}\subsection{Subsection}
\par23

\end{document}

그러면 결과가 생성됩니다(여기서는 가독성을 위해 인위적으로 이미지를 자르고 페이지 여백을 줄였습니다). 컴파일 결과 잘림

페이지 추적 결과(페이지 사이의 부분):

% t=472.0 g=550.0 b=10000 p=0 c=100000#
% t=499.0 g=550.0 b=10000 p=201 c=100000#
% t=526.0 g=550.0 b=10000 p=201 c=100000#
% t=553.0 g=550.0 b=* p=301 c=*
[1]
%% goal height=550.0, max depth=5.0
% t=10.0 g=550.0 b=10000 p=301 c=100000#
% t=32.0 g=550.0 b=10000 p=0 c=100000#

이 예에서는 섹션 2가 하위 섹션과 같은 페이지에 있고 하위 섹션이 주변 처벌에 관한 "23" 단락과 같은 페이지에 있기를 원합니다.

\penalty 10000섹션 제목 뒤에 무한한 bad를 할당할 수 있다는 것을 알고 있지만 그렇게 하면 또 다른 문제가 발생할 수 있습니다. 사람들이 먼저 빈 장/섹션/하위 섹션 등을 배치하여 콘텐츠 구조를 정의한 다음 콘텐츠를 적절하게 채우는 것이 일반적인 것 같습니다. 무한 페널티를 사용하면 이러한 모든 섹션이 동일한 페이지에 있고 페이지 경계 너머에 배치됩니다. 그리고 이것이 \@startsection하는 일입니다.

즉, 페널티가 있기는 하지만 MWE의 섹션 1과 섹션 2 사이에 페이지 나누기가 가능했으면 합니다.

제가 찾은 이러한 목표를 달성하는 유일한 방법은 \parskip신축성(실제 예에서는 5em)과 수축성을 가지고 실험하는 것입니다. 비록 이것이 신뢰할 수 있는 해결책은 아닌 것 같지만 요구 사항을 위반할 가능성이 있습니다. 기관이며 일반적으로 타이포그래피에서는 바람직하지 않다고 들었습니다. 따라서 페널티를 존중하기 위해 아래쪽 여백을 확장 가능하게 만들되 나쁜 점을 무한하게 만들지 않고 LaTeX 클래스에서 그렇게 할 수 있는지에 대한 질문입니다.

나는 또한 그것을 사용해 보았지만 \raggedbottom페이지 \def\@textbottom{...}나누기의 불량/비용에는 어떤 식 으로든 영향을 미치지 않습니다. 도구를 사용하여 결과 PDF를 비교했는데 diff-pdf해당 매크로를 배치해도 아무런 차이가 없습니다.

관련 정보