DocBook 5渲染没有缩写标签

时间:2015-03-05 03:40:12

标签: xslt rendering docbook docbook-5

我的DocBook 5文档包含glossentry个包含abbrev标记的标记。 abbrev标记似乎对呈现的HTML没有任何贡献。我是DocBook和XSLT的新手。我需要在哪里开始寻找改变这个?我一直在查看文档,除了对这显然是默认行为感到惊讶之外,我不确定接下来要在哪里进行故障排除。

设置:我的DocBook文件只能使用<book xmlns:xl="http://www.w3.org/1999/xlink">启动。我只将xsltproc指向一个XSL文件,其中包含以下内容:

<?xml version='1.0'?>
<xsl:stylesheet  
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:import href="/usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl"/>

<xsl:output method="html"
            encoding="UTF-8"
            indent="no"/>
<xsl:param name="html.stylesheet" select="'main.css'"/>
<xsl:param name="generate.toc">
  book      toc,title
</xsl:param>
<xsl:param name="glossentry.show.acronym">yes</xsl:param>

</xsl:stylesheet>

1 个答案:

答案 0 :(得分:1)

有一个名为glossentry.show.acronym的参数可以设置为yes,以确保glossentry&#34;中的&#34; acronymabbrev元素显示。您还可以将其设置为primary,以确保这些元素显示为条目的主要文本。

如果您需要更多自定义,则需要添加自己的模板,覆盖Docbook样式表中的模板,即

<xsl:template match="d:glossentry/d:abbrev"> <xsl:apply-templates/> <xsl:if test="following-sibling::d:acronym|following-sibling::d:abbrev">, </xsl:if> </xsl:template>

并以逗号分隔列表输出abbrev元素。