最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】将docbook生成的pdf中的标题(title)和目录(TOC)分开,分页显示出来

Docbook crifan 3740浏览 0评论

【问题】

docbook中,默认所生成的book的文章标题和目录,是不同的页(page)中显示的:

 

标题和目录在不同页

此处需要实现将标题和toc在同一页显示,就像这样:

标题和目录同一页显示

 

【解决过程】

1.找到官网中关于toc的介绍:

Tables of contents (TOC)

不过没有找到解决办法。

2.找了半天,终于找到了对应的配置位置:

是在fo\titlepage.templates.xml中去配置此处是(包含分页符)分开显示,还是(不包含分页符)而在同一页显示:

  <t:titlepage t:element="book" t:wrapper="fo:block">
    <t:titlepage-content t:side="recto">
......
  <t:titlepage-separator>
      <fo:block break-after="page"/>
  </t:titlepage-separator>

  <t:titlepage-before t:side="recto">
  </t:titlepage-before>

  <t:titlepage-before t:side="verso">
      <fo:block break-after="page"/>
  </t:titlepage-before>
</t:titlepage>

 

对应的,article中,就没有相应的分页符:

<t:titlepage t:element="article" t:wrapper="fo:block"
             font-family="{$title.fontset}">
......
  <t:titlepage-content t:side="verso">
  </t:titlepage-content>

  <t:titlepage-separator>
  </t:titlepage-separator>

  <t:titlepage-before t:side="recto">
  </t:titlepage-before>

  <t:titlepage-before t:side="verso">
  </t:titlepage-before>
</t:titlepage>

对于,默认生成article的pdf中,标题和pdf就是上述在同一页的。

3.知道了原因,就可以去定制了。

就是把对应的<t:titlepage-separator>中的<fo:block break-after="page"/>删除掉,然后将此改动后的titlepage.templates.xml,参考:

 pdf中没有出现/显示revhistory所对应的历史版本

用xsltproc生成新的titlepage.templates_crls.xsl,然后用此新的xsl去生成的pdf,就是可以实现将标题和目录显示在同一页了。

【总结】

关于书籍(book)和文章(article)的首页(titlepage)相关的配置,还是在对应的titlepage.templates.xml中。

以后遇到类似问题,还是应该先去这里看看。

转载请注明:在路上 » 【已解决】将docbook生成的pdf中的标题(title)和目录(TOC)分开,分页显示出来

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (2)

  1. 楼主你好,我再跟你的blog学docbook,目前发现个问题,根据你的方法设置了article首页与目录分页,但是目录与正文却没有分页,请问你遇到过这样的问题么?
    gmmywin11年前 (2013-09-24)回复
    • 没。我这里好好的。
      crifan11年前 (2013-09-24)回复
87 queries in 0.185 seconds, using 22.03MB memory