从DocBook文档中删除反面和表列表

时间:2011-05-25 18:11:45

标签: pdf customization apache-fop docbook

我对DocBook XSL的自定义层有问题。我使用Apache FOP将文档从DocBook XML转换为PDF。但是这本书包含第二页(所谓的 verso )和页面表格列表。我刚刚删除了verso的内容,但是第二页现在仍然是空的。我现在不知道如何删除第二个空页。

(我只找到了一个解决方案。很简单 - 只需将<xsl:template name="book.titlepage.verso"/>添加到模板中,但添加此元素后,第二页仍为空页。)

我同样无法找到任何解决方法如何删除页面表格列表

1 个答案:

答案 0 :(得分:6)

很容易。我在titlepage.templates.xsl中找到了这个:

<xsl:template name="book.titlepage.before.verso">
   <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format" break-after="page"/>
</xsl:template>
啊哈!它是包含分页符的模板,不是吗?当我把它变成空模板时,会发生什么? Etvoilà,解决方案:
<!-- clear verso -->
<xsl:template name="book.titlepage.verso"/>
<!-- clear page break after verso -->
<xsl:template name="book.titlepage.before.verso"/>
以及如何删除令人讨厌的表格列表?将基本TOC(目录表)设置复制到模板中:

<xsl:param name="generate.toc">
    appendix  toc,title
    article/appendix  nop
    article   toc,title
    book      toc,title,figure,table,example,equation
    chapter   toc,title
    part      toc,title
    preface   toc,title
    qandadiv  toc
    qandaset  toc
    reference toc,title
    sect1     toc
    sect2     toc
    sect3     toc
    sect4     toc
    sect5     toc
    section   toc
    set       toc,title
</xsl:param>

在列表中是全部,在文档的某些部分在TOC中收集的内容。如果您删除figure,table,example,equation,则会获得标准目录。

注意:列表显示,哪些块应该是内容表,哪些块不应该。如果您需要减少TOC的深度,您必须添加到您的模板中,例如:

<xsl:param name="toc.max.depth">2</xsl:param>