【问题】
docbook中的book生成的pdf或html中,虽然可以正常输入内容和titlepage了,但是在titlepage中却没有最新的版本号的信息。
即,输出现在是这样的:
想要添加最新的那个版本号,就像下面这个:
【解决过程】
1。找了下,没有发现我所想要的,类似于version等属性,而只有revision这个关键字,但是其parent必须是revhistory,即不能单独使用的,没法添加用其实现version number的效果了。
2.想要尝试着自己添加一个关键字,然后再格式化输出弄到pdf中,但是找了半天,也没找到如何添加自定义的关键字的。只是找到这里:Adding title page elements,添加一个已有的关键字的。所以,还是无法解决问题。
3.突然想起来了,之前好像有个releaseinfo,去找找其下或与其相关的,是否可以写入版本号信息。
然后在bookinfo内添加了:
<releaseinfo>版本:v1.5</releaseinfo>
然后生成的html中,是可以显示的:
但是生成的pdf中却没有,所以看来是和之前revhistory一样的问题,即pdf中,默认是不包含releaseinfo的。
所以去添加进来:
(1)去titlepage.templates_crl.xml中的<t:titlepage-content t:side="recto">中的subtitle的后面,添加了:
1 2 3 4 5 | < releaseinfo text-align = "center" font-size = "&hsize3;" space-before = "&hsize2space;" font-family = "{$title.fontset}" /> |
(2)然后去cygwin中的生成对应的新的xsl文件:
1 2 3 | Administrator@K470 /usr/share/sgml/docbook/xsl-ns-stylesheets $ xsltproc --output fo /titlepage .template_crl.xsl template /titlepage .xsl fo /tit lepage.templates_crl.xml |
(3)重新用xsltproc生成对应的fo,然后再用fop生成对应的pdf:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Administrator@K470 /cygdrive/e/Dev_Root/docbook/dev/src/docbook/books/VBR/src $ xsltproc.exe --stringparam section.autolabel 1 --stringparam section.label.includes.component.label 1 --stringparam bibliography.numbered 1 --xinclude -o /cygdrive/e/Dev_Root/docbook/dev/src/docbook/books/VBR/output/fo/MPEG_VBR .fo /usr/share/sgml/docbook/xsl-ns-stylesheets/fo/docbook_fo_crl_yahei .xsl /cygdrive/e/Dev_Root/docbook/dev/src/docbook/books/VBR/src/MPEG_VBR .xml Making portrait pages on USletter paper (8.5inx11in) Administrator@K470 /cygdrive/e/Dev_Root/docbook/dev/src/docbook/books/VBR/src $ E: /Dev_Root/docbook/config/tool/fop/fop-1 .0 /fop .cmd -c E: /Dev_Root/docbook/config/tool/fop/fop-1 .0 /conf/fop .xconf E: /Dev_Root/docbook/dev/src/docbook/books/VBR/output/fo/MPEG_VBR .fo -pdf E: /Dev_Root/docbook/dev/src/docbook/books/VBR/output/pdf/MPEG_VBR .pdf 五月 05, 2012 11:53:52 下午 org.apache.fop.apps.FopFactoryConfigurator configure 信息: Default page-height set to: 11in 五月 05, 2012 11:53:52 下午 org.apache.fop.apps.FopFactoryConfigurator configure 信息: Default page-width set to: 8.26in 五月 05, 2012 11:53:53 下午 org.apache.fop.events.LoggingEventListener processEvent 警告: Font "Symbol,normal,700" not found. Substituting with "Symbol,normal,400" . 五月 05, 2012 11:53:53 下午 org.apache.fop.events.LoggingEventListener processEvent 警告: Font "ZapfDingbats,normal,700" not found. Substituting with "ZapfDingbats,normal,400" . 五月 05, 2012 11:53:53 下午 org.apache.fop.hyphenation.Hyphenator getHyphenationTree 严重: Couldn't find hyphenation pattern zh_cn 五月 05, 2012 11:53:55 下午 org.apache.fop.events.LoggingEventListener processEvent 警告: Line 1 of a paragraph overflows the available area by 23800 millipoints. (See position 64:2815) 五月 05, 2012 11:53:55 下午 org.apache.fop.events.LoggingEventListener processEvent 警告: Line 5 of a paragraph overflows the available area by 22610 millipoints. (See position 64:3939) 五月 05, 2012 11:53:56 下午 org.apache.fop.events.LoggingEventListener processEvent 警告: Line 3 of a paragraph overflows the available area by more than 50 points. (See position 100:172) |
就可以了,生成的效果如下:
【总结】
可以通过把版本信息添加到releaseinfo中,以达到在pdf中输出版本信息的目的。
只是需要注意的是,需要手动将releaseinfo这项,添加到对应的配置中,否则默认pdf的配置中是不包含releaseinfo(和之前就遇到过的revhistory)的。
转载请注明:在路上 » 【已解决】给docbook中的book添加最新的版本号