【发布时间】:2019-04-29 17:41:45
【问题描述】:
我无法获得 docbook 工具链来执行硬分页 如http://www.sagehill.net/docbookxsl/PageBreaking.html末尾所述 (我曾经有这个为我工作,但似乎失去了魔力。)
这是调用docbook和saxon的脚本
#!/bin/sh
export CLASSPATH=/home/leffstudent/saxon-6.0.1.jar:/home/leffstudent/docbook-sl-1.79.1/saxon65.jar
echo $CLASSPATH
java com.icl.saxon.StyleSheet \
-o $1.fo $1 stO.xsl \
use.extensions=1 default.table.width=auto title.margin.left=0pc insert.xref.page.number=yes
(stO.xsl 还设置了我的参考参数xref 应该如何显示页码。那是
也不工作。因此,我怀疑我对com.icl.saxon.Stylesheet 的调用
正在忽略我的自定义链接
这是我尝试过的测试文档文件。 (真正的文件是500页 课堂笔记。)
<section><title> </title>
<para>
abc
</para>
<?hard-pagebreak?>
<para>
def
</para>
</section>
这是样式表,stO.xsl
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0">
<xsl:import href="./titlepage.xsl"/>
<xsl:import href="/home/leffstudent/docbook-xsl-1.79.1/fo/docbook.xsl"/>
<xsl:template match="processing-instruction('hard-pagebreak')">
<fo:block break-after='page'/>
</xsl:template>
<xsl:attribute-set name="formal.object.properties">
<xsl:attribute name="keep-together.within-column">auto</xsl:attribute>
</xsl:attribute-set>
<xsl:param name="local.l10n.xml" select="document('')"/>
<l:i18n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0">
<l:l10n language="en">
<l:context name="xref">
<l:template name="section" text="%t on Page Number %p"/>
<l:template name="mediaobject" text="%t on Page Number %p"/>
<l:template name="imageobject" text="%p"/>
</l:context>
<l:context name="xref-number-and-title">
<l:template name="section" text="%t on Page Number %p"/>
<l:template name="imageobject" text="%p"/>
</l:context>
</l:l10n>
</l:i18n>
</xsl:stylesheet>
【问题讨论】:
-
您的方法是否适用于另一个 XSLT 处理器?您使用 Saxon 获得的 FO 输出是什么,您想要的 FO 输出看起来如何或另一个处理器的输出如何?那是哪个版本的 DocBook?
-
我的 FO 输出是 29517 字节,共四行。发布它似乎不合适。当我通过 RenderX 运行它时,没有分页符。我曾经用这种方法获得分页符。 @honnen
-
如shell文件所示,我使用的是docbook 1.79
-
这不是样式表的版本号吗?我认为今天使用的 DocBook 版本是当前版本 5 或旧版本 4。
-
2LaurenceLeff DocBook 版本(可以是 4.5、5.0、5.1 - 随便)和 DocBook XSL 样式表版本可以是 1.XX(即 1.79.1)之间存在差异。 Martin Honnen 向您询问了 DocBook 版本(即源文件的版本)——而不是 XSL 版本。
标签: xslt customization docbook docbook-xsl