在主题层面上保持一致

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>

【讨论】:

以上是关于在主题层面上保持一致的主要内容,如果未能解决你的问题,请参考以下文章

打造 Material 字体样式主题 | 实现篇

打造 Material 形状主题 | 实现篇

获取其他元素的 Angular Material 主题配色方案/调色板

黑苹果 OC 0.7.0 引导主题设置教程

LDA 主题模型性能 - scikit-learn 的主题一致性实现

ant-design-vue 2中定制主题的方式