我正在DocBook中编写文档,并希望使用页眉和页脚以PDF格式发布它。为此我有这种风格:
<xsl:template name="header.content">
<xsl:param name="pageclass" select="''"/>
<xsl:param name="sequence" select="''"/>
<xsl:param name="position" select="''"/>
<xsl:param name="gentext-key" select="''"/>
<fo:block>
<!-- sequence can be odd, even, first, blank -->
<!-- position can be left, center, right -->
<xsl:choose>
<xsl:when test="$sequence = 'blank'">
<!-- nothing -->
</xsl:when>
<xsl:when test="$position='left'">
<xsl:call-template name="draft.text"/>
<xsl:apply-templates select="." mode="titleabbrev.markup"/>
</xsl:when>
</xsl:choose>
<xsl:when test="$position='right'">
<fo:page-number/>
</xsl:when>
</fo:block>
</xsl:template>
使用这段代码,我得到以下标题:
My first chapter blah-blah 1
我想得到这个:
Chapter 1: My first chapter blah-blah 1
我应该调用哪些模板来创建这样的自动文本?
答案 0 :(得分:4)
尝试以下方法(尝试因为我对DocBook不太熟悉):
添加
<xsl:apply-templates select="." mode="object.title.markup"/>
到header.content
模板。这应该插入“带章号标签的章节标题”。请参阅Docbook文档参考here。
<xsl:template name="header.content">
<xsl:param name="pageclass" select="''"/>
<xsl:param name="sequence" select="''"/>
<xsl:param name="position" select="''"/>
<xsl:param name="gentext-key" select="''"/>
<fo:block>
<!-- sequence can be odd, even, first, blank -->
<!-- position can be left, center, right -->
<xsl:choose>
<xsl:when test="$sequence = 'blank'">
<!-- nothing -->
</xsl:when>
<xsl:when test="$position='left'">
<xsl:call-template name="draft.text"/>
<xsl:text>Chapter </xsl:text>
<xsl:apply-templates select="." mode="object.title.markup"/>
</xsl:text> </xsl:text>
</xsl:when>
</xsl:choose>
<xsl:when test="$position='right'">
<fo:page-number/>
</xsl:when>
</fo:block>
</xsl:template>
但请注意,title.markup
和titleabbrev.markup
之间可能存在差异。