我对DocBook XSL的自定义层有问题。我使用Apache FOP将文档从DocBook XML转换为PDF。但是这本书包含第二页(所谓的 verso )和页面表格列表。我刚刚删除了verso的内容,但是第二页现在仍然是空的。我现在不知道如何删除第二个空页。
(我只找到了一个解决方案。很简单 - 只需将<xsl:template name="book.titlepage.verso"/>
添加到模板中,但添加此元素后,第二页仍为空页。)
我同样无法找到任何解决方法如何删除页面表格列表。
答案 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>