在主题层面上保持一致
Posted
技术标签:
【中文标题】在主题层面上保持一致【英文标题】:Keep-together on topic level 【发布时间】:2017-05-26 22:03:14 【问题描述】:我正在为 dita-ot 2.4 定制 pdf2 插件。我的格式化程序是 FOP。
我想让我的插件更喜欢主题之间的分页符。因此,我尝试在“主题”属性集中添加以下属性;
“keep-together.within-page”的值为 (20) “keep-with-previous.within page”设置为自动(以覆盖任何其他设置)当我查看 topic.fo 时,它似乎只适用于没有 href 属性的“空”topicrefs(没有正文的标题),但可能包含其他 topicrefs。
例子:
第 1 节
一些正文...
第 2 节
第 2.1 节
还有一些正文...
在此示例中,所需属性仅在第 2 节的第一个 fo:block 中找到。
我有一些“keep-with-previous.within page”在不同级别的表格、图形、正文等元素上的值低于20。
我只想问是否有一个简单的解决方案来解决我的挣扎。最好在主题级别上设置这些属性作为开始,而不仅仅是尝试将不同的部分“粘合”在一起。
最好的问候, 弗雷德里克
【问题讨论】:
希望您使用的是 '.',而不是 ':'?也就是说,使用“keep-together.within-page”和“keep-with-previous.within page”,而不是“keep-together:within-page”和“keep-with-previous:within page”。参见,例如,w3.org/TR/xsl11/#datatype 您使用的是什么格式化程序?您可能正在使用并非所有格式化程序都支持的某些功能。 我不知道我为什么写“:”。我在用 ”。”。格式化程序是 FOP。谢谢! 由于附加属性仅出现在 FO 中的一些预期位置,这看起来更像是 pdf2 和/或 dita-ot 2.4 XSLT 的问题。 @Tony:嗯,我在想我可能对topic
属性集有错误 期望。也许我应该使用另一组来获取具有实际内容的主题。
【参考方案1】:
我尝试改用概念属性集,效果很好。可能是因为我所有的主题都是概念类型;)如果您使用其他主题,您应该使用相应的属性集来获得相同的效果。下面是我对 commons-attr.xsl 的最终最重要的自定义:
<xsl:attribute-set name="concept">
<xsl:attribute name="keep-together.within-page">20</xsl:attribute>
<xsl:attribute name="keep-with-previous.within-page">auto</xsl:attribute>
</xsl:attribute-set>
【讨论】:
以上是关于在主题层面上保持一致的主要内容,如果未能解决你的问题,请参考以下文章
获取其他元素的 Angular Material 主题配色方案/调色板