중요한 버전의 각주 레이아웃 조정

중요한 버전의 각주 레이아웃 조정

저는 고대 그리스 시의 비평판을 작업 중이며 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"lonely" 각주 끝 부분(그리고 이전 각주 끝 부분)에 이 명령을 사용했습니다. 안타깝게도 이로 인해 문제가 발생하는 것 같습니다.각주가 페이지 번호와 겹칠 수 있습니다.. 두 번째 이미지에 표시된 것처럼 각주도 텍스트 상자에서 벗어납니다. 예가 과장된 것처럼 보일 수 있지만 내 페이지의 거의 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 출력합니다(요약).

규칙 뒤에 kern을 추가하기 위해 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을 살펴봐야 할 것 같습니다.

관련 정보