![纯 TeX 格式的两列文档](https://linux22.com/image/449558/%E7%BA%AF%20TeX%20%E6%A0%BC%E5%BC%8F%E7%9A%84%E4%B8%A4%E5%88%97%E6%96%87%E6%A1%A3.png)
如何将纯 TeX 的单列文档转换为双列文档?有人可以提供示例文本吗?我已阅读完“A Gentile 的 TeX 简介”。我在 TeXbook 中找到的信息超出了我的初学者水平。
答案1
OpTeX 或 OPmac 中的宏\begmulti
...\endmulti
可在单个案例中进行多列排版:它将\begmulti
...之间的材料设置为\endmulti
,然后使用和测量页面上的可用空间。如果有足够的空间,则运行 。此宏基于原始。如果页面上没有空间,则对页面其余部分的高度进行 ,创建类似 的内容并将其放入页面。在下一页上重复该过程,直到累积的材料为空。使用此宏时,我们不需要更改输出例程,但宏不能处理插入内容(即脚注)。\vbox
\hsize=column_width
\pagegoal
\pagetotal
\balancecolumns
\vsplit
\vsplit
\line{col1\hfil\col2}
\vbox
如果要在列材料中使用脚注,则必须创建一个新的输出例程。 原则如下:
当开始两列时,您必须使用 向输出例程发送一条消息(例如)\penalty-10013
,并且例程只将先前的材料保存到框中,但不创建页面。\vsize
重新计算 并将\hsize
其设置为列宽。 设置列状态。 当列材料达到新的 时,\vsize
输出例程将照常再次调用,并且它知道现在有了列状态。 因此\box255
分为\vsplit
两部分,\line{col1\hfil\col2}
构造 并从保存的框创建页面,然后是此\line
再是用于插入脚注的框。 如果两列模式结束,您必须向输出例程发送一条特殊消息(例如\penalty-10014
),输出例程将运行\balancecolumns
,\box255
创建\line{col1\hfil\col2}
并且所有材料返回到当前页面。 列状态已关闭。