|
On Tue, 03 Feb 2009 10:52:24 +0300
Mikhail Filimonov wrote:
> Не знаю, на мой взгляд это не верный путь. Мне кажется переносы
> составных слов должны работать и при выключенной табличке tex-text,
Просто tex-text для того и придуман, чтобы воспроизводить традиционные
для TeX псевдолигатуры, которым в юникодовых шрифтах нет места.
> и кроме того это отход от философии Unicode, который сам свои
> лигатуры должен знать.
Дело в том, что Unicode не занимается переносом слов, почему
и приходится полагаться на специфичные для конкретной программы
соглашения. TeX здесь по-своему логичен: если стоит явный знак переноса,
то и разбивать больше ничего не нужно. А если знаку переноса присвоен
ненулевой lccode, то, значит, это уже не перенос, а буква, и при
возникновении разрыва после него надо вставлять второй перенос.
Поскольку не совсем понятно, как изменить это умолчание приемлемым для
всех способом, то и приходится прибегать к костылям.
Впрочем, для XeTeX могу предложить еще одно решение: можно разрешить
разрыв после дефиса (исключая тем самым возникновение дополнительного
hyphenchar), если написать в преамбуле
\XeTeXinterchartokenstate=1
\XeTeXcharclass `\- 24
\XeTeXinterchartoks 24 0 = {\hskip\z@skip}
А если добавить строчку
\XeTeXinterchartoks 0 24 = {\hskip\z@skip}
то и альтернативный hyphenchar не нужен.
Я, правда, не уверен, что это заработает на Вашей системе, т. к.
именно с \XeTeXinterchartokenstate были связаны какие-то баги, которые
автор недавно чинил.
> Гм, действительно - сейчас и без них работает. Раньше сталкивался с
> какими-то проблемами
> при компиляции без них, возможно что-то поправили в последних версиях
> MikTeX.
Это было нужно для Бабеля. Если его не грузить, то и inputenc и всё
с ним связанное ни к чему.
--
Regards,
Alexey Kryukov <anagnost at yandex dot ru>
Moscow State University
Historical Faculty
|
|