如何将 \value{counter} 作为值放入 .aux 文件?

如何将 \value{counter} 作为值放入 .aux 文件?

我正在尝试自定义eledmac设置,以便可以像普通的 LaTeX 脚注样式一样使用其脚注功能,但不是每个脚注一个段落,而是所有脚注都放在一个段落中。我现在的问题是将脚注标记放入脚注文本装置中,因为eledmac它用于在那里放置行号和词条,而不是脚注标记。

因此,如果我\value{footnote}在第二个参数的某处使用\edtext,我只会得到最后一个(最高)脚注编号,因为eledmac会在完成页面时排版脚注设备,而不是立即插入反映当前脚注计数器值的脚注。

为了解决这个问题,我已经设置了一个小标签/引用命令,它将记住 .aux 文件中的脚注标记编号。只要我将硬编码的脚注编号放入其中,这似乎就可以工作,但如果我将其传递\value{footnote}给它,\value{footnote}则会进入 .aux 文件,这又会得到页面的最后一个(最高)脚注编号。

有没有办法解析\value{footnote}.aux 文件的实际值?如果没有办法,我该怎么办?以下是 PDF 的屏幕截图:

eledmac 用于段落样式的脚注,在设备中放置脚注标记时会出现问题。
(来源:自由圣经网

下面是一个例子:

\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}}

请注意,我改变了文档中某些命令的使用方式,并添加了一些行尾符号%以避免出现虚假空格。请参阅%行末百分号 ( ) 有什么用?

相关内容