以下是 MWE:
\documentclass{book}
\usepackage{polyglossia}
\setmainlanguage{italian}
\usepackage[series={A},noend,nofamiliar,noledgroup,nopbinverse]{reledmac}
\firstlinenum{1}
\linenumincrement{1}
\firstsublinenum{1}
\sublinenumincrement{1}
\Xsublinesep{}
\sublinenumberstyle{alph}
\begin{document}
\beginnumbering
\pstart%
When sub-lineation is in effect, the line number counter is frozen and the sub-line \msdata{ABCDEF}counter advances instead. If one of these commands appears in the middle\stopmsdata\ of a line, it doesn’t take effect until the next line; in other words, a line is counted as a line or sub-line depending on what it started out as, even if it changes in the middle
\pend%
%
\endnumbering
\end{document}
msdata 命令打印行号并允许我们打印想要添加到脚注的任何文本,脚注通常会提及包含相关部分的手稿名称。请参阅:
然而,似乎没有办法打印出介于 和 之间的章节开头和结尾的几个字母\msdata{ABCDEF}counter advances instead. If one of these commands appears in the middle\stopmsdata
。这使得我们无法知道哪些单词/短语/句子出现在提到的手稿中,而在其他手稿中没有出现。
有没有办法打印从开头开始的一个单词/几个字母,然后打印破折号....
,然后从所提及的短语的结尾打印一个单词/几个字母?它应该看起来像这样:2-3 Ms.] ABCDEF > counter....middle
或类似的东西。
答案1
\msdata
第一个警告:完全自动处理和之间的文本字符串\msdatastop
,例如“重新打印第一个和最后一个单词并省略中间的所有内容”,实现起来并不是一件容易的事。(它需要正则表达式或一些 LuaLaTeX 魔法。)
w.1 w.2 w.3 w.4 w.5 w.6 -->宽.1 ... 宽.6
并且很可能不太理想要么:可能会产生歧义,例如,如果 w1 或 w6 在同一行重复。保留对节略的控制可能会更好。
第二个警告:目前没有简单的方法可以将reledmac
文本字符串存储在和w.1-w.n
之间,就像可以存储和检索命令参数(或环境主体)(以及进一步处理,如上所述)的方式一样。这是因为的唯一参数不是文本字符串,而是脚注的内容(例如手稿列表)。和采用 0 个参数。目前,字符串没有存储在任何地方。\msdata
\msdatastop
\msdata{}
w.1-w.n
\stopmsdata
w.1-w.n
比较和对比\edtext{}{}
:您输入的文本#1
将保存并在脚注中检索(通常打印为引理)。并且的命令\lemma{}
通过存储不同的字符串提供了额外的机会来覆盖该引理。在#2
中\edtext
没有这样的机制\msdata{}
。
最简单、最安全的方法可以使用带有两个参数的自定义命令,一个参数是手稿列表,另一个参数是简略文本字符串w.1 ... w.6
。根据所需的结果,您可以使用如下内容:
\newcommand{\startmscomment}[2]{\msdata{#1\quad #2}}
...
\startmscomment{ABC}{This ... reference.}%
This is the passage I want to reference.%
\stopmsdata
另一种方法我觉得很有希望 - 但尚未完成– 将基于现有命令\setmsdatalabel{}
。这决定了在词形分隔符之前和 的内容之前打印哪个文本字符串\msdata
。默认值为“Ms.”,但您可以将任何文本输入到参数中,它将被显示类似于批判脚注的引理。我相信这是实现您想要做的事情的正式正确方法;这就是使用的吸引力所在\setmsdatalabel
。
\pstart
\setmsdatalabel{Ms.}
\msdata{ABC}
This is the passage I want to reference.%
\stopmsdata
\pend
\pstart
\setmsdatalabel{This ... reference.} % Changing the prefix mid-document
\msdata{ABC}
This is the passage I want to reference.%
\stopmsdata
\pend
然而,因为reledmac
在段落构建并拆分成行后插入注释,我们存储在宏中的值\setmsdatalabel
将被段落中后续出现的值覆盖。这意味着段落中的所有注释都获得相同的值。请参见示例:
\documentclass{article}
\usepackage{reledmac}
\begin{document}
\beginnumbering
\pstart
\setmsdatalabel{FIRST - This one gets overwritten} % !!!
\msdata{ABC}First passage I want to reference.\stopmsdata\
%
\setmsdatalabel{SECOND - This one overwrites the FIRST}
\msdata{ABC}Second passage I want to reference.\stopmsdata
\pend
%
\pstart
\setmsdatalabel{THIRD - This one gets overwritten} % !!!
\msdata{ABC}Third passage I want to reference.\stopmsdata\
%
\setmsdatalabel{FOURTH - This one overwrites the THIRD}
\msdata{ABC}Fourth passage I want to reference.\stopmsdata
\pend
\endnumbering
\end{document}
我对此没有解决方案,到目前为止所有尝试都失败了,但也许其他人可以从这里借鉴。
可能有办法解决这个问题,比如这个答案关于如何存储的值\lemma
。或者这可能是该包的一个可能的功能请求——使其\setmsdatalabel
更加灵活。