繁体   English   中英

XSL-FO文档中“ break-after”的确切含义是什么?

[英]What is the precise meaning of 'break-after' in an XSL-FO document?

我试图找出最好的方法来描述属性break-after对具有多个段落的两列页面的布局的影响:

<fo:block text-align="justify" font-size="14pt" break-after="column">
    <fo:block space-after="0.1in">In 294 BC, the people...</fo:block>
    <fo:block space-after="0.1in">The Colossus was built...</fo:block>
    <fo:block space-after="0.1in">The statue was toppled....</fo:block>
    <fo:block space-after="0.1in">The statue remained on....</fo:block>
</fo:block>

如果我仅看到此代码生成的页面(而不是代码本身),并被要求描述布局算法,我只是说在放置其余文本之前,它用尽可能多的文本填充第一列在第二栏中。

在此处输入图片说明

在我看来,这几乎可以描述正在发生的事情,但是我无法将这种描述与break-after="column"的含义相协调。 例如, break-after向我建议只应一个段落之后才出现分栏符,但这显然不会发生-在此小文档中,它们经常出现在段落中间。

任何人都可以参考break-after="column"的确切含义来更精确地描述此布局算法吗?

这是我正在使用的文档 (.fo文件及其生成的pdf)。 请注意,这些材料来自Kevin Howard Goldberg撰写的XML:QuickStart Guide一书。

为了针对您的样本,您的问题以及您要问的内容,具体...应用了break-after =“ column”的事物的“块”是一个其中包含四个其他块的块。

在此容器块上添加break-after =“ column”的字面意思是,“在此块末尾中断到下一列”。 因此,在您的情况下,这四个块一直在流动(这四个内容块是否导致其自身的列中断都无关紧要)。 它们正在流入两列布局,因为(显然)您的页面为流动区域指定了两列。

格式化程序完成了这些面粉块的内容后,最后一个以“雕像仍在......”开头,它完成了您在其上指定break-after =“ column”的包含块的内容。

因此,格式化程序注入了换行符以获取其他内容。 在这种情况下,您位于双列布局的第二列中,因此中断至下一列意味着转到下一页。 因此,该块之后的内容始于下一列的顶部。

属性break-after =“ column”与在这里或那里流动无关,仅指示格式化程序在指定我的元素末尾跳到下一列并放下更多内容。 它不是继承的,不会以任何方式改变孩子的行为。

如果您想将其简化到第n级,这实际上意味着您在遇到指定了</ block>的</ block>时,跳至下一列并以更多内容开头。

在将剩余的文本放入第二列之前,它会用尽可能多的文本填充第一列。 ”几乎是发生了什么。 将字符转换为字形,将字形组合为行,将行装配到块区域中以及在页面上拆分块区域的工作都由XSL Formatter负责。 属性在FO中的作用是指定XSL Formatter也必须遵循的约束。 例如, page-widthpage-heights是页面大小的约束(它们包含在https://www.w3.org/TR/xsl11/#fo_simple-page-master的“约束”部分中)。

keep- *和break- *属性也是XSL Formatter必须遵循的约束。 XSL 1.1( https://www.w3.org/TR/xsl11/#keepbreak )的第4.8节“保持和中断”中详细介绍了如何应用和交互。 如果不指定中断,则不会强制中断,并且XSL Formatter会根据其他适用的约束来尽力而为。 即, break-beforebreak-after的默认值为auto ,而break-beforehttps://www.w3.org/TR/xsl11/#break-before )的auto定义为“否”。休息将被强制”。 该定义也有以下注释:

由格式化程序的处理确定的分页符可能会受到“寡妇”,“孤儿”,“下一个保留”,“上一个保留”和“一起保留”属性的影响。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM