Vygenerovaný obsah DocBooku až za obsahem
Jirka Kosek
jirka na kosek.cz
Čtvrtek Březen 22 15:12:33 CET 2012
On 22.3.2012 15:07, Petr Hubík wrote:
> dá se v DocBooku generovat seznam obrázků a tabulek až za vlastní text
> práce? Obsah (seznam nadpisů) však musí zůstat před textem práce.
> Pokouším se psát bakalářskou práci v DocBooku a toto je první problém,
> který nejsem schopen vyřešit.
Musí se upravit šablona obsluhující daný element, v tomto případě
předpokládám book:
<xsl:template match="book">
<xsl:variable name="id">
<xsl:call-template name="object.id"/>
</xsl:variable>
<xsl:variable name="preamble"
select="title|subtitle|titleabbrev|bookinfo|info"/>
<xsl:variable name="content"
select="node()[not(self::title or self::subtitle
or self::titleabbrev
or self::info
or self::bookinfo)]"/>
<xsl:variable name="titlepage-master-reference">
<xsl:call-template name="select.pagemaster">
<xsl:with-param name="pageclass" select="'titlepage'"/>
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="front.cover"/>
<xsl:if test="$preamble">
<xsl:call-template name="page.sequence">
<xsl:with-param name="master-reference"
select="$titlepage-master-reference"/>
<xsl:with-param name="content">
<fo:block id="{$id}">
<xsl:call-template name="book.titlepage"/>
</fo:block>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:apply-templates select="dedication" mode="dedication"/>
<xsl:apply-templates select="acknowledgements" mode="acknowledgements"/>
<xsl:call-template name="make.book.toc"/>
<xsl:apply-templates select="$content"/>
<xsl:call-template name="make.book.lots"/>
<xsl:call-template name="back.cover"/>
</xsl:template>
A pak rozdělit šablonu, která je normálně jedna na dvě:
<xsl:template name="make.book.toc">
<xsl:variable name="lot-master-reference">
<xsl:call-template name="select.pagemaster">
<xsl:with-param name="pageclass" select="'lot'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="toc.params">
<xsl:call-template name="find.path.params">
<xsl:with-param name="table" select="normalize-space($generate.toc)"/>
</xsl:call-template>
</xsl:variable>
<xsl:if test="contains($toc.params, 'toc')">
<xsl:call-template name="page.sequence">
<xsl:with-param name="master-reference"
select="$lot-master-reference"/>
<xsl:with-param name="element" select="'toc'"/>
<xsl:with-param name="gentext-key" select="'TableofContents'"/>
<xsl:with-param name="content">
<xsl:call-template name="division.toc">
<xsl:with-param name="toc.title.p"
select="contains($toc.params, 'title')"/>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="make.book.lots">
<xsl:variable name="lot-master-reference">
<xsl:call-template name="select.pagemaster">
<xsl:with-param name="pageclass" select="'lot'"/>
</xsl:call-template>
</xsl:variable>
<xsl:variable name="toc.params">
<xsl:call-template name="find.path.params">
<xsl:with-param name="table" select="normalize-space($generate.toc)"/>
</xsl:call-template>
</xsl:variable>
<xsl:if test="contains($toc.params,'figure') and .//figure">
<xsl:call-template name="page.sequence">
<xsl:with-param name="master-reference"
select="$lot-master-reference"/>
<xsl:with-param name="element" select="'toc'"/>
<xsl:with-param name="gentext-key" select="'ListofFigures'"/>
<xsl:with-param name="content">
<xsl:call-template name="list.of.titles">
<xsl:with-param name="titles" select="'figure'"/>
<xsl:with-param name="nodes" select=".//figure"/>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:if test="contains($toc.params,'table') and .//table">
<xsl:call-template name="page.sequence">
<xsl:with-param name="master-reference"
select="$lot-master-reference"/>
<xsl:with-param name="element" select="'toc'"/>
<xsl:with-param name="gentext-key" select="'ListofTables'"/>
<xsl:with-param name="content">
<xsl:call-template name="list.of.titles">
<xsl:with-param name="titles" select="'table'"/>
<xsl:with-param name="nodes" select=".//table[not(@tocentry =
0)]"/>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:if test="contains($toc.params,'example') and .//example">
<xsl:call-template name="page.sequence">
<xsl:with-param name="master-reference"
select="$lot-master-reference"/>
<xsl:with-param name="element" select="'toc'"/>
<xsl:with-param name="gentext-key" select="'ListofExample'"/>
<xsl:with-param name="content">
<xsl:call-template name="list.of.titles">
<xsl:with-param name="titles" select="'example'"/>
<xsl:with-param name="nodes" select=".//example"/>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:if test="contains($toc.params,'equation') and
.//equation[title or info/title]">
<xsl:call-template name="page.sequence">
<xsl:with-param name="master-reference"
select="$lot-master-reference"/>
<xsl:with-param name="element" select="'toc'"/>
<xsl:with-param name="gentext-key" select="'ListofEquations'"/>
<xsl:with-param name="content">
<xsl:call-template name="list.of.titles">
<xsl:with-param name="titles" select="'equation'"/>
<xsl:with-param name="nodes"
select=".//equation[title or info/title]"/>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
<xsl:if test="contains($toc.params,'procedure') and
.//procedure[title or info/title]">
<xsl:call-template name="page.sequence">
<xsl:with-param name="master-reference"
select="$lot-master-reference"/>
<xsl:with-param name="element" select="'toc'"/>
<xsl:with-param name="gentext-key" select="'ListofProcedures'"/>
<xsl:with-param name="content">
<xsl:call-template name="list.of.titles">
<xsl:with-param name="titles" select="'procedure'"/>
<xsl:with-param name="nodes"
select=".//procedure[title or info/title]"/>
</xsl:call-template>
</xsl:with-param>
</xsl:call-template>
</xsl:if>
</xsl:template>
--
------------------------------------------------------------------
Jirka Kosek e-mail: jirka na kosek.cz http://www.kosek.cz
------------------------------------------------------------------
Profesionální školení a poradenství v oblasti technologií XML.
Podrobný přehled školení http://xmlguru.cz/skoleni/
------------------------------------------------------------------
http://docbook.cz Stránky o dokumentačním formátu DocBook
http://xmlguru.cz Blog mostly about XML for English readers
------------------------------------------------------------------
------------- další část ---------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 260 bytes
Desc: OpenPGP digital signature
URL: <http://www.linux.cz/pipermail/docbook/attachments/20120322/c8b22a90/attachment.sig>
Další informace o konferenci Docbook