![Reledmac:如何存储和检索 \lemma 的参数?](https://linux22.com/image/430963/Reledmac%EF%BC%9A%E5%A6%82%E4%BD%95%E5%AD%98%E5%82%A8%E5%92%8C%E6%A3%80%E7%B4%A2%20%5Clemma%20%E7%9A%84%E5%8F%82%E6%95%B0%EF%BC%9F.png)
我们正在与 reledmac 合作准备一个评论版。对于一些文本,我们提供了校对。
相关评论(\Afootnote
)提供:
第一的,这是所有证人共同的最后一个词,作为一个口号——我们把它放进去\lemma
;
然后,变体,我们将其正确输入\Afootnote
。每个变体都再次以标语开头。
问题:这样,我们必须手动为每位新证人重复这个口号。我们希望使这个过程自动化(并且可能让它可自定义,在口号 fi 周围添加漂亮的道具\textbullet~#1\enskip
)。
有没有办法暂时存储的参数\lemma
并随意重复(在一个脚注内)?此信息应针对每个脚注 – 下一个脚注将具有不同的\lemma
论点。
我曾尝试定义一个新命令,但没有成功\repeatlemma
;我创建了一个条件,\ifinfoot
当且仅当在脚注中(使用\Xwrapcontents
)时该条件才为真;但随后我迷失在 reledmac 复杂的钩子系统中。
以下是 MWE:
\documentclass{article}
\usepackage[series={A},noend,nofamiliar,noeledsec]{reledmac}
\Xarrangement[A]{paragraph}
\Xnolemmaseparator[A]
\Xinplaceoflemmaseparator[A]{0.5em}
\begin{document}
\beginnumbering
\pstart
%
Lorem ipsum dolor,
%
\edtext{quod erat demonstrandum.}{%
\lemma{quod}\Afootnote{% % \lemma prints "quod" in the apparatus
erat demonstrandum \textit{A}\quad % 1st witness
%
%\repeatlemma\ % should print "quod" again
quod % this would be made superfluous by \repeatlemma
demonstrandum est \textit{B}}} % 2nd witness
%
\pend
\endnumbering
\end{document}
如果实施了,则期望的输出如下\repeatlemma
(来自我们最新一卷的示例):
出于一致性的原因,如果这不需要一个新的、专用的 Xfootnotes 系列或新的用户级命令(\AfootnoteCollation
),而是坚持通常的做法,那就太好了\Afootnote
;不过,我们可以破解 Xfootnote 的定义或修改一些其他内部结构。
任何帮助,将不胜感激。
(如果相关:我们总是\lemma{}
明确地写出 的参数,我们不让它继承 的参数#1 \edtext{}
。)
答案1
- 感谢提供完整的 MWE 示例和预期输出。
- 破解 reledmac 的一些内部宏是个非常糟糕的主意,它们非常敏感。为了避免这种破解,我们实施了“reledmac 的复杂钩子系统”。我知道有很多,但它应该允许您做您想做的事情。
- 但就你的情况而言,钩子不会有用,因为它们是在脚注参数已被读取时应用的
- 但这很容易。好吧,您需要修补(但不要重新定义)
\lemma
以便将其参数存储在宏中\repeatlemma
。 - 主要问题是,注释是在段落被分成几行之后由 reledmac 插入的,因此如果你只是将其存储在宏中,那么这个宏将为你获取段落中的最后一个值
- 但是 reledmac 必须在内部代码中处理这个问题,并为此提供了一个(未记录的)插入点:
\@beforeinsertofthisedtext
所以 :
\documentclass{article}
\usepackage[noend,noeledsec,series={A}]{reledmac}
\makeatletter
\apptocmd{\lemma}{%
\global\appto\@beforeinsertofthisedtext{\def\repeatlemma{#1}}%
}{}{}
\makeatother
\begin{document}
\beginnumbering
\pstart
\edtext{s}{\lemma{REPETED LEMMA}\Afootnote{Entry1 \repeatlemma Entry2}}
\edtext{s}{\lemma{ANOTHER REPETED LEMMA}\Afootnote{Entry1 \repeatlemma Entry2}}
\pend
\endnumbering
\end{document}