Удалите пробелы во встроенном элементе FOP

Я не могу удалить пробелы внутри встроенных элементов в FOP с помощью DITA-OT PDF2. Это мой фрагмент кода:

<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>

Все красные пробелы должны быть удалены. Где моя ошибка?

1 ответ

Решение

FOP, похоже, испытывает трудности в "обработке пустого пространства":

Таблица поддержки свойств XSL-FO (§7)

Поэтому может потребоваться использовать плюс функцию normalize-space() для text() в uicontrol.

Ниже приведен результат при указании

После применения xsl: strip-space

Для справки, "Антенна Хаус" отображает оригинальное определение стиля следующим образом:

AHF результат рендеринга

Надеюсь, это поможет вашему развитию.

Другие вопросы по тегам