2017-02-15 1 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 + 일부 텍스트의 내용을) 정렬하려고합니다. line이 끝날 때, div + some text를위한 충분한 공간이 없다면 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

블록을 넣을 때 , 왜냐하면 그것은 내부에 있기 때문에 정렬을 느슨하게 ... –

+1

나는 당신의 코멘트를 이해하지 못한다. 그러나 또 다른 해결책은 마지막 비 분리 공간 다음에 공백 또는 제로 - 폭 공백을 두는 것이다. –

+0

대신에 두 번째'fo : inline'의 너비를 설정할 수 있습니다 (예 :''). –

관련 문제