LuaTeX 中经常强调的功能之一是能够用其他算法替换默认的 TeX 换行算法。我想知道是否有可能用同样的方式替换页-突破算法?这将是一个很棒的功能,因为 TeX 中的分页算法通常被描述为比换行算法更“贪婪”,并且在全局优化方面不是很好。
编辑: 如果这是可能的,这可以用来解决以下问题吗?弗兰克·米特尔巴赫?我认为不是,因为弗兰克没有明确地说明。
问题:TEX 根据预编译的段落数据生成页面
本期内容描述了 TeX 方法中存在的基本问题:程序在构建优化的段落形状时,并不知道它们在页面上的最终位置。结果是一个“样板”,其中的列被剪切成指定的垂直尺寸。这样做的结果是,在使用 TEX 的页面构建器算法时,段落的形状不能取决于其在页面上的最终位置。
在某种程度上,可以通过编程来绕过这一限制,例如,通过测量页面上的剩余空间,并在确定当前文本材料最终出现的位置后明确更改段落形状。然而,除了实现起来很复杂之外,它还需要考虑通常由 TEX 自动管理的各种特殊情况,并为它们提供“程序化”解决方案。
因此,迄今为止提供此类功能的所有尝试都必须对允许的输入材料施加严格的限制,即,它们只能在受限的设置下工作,即使如此,结果往往也不令人满意。
答案1
是的,请参阅回调的文档buildpage_filter
,也可能请pre_output_filter
参阅回调。
但请注意,与换行算法不同,分页符中只有很少的部分必须直接使用,这就是为什么即使在经典 tex 中也可以编程不同的策略而不需要 lua 扩展,例如标准 latex 中的双列模式或 multicol 包。