0

我无法获得 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还设置了我的 ref 参数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>
4

1 回答 1

0

我终于用 XSLTPROC 完成了这个工作:

#!/bin/sh

xsltproc --output $1.fo sd.xsl $1

它打印一个单独的页面,我有hard-pagebreak处理指令。


这是自定义层,sd.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="/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:stylesheet>

我再次尝试让我的外部参照与图片一起使用。(当然,这比文件更大,sd.xsl 但这是一个单独的问题,无论是字面上还是比喻上。)

我仍然无法与 Xalan 一起工作。请参阅问题 55941299。

我必须再次检查,看看我是否可以让它与撒克逊人一起使用。这是我用来准备课堂笔记的方法。但是,我可以使用带有适当分页符的 xsltproc 准备我 530 页的课堂笔记。

于 2019-05-10T20:40:16.760 回答