gpt4 book ai didi

xml - 如何在XSLT中引用TEI xml文档的lg元素中的n属性来创建LaTeX输出(用于使用reledmac制作PDF)

转载 作者:行者123 更新时间:2023-12-04 07:16:18 25 4
gpt4 key购买 nike

我想最终打印出诗句编号,例如§1,在 XML 中编码为 <lg n="1"> , 在我的 pdf 输出中。这是我的 XML 文档的示例:

        <teiHeader>
...
</teiHeader>
<text>
...
<body>
<head>
...
</head>
<div>
<lg n="1">
<l n="1">
verse one line one of the poem</l>
<l n="2">
verse one line two</l>
<l n="3">...ditto </l>
<l n="4">...ditto </l>
</lg>
<lg n="2">
<l n="1">...
</lg>
...
我正在准备这种结构的一首诗的批判版,由于我是 XML、TEI、XSLT 和 LaTeX 的新手,我无法弄清楚如何引用 xslt 中的 n="1"部分以便 LaTeX 打印它。我正在尝试使用发布在 TEI Critical Apparatus Toolbox 上的样式表使用 reledmac 包将 XML 转换为 LaTeX(XSLT 文件的链接位于“高级定制”下)。相关部分似乎是这些行,尽管我不明白这是如何工作的。我只想调整它,以便可以引用和打印我的诗句编号,甚至我的行号:
<!-- inserts linegroup into document-->
<xsl:template match="tei:lg">

<!-- lg is a pain because it can occur in p (or not), but in tex it generates a stanza structure which must never be inside a paragraph
I've tried closing the parent paragraph and re-opening one, but it's not enough.
If the lg are inside a quotation, for instance, we need to have some more complicated handling.
-->

<xsl:choose>
<xsl:when test="not(ancestor::tei:rdg)">
<xsl:if test="ancestor::tei:p and not(preceding-sibling::tei:lg)">
<!-- In TEI an lg can occur within a p, while in LaTeX a stanza cannot occur within a pstart. The only solution I came up with was to close then re-open the current paragraph.
Warning: this can create a problem in the .tex file when the lg occurs at the very beginning or end of the paragraph. -->
<xsl:text>
\pend </xsl:text>
</xsl:if>
<xsl:text>
\stanza[ ] </xsl:text>

<!-- this is not good; TODO: do better. -->
<xsl:if test="ancestor::tei:cit">
<xsl:if
test="ancestor::tei:quote[position() = 1]/descendant::node()[name() = 'lg'][position() = 1] = self::node()">
<xsl:text>\edlabel{cit_</xsl:text>
<xsl:number select="ancestor::tei:quote[position() = 1]" level="any"/>
<xsl:text>_start}</xsl:text>
</xsl:if>
</xsl:if>

</xsl:when>
<xsl:otherwise>
<xsl:text> </xsl:text>
</xsl:otherwise>
</xsl:choose>

最佳答案

在与 tei:lg 匹配的模板内部您可以选择的元素 @n在 XPath 中选择名为 n 的属性并在 XSLT 输出中,例如<xsl:value-of select="@n"/>输出属性的值(例如 1 )。

关于xml - 如何在XSLT中引用TEI xml文档的lg元素中的n属性来创建LaTeX输出(用于使用reledmac制作PDF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68728601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com