文本对齐 | 第 1 页(共5 页) |
有两个属性用来定义块中文本的对齐。text-align
属性定义文本行如何对齐,text-align-last
属性让您定义对块中最后一行文本的特殊处理。两个属性都有相同的值集:start
、center
、end
和 justify
。对于从左向右书写的语言,text-align="start"
产生向左对齐的文本,text-align="end"
产生向右对齐的文本。对于以其它方向书写的语言,start
和 end
有别的含义。
下面演示居中的段落在 XSL-FO 中是什么样子:
<fo:block text-align="center">
Now is the time for all good men and women to come to the
aid of the party. Every good boy deserves fudge. The
quick brown fox jumped over the lazy dog. Jackdaws love
my big sphinx of quartz.
</fo:block>
块间距
第 2 页(共5 页)
有两组特性用来定义块之间应该有多大的间距(如果有间距的话):space-before
和 space-after
。您可以添加后缀 .minimum
、.maximum
、.optimum
和 .precedence
来修改这些特性。下表概括了使用这些特性的一些样本格式化,并描述了后缀的效果:
XSL-FO 样本 含义 <fo:block space-before="14pt">
在块开始之前留 14 点的垂直空间 <fo:block space-before.optimum="14pt">
在块开始之前留 14 点的垂直空间 <fo:block space-before.minimum="6pt">
在块开始之前至少留 6 点的垂直空间
XSL-FO 规范定义了当不同间距特性相互冲突时,用于决定优先权的所有的属性和规则。在本教程中,示例通常指定非修改值并维持其原状。
根据特性及其组成部分的不同组合,总共有 10 项选择:
space-before
space-before.minimum
space-before.maximum
space-before.optimum
space-before.precedence
space-after
space-after.minimum
space-after.maximum
space-after.optimum
space-after.precedence
在块内和块之间避免分隔
第 3 页(共5 页)
XSL-FO 规范定义了几个特性,它们能提示显示引擎如何使内容块保持在一起。有三组这样的特性:keep-with-next
、keep-with-previous
和 keep-together
。您可以将这些基本特性与 .within-line
、.within-column
和 .within-page
这些组成部分结合使用。
下表演示了使用这些特性的一些样本格式化,并描述了它们的使用效果:
XSL-FO 样本 含义 <fo:block font-size="24pt" keep-with-next.within-page="always">
始终将这一块与它之后的一块放在同一页面上 <fo:block keep-with-previous="always">
始终将这一块与它前面的一块放在一起 <fo:block keep-together.within-column="always">
决不允许这一块中有分栏符
同 space-before
与 space-after
特性及其组件一样,这里也有许多组合:
keep-with-next
keep-with-next.within-line
keep-with-next.within-column
keep-with-next.within-page
keep-with-previous
keep-with-previous.within-line
keep-with-previous.within-column
keep-with-previous.within-page
keep-together
keep-together.within-line
keep-together.within-column
keep-together.within-page
这些特性的有效值有 auto
(它让显示程序来决定何时将行放在一起)和 always
(它指明两个块应始终放在一起)。您还可以使用整数值;数字越大,特性的优先级就越高(always
高于任何整数)。虽然介绍了这些内容,但要知道 FOP 并不总是能正确处理这些特性,所以不要期望它们每次都能发挥作用。
在块的前后放置分隔符
第 4 页(共5 页)
XSL-FO 也有告诉显示程序如何分隔块的特性。break-before
属性有五个值:
下表概括了使用 <fo:leader>
元素的三种方法,并描述了每个示例的效果:
属性值 值的作用 auto
让显示引擎自行处理 column
在这个块的前面放置分栏符 page
在这个块的前面放置分页符 odd-page
显示引擎插入一个分页符(或两个,如有必要的话),以便这一块在奇数页上开始。换句话说,如果一个分页符会使这个块在偶数页上开始的话,FOP 会插入第二个分页符。 even-page
显示引擎插入一个分页符(或两个,如有必要的话),以便这一块在偶数页上开始。
还有一个 break-after
属性,它有五个相同的值,用来指定当前块之后的分隔符。
widows 和 orphans
第 5 页(共5 页)
使行保持在一起的最后两个控制特性是 orphans
和 widows
特性。widows 和 orphans 是被独立显示的段落开始或结尾处的单行或部分行,产生它们的原因是因为分页符或分栏符不恰当的位置中断了文本块。在 FO 中,您可以指定某个块在分隔符前后有多少行应放在一起。widows
特性定义了必须在页面底部一起出现的最小行数;缺省值是 2。orphans
特性定义必须在页面顶部一起出现的最小行数。其缺省值也是 2。