我正在研究古希腊诗歌的评注版,我正在使用verse
LaTeX 环境。我需要两个基本脚注,我目前正在使用manyfoot
。我已经定义了另一个行间距对于脚注,它似乎工作正常,至少对于我需要的小值(代码+第一张图片)而言。
\documentclass[12pt]{book}
\usepackage{polyglossia}
\usepackage{verse}
\usepackage[para]{manyfoot}
\setdefaultlanguage{greek}
\setotherlanguage{english}
\newfontfamily\greekfont[Script=Greek,Ligatures=TeX]{Times New Roman}
\def\extrafootnoterule{\defaultfootnoterule}
\newfootnote[para]{A}
\newfootnote[para]{B}
\interfootnotelinepenalty=10000
\def\mylinespacing{1.05}
\newcommand{\foota}[1]{
\begingroup
\linespread{\mylinespacing}
\FootnotetextA{}{\textbf{\arabic{poemline}} #1}
\endgroup%
}
\newcommand{\footb}[1]{
\begingroup
\linespread{\mylinespacing}
\FootnotetextB{}{\textbf{\arabic{poemline}} #1}
\endgroup
}
\usepackage{showframe}
\begin{document}
\verselinenumbersleft
\settowidth{\versewidth}{ααααααααααααααααααααααααααααααααααααααααα}
\chapter*{CANON I}
\poemlines{5}
\begin{verse}[\versewidth]
\vin ᾠδὴ . \textit{Θαυμαστὸς ἐνδόξως ποιῶν τέρατα}\foota{heirm. α΄ EE 76, n. 108, Andreae}
\vin Τὴν πύρινην γλῶτταν,\foota{Τὴν πύρινην γλῶτταν}\\*
τὸν νοῦν τὸν ἄϋλον,\foota{Τὴν πύρινην γλῶτταν}\\
τῶν θεωριῶν\foota{Τὴν πύρινην γλῶτταν}\\
τὴν σάλπιγγα τὴν θείαν,\footb{Τὴν πύρινην γλῶτταν}\footb{Τὴν πύρινην γλῶτταν}\\
τὸ στόμα τῆς σοφίας,\foota{Τὴν πύρινην γλῶτταν}\\
τὸν μέγαν θεολόγον\\*
θείοις ὕμνοις ἀνευφημήσωμεν.\foota{Τὴν πύρινην γλῶτταν}\\!
\vin Τὴν πύρινην γλῶτταν,\foota{Τὴν πύρινην γλῶτταν}\\*
τὸν νοῦν τὸν ἄϋλον,\footb{Τὴν πύρινην γλῶτταν}\\
τῶν \footb{Τὴν πύρινην γλῶτταν}θεωριῶν\footb{Τὴν πύρινην γλῶτταν}\\
τὴν σάλπιγγα τὴν θείαν,\\
τὸ στόμα τῆς σοφίας,\footb{Τὴν πύρινην γλῶτταν}\\
τὸν μέγαν θεολόγον\footb{Τὴν πύρινην γλῶτταν}\\*
θείοις ὕμνοις ἀνευφημήσωμεν.\\!
\vin Τὴν πύρινην γλῶτταν,\\*
τὸν νοῦν τὸν ἄϋλον,\\
τῶν θεωριῶν \footb{Τὴν πύρινην γλῶτταν}\\
τὴν σάλπιγγα τὴν θείαν,\footb{Τὴν πύρινην γλῶτταν}\\
τὸ στόμα τῆς σοφίας,\\
τὸν μέγαν θεολόγον\footb{Τὴν πύρινην γλῶτταν}\\*
θείοις ὕμνοις ἀνευφημήσωμεν.\foota{Τὴν πύρινην γλῶτταν}\\!
\end{verse}
\end{document}
出现此问题的原因是我需要这些脚注的特殊布局。例如,某些特定脚注需要占用一行。到目前为止,我使用了\newline
“孤独”脚注末尾的命令(以及前一个脚注末尾的命令)。不幸的是,这似乎会导致问题,因为脚注可能与页码重叠。如第二张图所示,脚注也从文本框中逃逸出来了。这个例子可能看起来有些夸张,但这种现象确实发生在我近 10% 的页面中(相当于 30 多页)。
另外,我需要修改脚注标尺并增加其与上下文本的分离。目前我正在使用以下代码:
\renewcommand{\footnoterule}{
\kern 5.52pt
\hrule width 3cm
\kern 10.52pt}
正如预期的那样,这进一步恶化了问题:
我将不胜感激有关此问题的任何帮助。我使用manyfoot
包更多是出于巧合,因为它似乎更灵活地定义许多不同类型的脚注(一些打印诗句编号,一些不打印等等)。我也考虑过bigfoot
和footmisc
。我更愿意坚持使用manyfoot
,但我可以尝试将所有内容转移到另一个确实可能面临上述脚注布局问题的包中。
答案1
您的问题相当复杂,很难解决。我找到了一种解决 eledmac 的方法(谢谢!)以及解决您的 MWE 具体问题的方法。
问题是,在规则后面添加空格是有问题的,因为 TeX 不会将此空格算作注释空间。这就是为什么它可以覆盖行号。
该解决方案相当复杂,需要 TeX 知识。
脚注是 TeX 插入内容。每种 TeX 插入内容都有三个参数:
- a) 长度,仅当插入时才保留在页面中。 就您而言,仅当至少调用一个 \footnote 时才保留。
- b) 长度,表示同一页面中所有插入内容的最大高度。
- c) 添加插入时使用的因子(即您的情况下的脚注),它决定了插入的高度。当插入*因子的总和 > b 时,插入已满,tex 会将其输出(进行总结)。
如果您更改 a) 长度以添加 kern after 规则,它将解决问题,因为空间将被 TeX “保留”在注释的总高度中。使用您的包,此 a 长度等于 \footdimen。
因此,如果您更改\footin
,您将告诉 TeX 在打印插入之前保留这个空间。
但是,问题是,打印额外脚注规则时\MFL@joinrule
调用的命令用于在规则前添加空格。因此,规则后所需的空格也将添加到规则前!LaTeX 调用并打印系列中的第一条规则也是如此。manyfoot
\footin
\make@cols
解决办法是修补\MFL@joinrule
并\make@cols
删除规则前面的这个空格,因为它是规则后面的空格。
我们可以使用 etoolbox(由 polyglossia 加载)来完成
因此,您的序言代码如下:
\makeatletter
\newcommand{\before}{5.52pt}%Space before rule
\newcommand{\after}{10.52pt}% Space after rule
\renewcommand{\footnoterule}{%Redefine footnoterule
\hrule width 3cm
\kern \after}
% Change the space kept for rules+spaces around
\advance\skip\footins by \after
\advance\skip\footins by \before
% Not print the after space before the rule
\patchcmd{\@makecol}{\vskip \skip\footins}{\vskip \skip\footins\vskip-\after}{}{}
%load parafootskip
\usepackage[ruled,para]{manyfoot}
% Not print the after space before the rule
\patchcmd{\MFL@joinrule}{\@tempskipa\skip#5}{\@tempskipa\skip#5\advance\@tempskipa by -\after}{}{}
\makeatother
但我确实认为,对于下一版,您应该看看 eledmac。