Я работаю над критическим изданием древнегреческих поэм и использую 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 есть три параметра:
- а) длина, которая сохраняется на странице только если сделана вставка. В вашем случае, только если вызвана хотя бы одна \footnote.
- б) длина, которая указывает максимальную высоту, которую могут иметь все вставки на одной странице.
- c) фактор, который используется при добавлении вставки (т. е. сноски в вашем случае), который определяет высоту вставки. Когда сумма вставки*фактор > b, вставка заполнена, и tex выводит ее (для подведения итогов).
Если вы измените длину a), чтобы добавить свой керн после правила, это решит проблему, потому что пространство будет "зарезервировано" TeX в общей высоте нот. Эта длина a, с вашим пакетом, равна \footdimen.
Таким образом, если вы измените \footin
, вы дадите команду TeX сохранить это пространство перед печатью вставки.
Но проблема в том \MFL@joinrule
, что команда, вызываемая manyfoot
при печати дополнительных правил сносок, используется \footin
для добавления пробела перед правилом. Таким образом, пробел, который вы хотите после правила, будет также добавлен перед правилом! То же самое относится и к , \make@cols
который вызывается LaTeX и печатает первое правило в серии.
Решение — исправить ошибку \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.