尊敬的女士们、先生们,很抱歉,我想再次询问有关 reledmac 的问题:我想将阿拉伯语文本与其德语翻译放在一起,从而使用两层熟悉的脚注,一层是 footnoteA,指的是德语翻译,第二层是 footnoteB,指的是原始阿拉伯语文本。此外,footnoteB 层应从右到左运行,并应使用 \arrangementX 命令按段落系列排列。(reledmac 手册第 35 页,第 7.1 小节)。这会导致 footnoteB 系列从左到右设置,字符消失。通过使用 \wrapcontentX[B]{\textarabic} 命令(reledmac 手册,第 42 页,第 7.7.2 小节),阿拉伯语字符会重新出现,但单词的顺序仍然是 LTR。这也不能通过 \beforeinsertingX[B]{\RTL} 命令更改(参见 reledmac 手册第 43 页,第 7.10 小节)。如何实现footnoteB系列的方向改变?
这是最小示例的代码:
\documentclass[11pt,a4paper,twoside]{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}}
\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
\beforeinsertingX[B]{\RTL}
\wrapcontentX[B]{\textarabic}
\arrangementX[B]{paragraph}
\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{\hspace{1ex}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
这个问题是由于并行排版引起的。在 中\columns
,reledpar 排版列时,是从左到右的模式。它可以知道右边的内容是 RTL,因为它在以从右到左的方式存储的框中读取它,但它无法知道脚注的情况,而且由于段落脚注操作了很多 TeX 的底层概念,它不知道这个问题。
\beforeinsertingX
无法帮助您,因为它涉及在当前页面的脚注列表中添加脚注的时间,而不是排版的时间。
好的办法是在序言中添加这个内容:
\arrangementX[B]{paragraph}
\wrapcontentX[B]{\textarabic}
\bhookgroupX[B]{\RTL}
\makeatletter
\renewcommand{\footnoteruleB}{\right@footnoterule}
\makeatother
内容\bhookgroupX
在排版脚注之前调用(必须\bhookgroupX
在之后调用\arrangementX
。一般来说,\arrangementX
设置必须是第一个要做的。
重新定义\footnoteruleB
只是把脚注规则放到了好的位置。