AHF 格式化程序:防止带连字符的单词换行

AHF Formatter: Prevent line-break for hyphenated words

是否可以使用 Antenna House Formatter 防止连字符内的换行符(XML 内容)?我想到了使用 RegEx 的解决方案,但不知道 AHF 是否可行。

例如作者提供以下内容:<paragraph>the film we are producing is a very low-budget one</paragraph>

在这种情况下,我想将“low-budget”这个词放在一起(就像它在 Whosebug 上所做的那样)。但是 AHF 将其显示为 low-(第一行)和 budget(第二行)。

有多种选择:

  • 使用 hyphenate="false" 关闭断字 (https://www.w3.org/TR/xsl11/#hyphenate)。由于 false 是它的初始值,您的问题暗示您已打开断字功能并且确实想对其他单词进行断字。

  • 如果您确实有 hyphenate="true" 启用连字符,您可以将现有连字符中的 - 替换为 &#x2011;(U+2011,NON -BREAKING HYPHEN) 或用 fo:wrapperfo:inline 包含 hyphenate="false".

    的每个带连字符的单词

    如果要将输出中的 all 连字符替换为 &#x2011;,可以在 XSLT (https://www.w3.org/TR/xslt20/#character-maps) 中使用字符映射,否则您可以按照您的建议有选择地使用 replace() 替换字符。

    如果您使用 &#x2011; 并且不希望连字词在其他点连字符,您可能还想通过使用 axf:hyphenate-hyphenated-word="false" (https://www.antennahouse.com/product/ahf63/ahf-ext.html#axf.hyphenate-hyphenated-word) 来停止它。