2016-03-07 2 views
0

Можно ли предотвратить разрывы строк внутри переносимых слов (содержимое XML) с помощью Antenna House Formatter? Я думал о решении с RegEx, но не знаю, возможно ли это с AHF.Форматирование AHF: предотвращение разрыва строки для дефисных слов

E.g. автор предлагает следующее: <paragraph>the film we are producing is a very low-budget one</paragraph>

В этом случае я хочу, чтобы держать слово «малобюджетный» вместе в строке (как это делает здесь, на StackOverflow). Но AHF отображает его как low- (1-я строка) и бюджет (2-я строка).

ответ

3

Там в несколько альтернатив:

  • Используйте hyphenate="false" выключить переносы (https://www.w3.org/TR/xsl11/#hyphenate). Поскольку false является его начальным значением, ваш вопрос подразумевает, что вы переносите перенос и хотите перевести другие слова.

  • Если у вас есть hyphenate="true", чтобы включить переносы, вы можете либо заменить - в существующих переносимых словах с &#x2011; (U + 2011, неразрывный дефис) или завернуть каждый дефис слово с fo:wrapper или fo:inline, который имеет hyphenate="false" ,

    Если вы хотите заменить все дефис на выходе с &#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).

+0

большие пальцы вверх для расширений AHF. спасибо - карта персонажей сделает трюк. – garlicDoge

Смежные вопросы