docbook саксонская цепочка инструментов не распознает настройку - PullRequest
0 голосов
/ 29 апреля 2019

Я не могу заставить цепочку инструментов 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>

1 Ответ

0 голосов
/ 10 мая 2019

Я наконец-то работал с 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 Но это отдельная проблема, и буквально и в переносном смысле.)

Я до сих пор не смог заставить это работать с Ксаланом. Увидеть Вопрос 55941299.

Я должен еще раз проверить, смогу ли я заставить это работать с саксонской. Это то, что я использовал для подготовки заметок к урокам. Тем не менее, я могу подготовить свои заметки о 530-страничном классе с помощью xsltproc с правильными разрывами страниц.

...