我有一组 DocBook XML (
article
) 文档和以下要求:大多数文档应呈现(转换为 PDF)而不带编号部分,但某些文档确实需要编号部分。我想在文档中标明编号部分的要求,而不是保留哪个文档需要哪种处理的外部清单。
我的第一个想法是:处理设置 (DocBook XSL) section.autolabel
参数的指令。我的第二个想法是:为什么停在那里?最好的处理指令是将任意参数设置为任意值,就像此处描述的那样:PI 参数。看来那里的
xslt-param
PI只被一些古老版本的Firefox支持。我们正在使用 Saxon HE 12。接下来,我可以在 XSLT 中获得大部分内容(使用 DocBook
pi-attribute
模板):
<xsl:template match="processing-instruction('xslt-param')">
<xsl:variable name="name">
<xsl:call-template name="pi-attribute">
<xsl:with-param name="pis" select="."/>
<xsl:with-param name="attribute" select="'name'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="value">
<xsl:call-template name="pi-attribute">
<xsl:with-param name="pis" select="."/>
<xsl:with-param name="attribute" select="'value'"/>
</xsl:call-template>
</xsl:variable>
<xsl:param name="$name" select="$value"/>
</xsl:template>
但此时,我无法引用 $name
作为参数的
name
:
xsl:param
行存在语法错误。问题:
dbfo
机制为
section.autolabel
创建特定PI 之外)?
xslTNG 样式表支持这一点,但显然还没有。我添加了一个问题:https://github.com/docbook/xslTNG/issues/506
我落后于样式表的更新,但希望尽快回复它们。