1

我无法使用 DITA-OT PDF2 去除 FOP 中的内联元素内的空格。这是我的代码片段:

<p>1 BEFORE <uicontrol>test</uicontrol> AFTER</p>
<p>2 BEFORE <uicontrol> test</uicontrol> AFTER</p>
<p>3 BEFORE <uicontrol>test </uicontrol> AFTER</p>
<p>4 BEFORE <uicontrol><keyword keyref="test"/> </uicontrol> AFTER</p>
<p>5 BEFORE <uicontrol> <keyword keyref="test"/></uicontrol> AFTER</p>
<p>6 BEFORE <uicontrol>
  <keyword keyref="test"/>
</uicontrol> AFTER</p>
<p>7 BEFORE <uicontrol>  
  <keyword keyref="test"/>
</uicontrol> AFTER</p>

呈现给:

这是我的属性集:

<xsl:attribute-set name="uicontrol">
    <xsl:attribute name="white-space">nowrap</xsl:attribute>
    <xsl:attribute name="white-space-treatment">ignore</xsl:attribute>
    <xsl:attribute name="white-space-collapse">true</xsl:attribute>
    <xsl:attribute name="linefeed-treatment">treat-as-zero-width-space</xsl:attribute>
    <xsl:attribute name="background-color">#ff0000</xsl:attribute>
</xsl:attribute-set>

必须去除所有红色空格。我的错误在哪里?

4

1 回答 1

1

FOP 似乎在“空白处理”方面有困难:

XSL-FO 属性支持表 (§7)

所以可能需要在 uicontrol 中为 text() 使用 <xsl:strip-space elements="uicontrol"> 加上 normalize-space() 函数。

以下是指定 <xsl:strip-space elements="uicontrol"> 时的结果

应用 xsl:strip-space 后

供您参考,Antenna House 将您的原始样式定义呈现如下:

AHF 渲染结果

希望这对您的发展有所帮助。

于 2016-11-18T02:43:34.690 回答