一章影响下一章的布局

一章影响下一章的布局

我维护着一个很长的文档,通常我都是一章一章地处理,然后当我修改的章节满足了我的需求时,再编译整个文档。

然而,我发现其中一章存在不一致之处——单独编译时没问题,但与其他章节一起编译时就发生了变化,需要新的分页。

我将问题简化为以下 MWE:

\documentclass[14pt]{extbook}
\edef\dimmbottom{1.4cm}
\edef\dimmouter{2.2cm}
\edef\dimminner{2.8cm}
\edef\dimmtoptop{0.5cm}
\edef\dimmtophead{0.8cm}
\edef\dimmtopset{\dimexpr\dimmtoptop+\dimmtophead}
\usepackage[paperwidth=21cm,paperheight=14.8cm,inner=\dimmouter,outer=\dimminner,headsep=0cm,headheight=\dimmtophead,top=\dimmtopset,bottom=\dimmbottom,footskip=12pt,marginparwidth=0.5cm,marginparsep=1.1cm]{geometry}

\begin{document}
\chapter{first}
\hfill %comment out this line, and see the difference!
\chapter{second}
\newpage
a\\ a\\ a\\ a\\ a\\ a\\ a\\ a\\ a\\ a\\ a\\ a\\ a\\ a\\ a\\ a\\ a\\
\vspace{-15pt}

a\footnotetext{a\\}\\
\end{document}

当第 1 章包含“hfill”行时,第 2 章的最后一行(!)会出现在下一页(连同其脚注)。当您注释掉第 1 章中的“hfill”时,第 2 章的所有行都会出现在一页上(尽管由于脚注末尾的“\”,因此添加了一个空白页)。

我知道使用“\”通常不是一个好主意,但是我的真实文本是一种诗歌,我需要打破短行。此外,使用丑陋的“vspace”技巧似乎也是一个坏主意,但我有我的理由(主要是巨大的遗留代码,自动生成,我尽量避免尽可能地更改)。

我的问题主要在于不一致之处——第一章中的一个小变化会严重影响第二章中的一行(实际上,出现问题的行和出现问题的行之间有几十页,它们的内容和布局都非常复杂,而所有这些似乎根本没有改变)!

这意味着我不能依赖于编译单个章节,而必须为测试的任何简单更改编译整个文档(876 页)。

我使用 xelatex(原始文档包含双向 unicode 文本)。

编辑:我更改了问题的标题 - 这里的问题不是“hfill”,而是“章节”。我假设打开一个章节,即清除双页,会“重置”布局引擎,但这个例子表明我错了。
那么我应该在章节开头添加什么才能保证重置?

相关内容