[oodisc] Автоматический перенос слов.
Alexej Kryukov
akrioukov на newmail.ru
Ср Мар 23 11:56:34 MSK 2005
On Tuesday 22 March 2005 21:22, Nikolay Karelin wrote:
> Hello Alexej,
>
> Пример можно?
>
> Вроде, по словам Кнута (The TeXbook), алгоритм переносов
> специально заточен, чтоб одну букву не отрывать
Не наговаривайте на Кнута. Жестко прошивать такое в алгоритм
было бы недопустимо, т. к. есть языки, в которых подобный перенос
вполне возможен, если, конечно, эта буква составляет отдельный
слог. На самом деле в TeX этим делом управляют параметры \lefthyphenmin
и \righthyphenmin (в OOo, по-моему, они и впрямь не настраиваются),
но они не спасают от кривизны реализации таблицы переносов.
Представим, например, что в начале слова будет кавычка: вот и
окажется, что там уже не один символ, а два. В стандартном
LaTeX это не страшно, поскольку кавычкам не присвоены коды, которые
позволяли бы их считать за нормальные символы, но Омега у меня
однажды сделала перенос <<И-исус>>. И ровно тот же эффект мы
получаем в OOo. Попробуйте, например:
Sub TestHyphen
Dim aHyphLocale As new com.sun.star.lang.Locale
Dim aProps As new com.sun.star.beans.PropertyValue
Dim aArg (0)
aArg (0) = aProps
sWord = "<<Иисус>>"
oHyphenator = CreateUnoService ("com.sun.star.linguistic2.Hyphenator")
aHyphLocale.Language = "ru"
aHyphLocale.Country = "RU"
oHyphens = oHyphenator.createPossibleHyphens (sWord, aHyphLocale, _
aArg ())
MsgBox oHyphens.getPossibleHyphens
End Sub
Еще хороший пример (хотя и в другом роде) -- слово "Брэк" (так звали
персонажа в одном художественном произведении. Здесь и LaTeX срабатывает
ничуть не лучше: сравните, какой результат дает \showhyphens{Брэк}.
А еще говорят, что у кого-то когда-то компьютер сделал перенос в
слове God ;-)))
--
Regards,
Alexej Kryukov <akrioukov at newmail dot ru>
Moscow State University
Historical Faculty
Подробная информация о списке рассылки Oo-discuss