更改 Koma Script 中的目录文本区域

更改 Koma Script 中的目录文本区域

我朋友正准备提交她的 Diplomarbeit(德语硕士),她遇到了 Koma-Script 的一个小角落。目录有点太长了。因此,有一章被强行放到了新的一页,这看起来相当荒谬。

目录已损坏

她尝试使用软件包自己解决问题geometry,但没有成功(我没有看到她的解决方案)。所以她打电话给我寻求帮助。我知道她在使用 Koma,于是我搜索了一下,然后遇到了一个好包裹,叫做layouts.。那么问题是:我们如何在 Koma 包中更改目录的高度?或者更一般地说:当 Geometry 包无济于事时,如何在 Koma 包中控制页面几何形状?

答案1

你可以尝试说

\AtBeginDocument{%
  \addtocontents{toc}{\protect\enlargethispage*{1\baselineskip}}%
}

就在之前\begin{document}

如果这还不够,请尝试用 2 代替 1。请记住,当进行更改时,需要运行两次 LaTeX 才能完全处理此类调整。

如果页码与添加的行相冲突,您可能还想删除页码(在2\baselineskip需要时可能会发生这种情况);在这种情况下说

\AtBeginDocument{%
  \addtocontents{toc}{\protect\enlargethispage*{2\baselineskip}}%
  \addtocontents{toc}{\protect\thispagestyle{empty}}%
}

该指令\enlargethispage告诉 LaTeX 在页面中留出更多空间。但是页脚不会改变位置,因此可能会干扰文本;如果目录仅占一页,则不会注意到缺少页码。

答案2

好吧,我的解决方案没什么大不了的,可以在 Koma 手册中找到。但是,对于普通 Latex 用户来说,答案并不总是直截了当的,所以我决定在这里发布它:手册中的第 2.2.4 节指出:

2.2.4
Uncommon Type Areas

\areaset[BCOR]{WIDTH }{HEIGHT }
To construct type areas with uncommon proportions or to specify type areas
which have exactly the values of the previous table (without adjusting to an
integer multiple of \baselineskip) it’s also possible to use \areaset 
instead of \typearea. \areaset sets the text width to {WIDTH} and the text 
height to HEIGHT (without any additional corrections) and computes the 
margins in a similar way as the \typearea command...

因此,

\areaset{418.25555pt}{620.80026pt}
\tableofcontents
\areaset{418.25555pt}{595.80026pt}

是一种允许将目录“强制”放到单个页面的解决方案。

固定目录

我希望这将为刚接触 Latex 和 Koma 的人节省一些时间。

相关内容