2016-03-01 44 views
1

我有作者的列表:如何真正保持在一起FO:在Apache的FOP联对象1.1

<titleStmt> 
    <author>GivenName1 Surname1</author> 
    <author>GivenName2 Surname2</author> 
    <author>GivenName3 Surname3</author> 
    <author>GivenName4 Surname4</author> 
    <author>GivenName5 Surname5</author> 
    <author>GivenName6 Surname6</author> 
</titleStmt> 

初始转化为XSL-FO后,我有:

<fo:block font-family="Times New Roman" text-transform="uppercase" text-align="left" font-size="8pt" line-height="11pt" margin-right="5cm"> 
    <fo:inline keep-together.within-line="always">GivenName1 Surname1</fo:inline> 
    <fo:inline keep-together.within-line="always">GivenName2 Surname2</fo:inline> 
    <fo:inline keep-together.within-line="always">GivenName3 Surname3</fo:inline> 
    <fo:inline keep-together.within-line="always">GivenName4 Surname4</fo:inline> 
    <fo:inline keep-together.within-line="always">GivenName5 Surname5</fo:inline> 
    <fo:inline keep-together.within-line="always">GivenName6 Surname6</fo:inline> 
</fo:block> 

我需要只在每个记录之间包裹行,而不是在里面(不想分割GivenName和Surname)。与keep-together.within-line,我希望它应该工作,但它不。我唯一的结果是行溢出页面边框,就像我将规则应用于整个块容器。有什么我在这里失踪?

回答

1

规范这似乎有点讨厌我,但增加的非休息空间按预期工作:

<fo:block font-family="Times New Roman" text-transform="uppercase" text-align="left" font-size="8pt" line-height="11pt" margin-right="5cm"> 
    <fo:inline keep-together.within-line="always">GivenName1&#160;Surname1</fo:inline> 
    <fo:inline keep-together.within-line="always">GivenName2&#160;Surname2</fo:inline> 
    <fo:inline keep-together.within-line="always">GivenName3&#160;Surname3</fo:inline> 
    <fo:inline keep-together.within-line="always">GivenName4&#160;Surname4</fo:inline> 
    <fo:inline keep-together.within-line="always">GivenName5&#160;Surname5</fo:inline> 
    <fo:inline keep-together.within-line="always">GivenName6&#160;Surname6</fo:inline> 
</fo:block> 

我用XSL样式表生成这个,所以:

<fo:inline> 
    <xsl:value-of select="replace(., '\s', '&#160;')"/> 
</fo:inline> 
1

我使用FOP 1.1测试了您的块,输出如预期(几行,仅在姓氏后打破)。

我想你可能在fo:block的祖先中有一个keep-together.within-line="always"keep-together="always"(*),从而迫使整个块产生一条线。

(*)的XSL 1.1推荐标准,部分5.11 Property Datatypes,解释说:

keep-together="always" 相当于keep-together.within-line="always"keep-together.within-column="always"keep-together.within-page="always"

+0

谢谢你的提示。我已经检查了所有的属性,不幸的是,没有其他的'保持在一起'参数上面这些。我会测试更多。 –

+0

它的行为就像我放在那里'keep-with-next.within-line'。 –