2017-02-15 55 views
0
<xsl:for-each select="../div"> 
    <xsl:choose> 
    <xsl:when test="@class='champLibre'"> 
     <fo:inline keep-with-next.within-line="always" > 
     <xsl:value-of select="text()"/> 
     </fo:inline> 
     <fo:inline border-bottom-style="dotted" border-bottom-color="#000" 
      border-bottom-width="1pt"><xsl:value-of select="div/text()"/> 
      <xsl:text>&#160;&#160;&#160;&#160;&#160;&#160;</xsl:text> 
     </fo:inline> 
    </xsl:when> 

我想對齊塊(內容的div +一些文本)在相同的行,所以當涉及到行尾時,如果div +某些文本沒有足夠的空間,則包含div +某些文本的塊必須轉到下一行。使用「fo內聯」,並保持在一行內使文本開箱,並永不去到下一行

不過,我得到這樣的:

First line: .... some 
Second line: words:..... 

我要的是:

First line: .... 
Second line: some words:... 

without using keep

after using keep together within line

+0

標題寫着'保together',但你的例子'保持與 - next':哪一個是你真正使用? – lfurini

+0

我試圖使用他們兩個,但我總是有同樣的問題,文本是在同一行,但它永遠不會去第二行,它走出頁面我將加入sreenshot –

回答

1

fo:inline(目前)必須保持接下來會發生什麼,以及會發生什麼接下來是以非破壞性空間結束的fo:inline。你沒有離開任何地方的線路突破。

嘗試把每一對到一個單獨的fo:block

<xsl:for-each select="../div"> 
    <xsl:choose> 
    <xsl:when test="@class='champLibre'"> 
     <fo:block> 
     <xsl:value-of select="text()"/> 
     <fo:inline border-bottom-style="dotted" border-bottom-color="#000" 
      border-bottom-width="1pt"> 
      <xsl:value-of select="div/text()"/> 
      <xsl:text>&#160;&#160;&#160;&#160;&#160;&#160;</xsl:text> 
     </fo:block> 
    </xsl:when> 
+0

當我把塊,我放鬆了alignement,因爲它是在一個... –

+1

我不明白你的評論,但另一種解決方案是將一個空間,甚至是一個零寬度的空間後最後一個非休息空間。 –

+0

你可以改爲設置你的第二個'fo:inline'的寬度,例如'',並且去掉不間斷的空格。 –

相關問題