ConTeXt XML:脚注引用和脚注内容

ConTeXt XML:脚注引用和脚注内容

我正在尝试使用 ConTeXt 处理 JATS XML。一个问题是如何正确排版脚注,因为在 JATS XML 中,脚注引用和脚注内容在源中的位置并不相同。

\startbuffer[test]
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.0 20120330//EN"
                  "JATS-journalpublishing1.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="1.0" article-type="other">
<front>
</front>
<body>
<p>Text.
<xref ref-type="fn" rid="fn1">1</xref>
More Text.
</p>
</body>
<back>
<fn-group>
<fn id="fn1"><p>Footnote content</p></fn>
</fn-group>
</back>
</article>
\stopbuffer

\startxmlsetups xml:test
    \xmlsetsetup{#1}{*}{-}
    \xmlsetsetup{#1}{article|front|body|back|p}{xml:*}
    % Footnotes
    \xmlsetsetup{#1}{fn-group}{xml:*}
    \xmlsetsetup{#1}{fn}{xml:*}
    \xmlsetsetup{#1}{xref[@ref-type='fn']}{xml:footnote}
\stopxmlsetups

\xmlregistersetup{xml:test}

\startxmlsetups xml:footnote
    \xmlfilter
    \footnote{\xmlfirst{test}{fn[@id="\xmlatt{#1}{rid}"]}}
\stopxmlsetups

\startxmlsetups xml:fn-group
    \xmlflush{#1}
\stopxmlsetups

\startxmlsetups xml:fn
    \xmlflush{#1}
\stopxmlsetups

% Root
\startxmlsetups xml:article
    \xmlflush{#1}
\stopxmlsetups

% Front
\startxmlsetups xml:front
    \xmlflush{#1}
\stopxmlsetups

% Body
\startxmlsetups xml:body
    \xmlflush{#1}
\stopxmlsetups

% Back
\startxmlsetups xml:back
    \xmlflush{#1}
\stopxmlsetups

% Paragraphs
\startxmlsetups xml:p
    \xmlflush{#1}
\stopxmlsetups

\starttext
\xmlprocessbuffer{test}{test}{}
\stoptext

使用此设置,脚注会出现两次,一次在脚注中,另一次在正文中。如果我更改此设置

\xmlsetsetup{#1}{fn-group}{xml:*}
\xmlsetsetup{#1}{fn}{xml:*}

\xmlsetsetup{#1}{fn-group}{}
\xmlsetsetup{#1}{fn}{}

脚注内容在两个位置都消失了。

在 ConTeXt XML 手册(第 86-87 页)中,有一个使用基于 lua 的方法实现此目的的示例。我已设法将此方法适应我的设置,但我仍然想了解如何正确使用这种基于查找的方法。

答案1

您可以设置fn-group为空但刷新fn

\startxmlsetups xml:test
    \xmlsetsetup{#1}{*}{-}
    \xmlsetsetup{#1}{article|front|body|back|p}{xml:*}
    % Footnotes
    \xmlsetsetup{#1}{fn-group}{}
    \xmlsetsetup{#1}{fn}{xml:*}
    \xmlsetsetup{#1}{xref[@ref-type='fn']}{xml:footnote}
\stopxmlsetups

相关内容