如何使用 XEP RenderX XSLFO 强制一系列内联对象换行

How to force a series of inline objects to wrap with XEP RenderX XSLFO

下图摘自我通过 RenderX XEP 生成的 PDF。该片段包含一系列超链接关键字,关键字之间有填充。很明显,该行没有换行,因此每个单词的文本都被压缩了:

生成这个区块的代码是:

     <fo:block-container wrap-option="wrap" space-after="10pt">
        <fo:block space-after="5pt">
             <fo:inline font-weight="bold">Keywords</fo:inline>
        </fo:block>
        <fo:block wrap-option="wrap" start-indent="20pt">
             <fo:inline padding-right="10pt">
                 <fo:basic-link color="blue" external-destination="http://example.com">Boat</fo:basic-link>
              </fo:inline>
              <fo:inline padding-right="10pt">
                  <fo:basic-link color="blue" external-destination="http://example.com">Dragon</fo:basic-link>
              </fo:inline>
               [...]
         </block>
     </fo:block-container>

我无法识别允许 fo:inline 对象换行的 属性。我在 fo:blockfo:inline 上尝试了 keep-together="no",但它们是不允许的。

我错过了什么才能让这一系列 inline 结束?

非常感谢。

填充不算作 space,因此换行算法没有任何作用。

对于常规 space.

,您可以使用 &#x200B; 插入零宽度 SPACE 而不是 &#32;

您可以改为使用 10pt space 字符:

<fo:basic-link color="blue" external-destination="http://example.com">Boat</fo:basic-link>
<fo:inline width="10pt"> </fo:inline>

(不要在生成的 XSL-FO 中包含换行符,否则输出中将有一个常规 space 和一个 10pt space。)