在阅读 TeXbook 时,我开始好奇地想制作自己的双列宏。我曾尝试使用 \vsplit 和方框来分割内容,但迄今为止没有成功。使用 LaTeX 包也是一个可行的选择,但就我而言,宏的目的是学习低级组件,而不是针对某个特定项目。
我还不是一名 TeXnician,因此如果能提供任何有关 \doublecolumn 宏(非输出例程)的例子我将非常感谢。
答案1
以下是快速分栏的基本知识:
\newdimen\gutter \gutter = 5mm % space between the columns
\long\def \doublecolumn #1{{%
% set the material with a reduced hsize
\setbox0 = \vbox{\hsize = \dimexpr (\hsize - \gutter) / 2 \break #1}
% set topskip on first column (a trick; uses the \break above)
\splittopskip=\baselineskip
\setbox4 = \vsplit0 to 0pt
% split the column (add baselineskip/2 to encourage the first column
% to be larger than the second when the number of lines is odd)
\setbox2 = \vsplit0 to \dimexpr (\ht0 + \baselineskip) / 2
% set the columns (uses vtop for alignment on first baseline)
\hbox to\hsize{\vtop{\unvbox2}\hss\vtop{\unvbox0}}}}
\doublecolumn { lorem ipsum etc ... }
对于更通用的分栏,您将需要输出例程来逐步添加到要分栏的列表中,使用\pagegoal
和\pagetotal
来确定每页要拆分多少材料。eplain
如上所述,宏可以完成此操作,它们是学习此主题的一个很好的起点。