我正在尝试自定义eledmac
设置,以便可以像普通的 LaTeX 脚注样式一样使用其脚注功能,但不是每个脚注一个段落,而是所有脚注都放在一个段落中。我现在的问题是将脚注标记放入脚注文本装置中,因为eledmac
它用于在那里放置行号和词条,而不是脚注标记。
因此,如果我\value{footnote}
在第二个参数的某处使用\edtext
,我只会得到最后一个(最高)脚注编号,因为eledmac
会在完成页面时排版脚注设备,而不是立即插入反映当前脚注计数器值的脚注。
为了解决这个问题,我已经设置了一个小标签/引用命令,它将记住 .aux 文件中的脚注标记编号。只要我将硬编码的脚注编号放入其中,这似乎就可以工作,但如果我将其传递\value{footnote}
给它,\value{footnote}
则会进入 .aux 文件,这又会得到页面的最后一个(最高)脚注编号。
有没有办法解析\value{footnote}
.aux 文件的实际值?如果没有办法,我该怎么办?以下是 PDF 的屏幕截图:
(来源:自由圣经网)
下面是一个例子:
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{ngerman}
\usepackage{eledmac}
\usepackage{perpage}
\usepackage{zref-user}
\setlength{\parskip}{0pt}
\numberlinefalse
\footparagraph{A}
\nonumberinfootnote
\MakePerPage{footnote}
\makeatletter
\zref@newprop{myfootnote}[0]{0}
\zref@addprop{main}{myfootnote}
\newcommand*{\footnotemarkref}[1]
{
\zref@extractdefault{#1}{myfootnote}{0}
}
\newcommand*{\footnotemarklabel}[1]
{
\zref@setcurrent{myfootnote}{\value{footnote}}
\zref@labelbyprops{#1}{myfootnote}
}
\makeatother
\begin{document}
\beginnumbering
\pstart
Dieses\edtext{\addtocounter{footnote}{1}\footnotemark[\footnotemarkref{footnote:1:2:1}]}{\lemma{\footnotemark[\footnotemarkref{footnote:1:2:1}] 1,2}\Afootnote{\footnotemarklabel{footnote:1:2:1}O. Er.}} war im Anfang bei Gott.
Alles ward durch dasselbe,\edtext{\addtocounter{footnote}{1}\footnotemark[\footnotemarkref{footnote:1:3:1}]}{\lemma{\footnotemark[\footnotemarkref{footnote:1:3:1}] 1,3}\Afootnote{\footnotemarklabel{footnote:1:3:1}O. ihn.}} und ohne dasselbe ward auch nicht eins, das geworden ist.
\pend
\endnumbering
\end{document}
.aux 文件中的行如下:
\zref@newlabel{footnote:1:2:1}{\myfootnote{\c@footnote }}
\zref@newlabel{footnote:1:3:1}{\myfootnote{\c@footnote }}
我更希望有这样的东西:
\zref@newlabel{footnote:1:2:1}{\myfootnote{1 }}
\zref@newlabel{footnote:1:3:1}{\myfootnote{2 }}
此外,如果您知道文本区域中脚注标记前的空格来自哪里,请告诉我。提前致谢!
答案1
我不完全确定这是否回答了你的问题:你可以使用宏\zref@wrapper@immediate
立即删除内容.aux
。从zref
文档(部分2.8 高级情况的包装器,第 10 页):
\zref@wrapper@immediate{...}
在某些情况下,标签必须立即写入
.aux
文件,例如最后一页之后。如果将\zlabel
或\label
命令放入此包装器中,则可以立即写入。
但是,一些宏改组可以让你绕过它。这是完整的 MWE:
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{ngerman}
\usepackage{eledmac}
\usepackage{perpage}
\usepackage{zref-user}
\setlength{\parskip}{0pt}
\numberlinefalse
\footparagraph{A}
\nonumberinfootnote
\MakePerPage{footnote}
\makeatletter
\zref@newprop{myfootnote}[0]{\thefootnote}
\zref@addprop{main}{myfootnote}
\newcommand*{\footnotemarkref}[1]
{%
\zref@extractdefault{#1}{myfootnote}{0}%
}
\newcommand*{\footnotemarklabel}[1]
{%
\zref@labelbyprops{#1}{myfootnote}%
}
\makeatother
\begin{document}
\beginnumbering
\pstart
Dieses\edtext{\stepcounter{footnote}\footnotemarklabel{footnote:1:2:1}\footnotemark[\footnotemarkref{footnote:1:2:1}]}{\lemma{\footnotemark[\footnotemarkref{footnote:1:2:1}] 1,2}\Afootnote{O. Er.}} war im Anfang bei Gott.
Alles ward durch dasselbe,\edtext{\stepcounter{footnote}\footnotemarklabel{footnote:1:3:1}\footnotemark[\footnotemarkref{footnote:1:3:1}]}{\lemma{\footnotemark[\footnotemarkref{footnote:1:3:1}] 1,3}\Afootnote{O. ihn.}} und ohne dasselbe ward auch nicht eins, das geworden ist.
\pend
\endnumbering
\end{document}
现在的输出.aux
包含:
\zref@newlabel{footnote:1:2:1}{\myfootnote{1}}
\zref@newlabel{footnote:1:3:1}{\myfootnote{2}}
请注意,我改变了文档中某些命令的使用方式,并添加了一些行尾符号%
以避免出现虚假空格。请参阅%
行末百分号 ( ) 有什么用?