調整關鍵版本的註腳佈局

調整關鍵版本的註腳佈局

我正在製作古希臘詩歌的批評版,並且正在使用verseLaTeX 環境。我需要兩個基本腳註,我目前正在使用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包更多是出於巧合,因為它對於定義許多不同類型的腳註(有些打印詩節編號,有些不打印等)似乎更靈活。我也考慮過bigfootfootmisc。我寧願堅持manyfoot,但我可以嘗試將所有內容轉移到另一個包,這確實可能面臨提到的腳註佈局問題。

答案1

你的問題解決起來相當複雜。我已經找到了 eledmac 的方法(謝謝!)以及您的 MWE 的具體問題。

問題是在規則後面添加空格是有問題的,因為 TeX 不將此空格算作註釋空格。這就是為什麼它可以覆蓋行號。

該解決方案相當複雜,並且需要 TeX 知識。

腳註是 TeX 插入。對於每種 TeX 類型的插入,有三個參數:

  • a) 僅當插入時才保留在頁面中的長度。在您的情況下,僅當至少呼叫一個 \footnote 時。
  • b) 長度,表示同一頁面中所有插頁可以擁有的最大高度。
  • c)加入插入時使用的因素(即您的情況下的腳註)決定插入的高度。當 insert*factor 的總和 > b 時,插入已滿,tex 將其輸出(總結)。

如果您更改 a) 長度以在規則之後添加緊排,它將解決問題,因為 TeX 將在註釋的總高度中「保留」空間。對於您的包裹,這個長度等於 \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。

相關內容