1

根据要求将此问题移至其他线程。

我正在尝试自定义 DocBook XSL 的 HTML 输出。

在 docbook<table>元素之后,样式表生成以下代码:

<div class="table">
    [...]
</div>
<p>
    <br class="table-break">
</p>

这会在 HTML 输出中引入不需要的空格,并且我无法找到此代码的来源,因为在 DocBook XSL 中搜索“table-break”没有结果。我将如何摆脱这段代码?

谢谢!

~斯兰皮斯科

4

1 回答 1

4

此信息针对 Docbook XSL 1.77.1。这可能与您的版本不匹配,特别是考虑到您的 post table break 元素包含<p>

正如 mzjn 所提到的,formal.xsl 文件包含您要查找的内容。formal.object是指定 CALS 表(或嵌入图形/媒体对象)时调用的命名模板。在这个模板中,有一个测试来检查是否应该在之后添加中断元素。有一个控制此行为的全局参数(文件顶部)。它默认启用:

<xsl:param name="formal.object.break.after">1</xsl:param>

您可以通过将参数指定给您的 XSLT 处理器来重新定义它,例如,对于 Saxon,它将采用以下形式:

java -jar saxon.jar file.xml your.customisation.xsl formal.object.break.after=0

formal.object.break.after您也可以在导入基本样式表后重新定义,从而在您的自定义中隐藏它。

于 2012-11-02T13:28:21.643 回答