reledmac 中的脚注规则

reledmac 中的脚注规则

我想问一下,通过哪些代码可以更改属于 中的特定脚注系列的规则reledmac。正如我从之前的回答中了解到的那样,可以通过以下命令实现例如一系列熟悉的 B 注释的脚注规则的右对齐

\renewcommand{\footnoteruleB}{\right@footnoterule}

是否也可以通过这种方式更改脚注规则的宽度和厚度?如果可以,使用哪种代码?我想知道一个解决方案,它可以与以下最小示例一起使用,其中阿拉伯语文本正面临其德语翻译:

\documentclass[11pt,twoside,a4paper]{article}

\usepackage{setspace}

\usepackage[series={A,B},nocritical,noend]{reledmac}
\usepackage{reledpar}

\usepackage{polyglossia}

\setmainlanguage[spelling=old,babelshorthands=true]{german}
\setmainfont[Mapping=tex-text,Renderer=ICU]{Charis SIL}

\setotherlanguage{english}
\newfontfamily\englishfont[Mapping=tex-text,Renderer=ICU]{Charis SIL}

\setotherlanguage{arabic}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.4]{Scheherazade}

\linenumincrement*{2}
\firstlinenum*{1}
\setlength{\Lcolwidth}{0.5\textwidth}
\setlength{\Rcolwidth}{0.4\textwidth} 

\newcommand{
\فب
}[1]{\footnoteB{#1}}

\renewcommand*{\thefootnoteB}{\alph{footnoteB}}



\afterruleX[A]{2pt}

\arrangementX[B]{paragraph}
\wrapcontentX[B]{\textarabic}
\bhookgroupX[B]{\RTL}%this is the correct way to set the B-footnotes in     a paragraph, the \arrangementX has to be done first, this was communicated by Maïeul Rouquette, the developer of reledmac, on Fr., the 24.02.2017, on stakexchange: http://tex.stackexchange.com/questions/355398/changing-the-direction-of-footnotes-in-reledmac

\afterruleX[B]{2pt}%to increase the vertical space between footnoteruleB and the B-footnotes, it has to be placed before the following command which puts the B-footnoterule right

\makeatletter
\renewcommand{\footnoteruleB}{\right@footnoterule}
\makeatother

\makeatletter
\renewcommand{\bodyfootmarkA}{\textsuperscript{\hspace{1pt}   (\@thefnmarkA)}}
\renewcommand{\bodyfootmarkB}  {\textarabic{\hspace{1pt}\textsuperscript{(\@thefnmarkB)}}}
\renewcommand{\footfootmarkA}    {\textsuperscript{(\@thefnmarkA)}\hspace{1ex}}
\renewcommand{\footfootmarkB}{\textarabic{\textsuperscript{(\@thefnmarkB)}}\hspace{1ex}}
\makeatother%these commands where communicated by Maïeul Rouquette, the developer of reledmac, on the Thu. the 23.02.2017 on stakexchange: http://tex.stackexchange.com/questions/355182/customising-footnote-marks-with-reledmac, it seems that these commands have to be set after the commands for the arrangement of the footnotes in order to implement all the details, for example the hspace after the footfootmarkA


\begin{document}



%\numberlinefalse

\AtBeginPairs{\sloppy}
\begin{pairs}

\begin{Rightside} 
\begin{RTL}
\begin{Arabic}
\begin{spacing}{2}
\beginnumbering
\pstart
نحمدك اللهمّ على نعم يؤذن\فب{يُؤْذِنُ.} الحمد بازديادها، ونصلي على نبيك محمد     هادي الأمة\فب{يعني أمة محمد.} لرشادها
\pend    
\endnumbering
\end{spacing}
\end{Arabic}
\end{RTL}
\end{Rightside}

\begin{Leftside} 
\begin{german}
\beginnumbering
\pstart
\noindent
Wir preisen dich, Gott, für Gnadengaben, deren Lobpreis von    ihrem\footnoteA{D.h. der Gnadengaben} Anwachsen kündet, und wir bitten um Segen für deinen Propheten Muḥammad, der die Gemeinde auf den rechten Weg führt.
\pend
\endnumbering
\end{german}
\end{Leftside}
\end{pairs}
\Columns


\end{document}

答案1

好的,就您而言,问题相当复杂,因为您同时具有从左到右的脚注规则和从右到左的脚注规则。

首先,我会给你解释一下在 reledmac 中脚注规则是如何定义的,然后在 bidi 中,然后你就会得到答案。

reledmac 中的脚注规则

Reledmac 针对票据系列有两个脚注规则。例如,对于 A 系列,有:

  • \Afootnoterule用于关键脚注;
  • \footnoteruleA查找熟悉的脚注。

在您的情况下,您没有使用关键脚注,并且只有两系列注释,A 和 B。因此,您有\footnoteruleA\footnoteruleB

默认情况下,reledmac 的脚注规则是“遵循”LaTeX 脚注规则,\footnoterule(阅读https://tex.stackexchange.com/a/318/7712准确理解“让”命令到另一个命令的含义,以及与调用另一个命令的命令有何区别)。

当您使用 时bidi,正如您所做的那样,\footnoterule被修改为 调用\left@footnoterule

因此,就你的情况而言,你有:

  • \footnoteruleA当 reledmac 加载时,其值为\footnoterule。当你加载 reledmac 时bidi,你不要叫\left@footnoterule
  • \footnoteruleB调用\right@footnoterule

首先要做的就是,简化问题,进行修改\footnoteruleA,使其调用\left@footnoterule

所以

\makeatletter
\renewcommand{\footnoteruleA}{\left@footnoterule}
\makeatother

比迪烟中的脚注规则

现在,我们可以看看 bidi 中 footnoterule 的标准定义。您可以在footnote-xetex-bidi.def文件中找到它。

\def\right@footnoterule{%
  \kern-3\p@
  \hbox to \columnwidth{\hskip .6\columnwidth \hrulefill }
  \kern2.6\p@}
\def\left@footnoterule{\kern-3\p@
  \hrule \@width .4\columnwidth \kern 2.6\p@}

在 LaTeX 中,\p@表示pt度量单位。我将从 开始评论\left@footnoterule,因为它更容易理解。

评论\left@footnoterule

  • \kern-3\p@并且\kern2.6\p@是在脚注规则之前/之后添加的垂直空间。由于 reledmac 已经考虑到了这些空间,并且 reledmac 有自己的机制,因此您无需更改任何内容。
  • \hrule \@width .4\columnwidth表示:水平排列.4\columnwidth。由于您处于单列模式(LaTeX 意义上的,而不是 reledpar 并行排版), 是\columnwidth页面中文本可用的宽度。因此您的规则是 的 40% \columnwidth。默认情况下,规则的高度为 0.4pt(即 TeX 设置)。

评论\right@footnoterule

  • \kern-3\p@\kern2.6\p@和 中的相同\left@footnoterule
  • \hbox to \columnwidth创建一个宽度为的水平框,\columnwidth 该水平框的内容为\hskip .6\columnwidth \hrulefill
    • \hskip .6 \columwidth: 占 60 % 的水平空间\columwidth
    • \hrulefill:占用所有可用空间的规则。在这种情况下:\columwidth - .6 \columnwidth = 0.4 \columnwidth
  • 因此,您的规则的宽度为 0.4 \columnwidth。规则的高度默认定义为 0.4 pt,如下\hrulefill调用\hrule

自定义脚注规则的高度和宽度。

现在,假设我们想要拥有以下东西:

  • 规则的宽度等于的 10% \textwidth
  • 规则的高度等于 3pt。

(这些尺寸是漫画式的,但仅用于本演示)。我们必须重新定义\left@footnoterule\right@footnoterule

\left@footnoterule

\def\left@footnoterule{\kern-3\p@
  \hrule \@width .1\columnwidth \@height 3\p@ \kern 2.6\p@}

与标准定义的变化有:

  • .1\columnwidth代替.4 \columnwidth
  • \@height 3\p@设置规则的高度。

\right@footnoterule

我们不会更改 的定义\hrulefill,因为它在 \LaTeX 中被多次调用。因此,我们在 的定义中重新复制并修改了 的定义\right@footnoterule\hrulefill在 latex.ltx 文件中定义)。

\def\right@footnoterule{%
  \kern-3\p@
  \hbox to \columnwidth{\hskip .9\columnwidth \leaders\hrule \@height 3\p@\hfill}
  \kern2.6\p@}

与初始定义的变化:

  • .9\columnwidth而不是.4\columnwidth。因此,规则的宽度为\columnwitdh-.9\columnwidth=.1\columnwidth
  • \leaders\hrule \@height 3\p@\hfill而不是\hrulefill。这受到 but 定义的启发\hrulefill
    • 我没有复制这个特定情况下不需要的一些代码。
    • 我添加了\@height 3\p@,来设置规则的高度。

最终代码

\documentclass[11pt,twoside,a4paper]{article}

\usepackage{setspace}

\usepackage[series={A,B},nocritical,noend]{reledmac}
\usepackage{reledpar}

\usepackage{polyglossia}

\setmainlanguage[spelling=old,babelshorthands=true]{german}
\setmainfont[Mapping=tex-text,Renderer=ICU]{Charis SIL}

\setotherlanguage{english}
\newfontfamily\englishfont[Mapping=tex-text,Renderer=ICU]{Charis SIL}

\setotherlanguage{arabic}
\newfontfamily\arabicfont[Script=Arabic,Scale=1.4]{Scheherazade}

\linenumincrement*{2}
\firstlinenum*{1}
\setlength{\Lcolwidth}{0.5\textwidth}
\setlength{\Rcolwidth}{0.4\textwidth} 

\newcommand{
\فب
}[1]{\footnoteB{#1}}

\renewcommand*{\thefootnoteB}{\alph{footnoteB}}



\afterruleX[A]{2pt}

\arrangementX[B]{paragraph}
\wrapcontentX[B]{\textarabic}
\bhookgroupX[B]{\RTL}%this is the correct way to set the B-footnotes in     a paragraph, the \arrangementX has to be done first, this was communicated by Maïeul Rouquette, the developer of reledmac, on Fr., the 24.02.2017, on stakexchange: https://tex.stackexchange.com/questions/355398/changing-the-direction-of-footnotes-in-reledmac

\afterruleX[B]{2pt}%to increase the vertical space between footnoteruleB and the B-footnotes, it has to be placed before the following command which puts the B-footnoterule right

\makeatletter
\def\right@footnoterule{%
  \kern-3\p@
  \hbox to \columnwidth{\hskip .9\columnwidth \leaders\hrule \@height 3\p@\hfill}
  \kern2.6\p@}
\def\left@footnoterule{\kern-3\p@
  \hrule \@width .1\columnwidth \@height 3\p@ \kern 2.6\p@}

\renewcommand{\footnoteruleA}{\left@footnoterule}
\renewcommand{\footnoteruleB}{\right@footnoterule}

%these commands where communicated by Maïeul Rouquette, the developer of reledmac, on the Thu. the 23.02.2017 on stakexchange: https://tex.stackexchange.com/questions/355182/customising-footnote-marks-with-reledmac, it seems that these commands have to be set after the commands for the arrangement of the footnotes in order to implement all the details, for example the hspace after the footfootmarkA
\renewcommand{\bodyfootmarkA}{\textsuperscript{\hspace{1pt}(\@thefnmarkA)}}%Maïeul Rouquette avec corrected spurious space here
\renewcommand{\bodyfootmarkB}  {\textarabic{\hspace{1pt}\textsuperscript{(\@thefnmarkB)}}}
\renewcommand{\footfootmarkA}    {\textsuperscript{(\@thefnmarkA)}\hspace{1ex}}
\renewcommand{\footfootmarkB}{\textarabic{\textsuperscript{(\@thefnmarkB)}}\hspace{1ex}}


\makeatother


\begin{document}



%\numberlinefalse

\AtBeginPairs{\sloppy}
\begin{pairs}

\begin{Rightside} 
\begin{RTL}
\begin{Arabic}
\begin{spacing}{2}
\beginnumbering
\pstart
نحمدك اللهمّ على نعم يؤذن\فب{يُؤْذِنُ.} الحمد بازديادها، ونصلي على نبيك محمد     هادي الأمة\فب{يعني أمة محمد.} لرشادها
\pend    
\endnumbering
\end{spacing}
\end{Arabic}
\end{RTL}
\end{Rightside}

\begin{Leftside} 
\begin{german}
\beginnumbering
\pstart
\noindent
Wir preisen dich, Gott, für Gnadengaben, deren Lobpreis von    ihrem\footnoteA{D.h. der Gnadengaben} Anwachsen kündet, und wir bitten um Segen für deinen Propheten Muḥammad, der die Gemeinde auf den rechten Weg führt.
\pend
\endnumbering
\end{german}
\end{Leftside}
\end{pairs}
\Columns


\end{document}

附录

当您多次调用时\makeatletter…\makeatother,如果可能的话,最好将所有事物“相互”合并为一次\makeatletter…\makeatother

不要犹豫提问,因为我们在这里处理一些低级概念。

相关内容