Docbook: номер главы и слово "глава" в заголовке
Я пишу документацию в 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
Какие шаблоны я должен назвать, чтобы создать такой автотекст?
1 ответ
Решение
Попробуйте следующее (пытаясь, потому что я не слишком знаком с DocBook):
добавлять
<xsl:apply-templates select="." mode="object.title.markup"/>
к header.content
шаблон. Это должно вставить "заголовок главы с меткой номера главы". Смотрите ссылку на документацию Docbook здесь.
<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
,