|
Дело в том, что Unicode не занимается переносом слов, почему
и приходится полагаться на специфичные для конкретной программы
соглашения. TeX здесь по-своему логичен: если стоит явный знак переноса,
то и разбивать больше ничего не нужно.
Логичным было бы работать с русским дефисом (который входит в составные слова), так же как
и с тире, только коротким и без пробелов по бокам. :)
Впрочем, для XeTeX могу предложить еще одно решение: можно разрешить
разрыв после дефиса (исключая тем самым возникновение дополнительного
hyphenchar), если написать в преамбуле
\XeTeXinterchartokenstate=1
\XeTeXcharclass `\- 24
\XeTeXinterchartoks 24 0 = {\hskip\z@skip}
...
Я, правда, не уверен, что это заработает на Вашей системе, т. к.
именно с \XeTeXinterchartokenstate были связаны какие-то баги, которые
автор недавно чинил.
Работает :) И это решение мне очень нравится отсутствием в нём костылей. :)
А если добавить строчку
\XeTeXinterchartoks 0 24 = {\hskip\z@skip}
то и альтернативный hyphenchar не нужен.
Тут немного вынужден Вас поправить, должно быть
\XeTeXinterchartoks 0 24 = {\nobreak}
иначе разрыв строки будет появляться и ПЕРЕД дефисом, например
профессорско
-преподавательский
Для гуглящих - в конечном счете получилась такая преамбула: -----------------------
\documentclass[a4paper]{article}
\usepackage{amsmath,amssymb}
\usepackage[cm-default,no-math]{fontspec}
\usepackage{xltxtra}
\usepackage{polyglossia}
\setdefaultlanguage{russian}
\setotherlanguage{english}
\defaultfontfeatures{Mapping=tex-text} % чтобы работали стандартные сочетания символов ---, -- << >> и т.п.
\setmainfont{OldStandard-Regular}
\usepackage[pdftitle={Заголовок},
pdfauthor={Автор},
pdfsubject={Тема},
pdfkeywords={ключевые, слова},
pdfa=true,
colorlinks=true,
xetex]{hyperref}
\usepackage[square]{natbib}
\makeatletter
%%% Перенос составных слов
\XeTeXinterchartokenstate=1
\XeTeXcharclass `\- 24
\XeTeXinterchartoks 24 0 = {\hskip\z@skip}
\XeTeXinterchartoks 0 24 = {\nobreak}
%%% Число с точкой - в подписи библиографии.
\renewcommand{\@biblabel}[1]{#1.}
\makeatother %% Переопределения для Polyglossia (при необходимости)
%\gappto\captionsrussian{\renewcommand{\contentsname}{Cодержание}} % по умолчанию - "Оглавление"
%\gappto\captionsrussian{\renewcommand{\refname}{Список литературы}} % по умолчанию - "Примечания"
\begin{document}
проверка
\end{document}
---------------------------
Проверено на MiKTeX 2.7, версия XeTeX: 3.1415926-2.2-0.999.7 ()
Regards,
Alexey Kryukov <anagnost at yandex dot ru>
Moscow State University
Historical Faculty
Алексей, спасибо большое за помощь. :) Думаю, вопрос можно считать закрытым.
--
М. Филимонов,
ЯрГУ
|
|