自定义行号并在 `\linenum` 参数中使用字母

自定义行号并在 `\linenum` 参数中使用字母

我正在制作一份文件,eledmac其中有一个散文段落,后面跟着一些诗句文本。我需要为散文和诗句设置不同的格式。对于散文,标准格式就可以了,但对于诗句部分,我希望在装置中标记诗句的编号和四分之一,而不是行号。(我使用的诗句类型有每节四个四分之一的标准格式)。例如,如果第一节的第一个四分之一有变体,则装置中的行号应该为“1a”,如果第二节的第三个四分之一有变体,则应该为“2c”,等等。“a”、“b”、“c”和“d”分别标记诗句的第一个到第四个四分之一。

我曾尝试使用该\linenum命令来实现这一点,但出于某种原因,它会为引理结束的行号插入一个值,因此它不是只读“1b”,而是读“1b-6”。此外,我在参数中使用字母\linenum,因此每次出现这种情况时都会出现一些错误。每个实例都有一对错误;对于每个\linenum包含字母的参数,我都会得到以下错误:

Missing = inserted for \ifnum. <to be read again> b

Missing number, treated as zero. <to be read again> b

“b” 是这个特定参数中的字母\linenum;即\linenum{1b}


\documentclass{article}

\usepackage{eledmac}

\begin{document}

\setstanzaindents{0,0,0}

\beginnumbering
    \autopar

\noindent Arma virumque cano, Troiae qui \edtext{primus}{\Afootnote{A; primo B}} 
ab oris Italiam, fato profugus, Laviniaque venit litora, multum ille et terris 
iactatus et alto vi superum saevae memorem Iunonis ob iram; \edtext{multa}
{\Afootnote{A; multo B}} quoque et bello passus, dum conderet urbem, inferretque 
deos Latio, genus unde Latinum, Albanique patres, atque altae moenia Romae.

\vspace{10pt}

\begin{stanza}
Musa, mihi causas \edtext{memora}{\linenum{|1b}\Afootnote{A; memorum B}}, quo 
numine laeso,&
quidve dolens, regina deum tot volvere casus\&
\end{stanza}

\vspace{10pt}

\begin{stanza}
\edtext{insignem}{\linenum{|2a}\Afootnote{A; insigni B}} pietate virum, tot adire 
labores&
impulerit. Tantaene animis caelestibus irae?\&
\end{stanza}


\endnumbering

\end{document}

答案1

  1. 第一个问题。如果您没有明确说明,\linenum 只会更改您指定的行参数。行参数有 7 个:startpage|startline|startsubline|endpage|endline|ensubline|font。在您的代码中,您(严重)仅更改了起始行。这就是为什么 reledmac(如果可以,您不应再使用 eledmac)保留了结束行。
  2. 第二个问题,这些参数应该只是数字,因为它们存储在计数器中,并多次进行比较才能知道是否必须打印它们(例如,如果您已将 reledmac 设置为第一次仅打印行号)。因此 1a 无法工作。

但是对于季度有解决方案 1),对于外观使用子行号 2) \sublinenumberstyle,。

在您的情况下,您应该创建一个自定义命令来轻松调用 \linenum。

例如 :

\newcommand{\choiceline}[2]{\linenum{|#1|#2||#1|#2}}

如果你想说“第一节,第二季度(=b)”,那么

\choiceline{1}{2}

然后,打印子行的方式:

\sublinenumberstyle{alph}

将按字母顺序打印。

最后但并非最不重要的,

\let\fullstop\relax

将删除行号和子行号之间的点。

相关内容