2014-02-24 113 views
3

我正在DocBook中編寫文檔,並且希望以PDF和頁眉和頁腳發佈它。爲了這個目的,我有這樣的風格: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: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

這裏很多人都熟悉XSLT,但不熟悉Docbook。所以你可能想回答以下問題。你在哪裏叫模板「header.content」?該章節的編號是參數還是必須從頭開始生成? –

回答

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.markuptitleabbrev.markup之間的差異。