我知道使用widetext
环境在单列模式下设置文本,以及使用multicols
包在单列和双列模式之间轻松切换,但我认为如果单列文本非常接近页面底部,那么这样做就不太好。如果初始文本接近页面底部,我想将一些文本置于单列模式,并让 latex 以单列模式格式化页面的其余部分。看看这个:
请注意文本后CKM矩阵(设置为单列模式)设置为单列模式,我觉得非常赏心悦目。
我的问题有解决办法吗?
PS:我一直在考虑的另一个解决方案是使用浮动数学环境,可以通过选项进行设置b
,但我担心它可能会浮动到下一页。
答案1
这个问题的答案是:“不,一般来说,在页面末尾自动从一栏变为两栏或反之亦然并不容易。”由于 TeX 异步剪切页面,因此在 TeX 做出分页决定时,跨越分页符的段落将被剪切(为一栏或两栏)。
可以在不同的列号之间切换的原因multicols
在于用户指定在源中发生这种情况的位置而不是在输出中发生这种情况的位置。
话虽如此:TeX 是图灵机,是的,如果你禁用 TeX 的许多内置功能并自行管理一切,那么就有办法实现这样的目标。基本上,我们必须测量下一页底部还剩下多少空间,然后测量下一个段落的长度,如果放不下,就建立一个\parshape
定义,在正确的位置更改列宽。不幸的是,这种方法会带来各种各样的复杂情况(而且很难让它以一般的方式工作,也就是说,如果文本可以包含任何类型的 TeX 构造和公式等)。
所以底线是,对于 LaTeX(或据我所知的 ConTeXt),这种方法没有任何强大的实现。