我正在尝试在 ConTeXt 中以基于网格的布局排版带有两列脚注的双列文本。使用 ConTeXt 可以轻松设置所有这些,并且通常,脚注会放置在我期望的位置。但是,当页面仅包含第一列(例如,最后一页只有足够一列的文本)或第一列短于其完整高度(例如,如果其末尾的一行或多行被移动到下一列,因为它们是孤行/寡行或具有不适合第一列的脚注)时,我看到了意外行为。在这些情况下,脚注与第一列的底部对齐。我可以看到这可能是预期的结果,但理想情况下,我希望看到脚注设置为底部不齐(即从文本块的底部开始),而不管列的高度如何,类似于 LaTeX 包 footmisc 对该选项所做的操作bottom
。有没有办法在 ConTeXt 中做到这一点?
下面提供了一个最小示例,说明了几种意外行为的情况。
\showframe %to illustrate empty space in columns
\starttext
\startcolumns[n=2]
A single line of text with balancing.\footnote{Footnote dropped in column balancing.}
\stopcolumns
\page
\startcolumns[n=2, balance=no]
A single line of text, no balancing.\footnote{Footnote directly beneath text.}
\stopcolumns
\page
\startcolumns[n=2, balance=no]
\dorecurse{2}{\par\input zapf}\footnote{\input zapf}
\stopcolumns
\page
\setupbodyfont[10pt]
\startcolumns[n=2, balance=no]
\dorecurse{3}{\par\input knuth}\footnote{A single-line footnote.}
\stopcolumns
\stoptext
我使用与 TeXLive 2020 一起发布的 ConTeXt 版本 2020.03.10 排版这些内容。
在第一个例子中,如果列平衡保持开启,则只有一行文本的列将吞噬该行末尾的脚注。在第二个例子中,关闭列平衡可以解决这个问题,但脚注会粘在文本底部,而不是设置在文本块底部。在第三个和第四个例子中,长脚注甚至放在列最后一行之后的单行脚注都会导致第一列缩短,因此,脚注将与第一列底部对齐,而不是与文本块底部对齐。
答案1
\startcolumns .. \stopcolumns
ConTeXt 中尚未解决与脚注之间的冲突(看这里),所以你最好给邮件列表写一封邮件。然而,我发现了一个替代使用\startpagecolumns
:
\definepagecolumns [example]
[n=2,
distance=5mm]
\starttext
\showgrid
\showframe
\startpagecolumns[example]
\dorecurse {7} {%
%Copied from Wikipedia
The Three Laws of Robotics (often shortened to The Three Laws or known as Asimov's Laws)
are a set of rules devised by the science fiction author Isaac Asimov.
The rules were introduced in his 1942 short story "Runaround"
(included in the 1950 collection I, Robot),
although they had been foreshadowed in a few earlier stories.
The Three Laws, quoted as being from the "Handbook of Robotics,
56th Edition, 2058 A.D.", are:\footnote{This is a short footnote.}
First Law
A robot may not injure a human being or, through inaction,
allow a human being to come to harm.\footnote{This is a short footnote.}
Second Law
A robot must obey the orders given it by human beings except
where such orders would conflict with the First Law.\footnote{This is a short footnote.}
Third Law
A robot must protect its own existence as long as such protection
does not conflict with the First or Second Laws.\footnote{This is a short footnote.}
}
\stoppagecolumns
\stoptext