
Загрузка Polyglossia каким-то образом отключает команду, \.{S}
но не влияет на другие, например \.{R}
и \.{G}
. Это странно, может кто-нибудь подумать, почему это происходит и что сделать, чтобы \.{S}
снова начать работать? Я создаю документ с помощью XeLatex.
МВЭ:
\documentclass{book}
\usepackage{polyglossia} % This will prevent \.{S} from working.
\begin{document}
\.{S}
\.{R}
\end{document}
решение1
Пакет polyglossia
на самом деле не задействован и его fontspec
достаточно для воспроизведения проблемы (он загружается polyglossia
).
В шрифте Latin Modern, используемом по умолчанию, по-видимому, есть ошибка с размещением точки над буквой S.
Простым решением может быть
\documentclass{book}
\usepackage{fontspec}
\DeclareTextCompositeCommand{\.}{TU}{S}{\accent"02D9 S}
\begin{document}
\.{S}
\.{R}
\end{document}
Может быть лучше:
\documentclass{book}
\usepackage{fontspec}
\DeclareTextCompositeCommand{\.}{TU}{S}{\mydottedS}
\newcommand{\mydottedS}{%
\leavevmode\vbox{%
\offinterlineskip
\halign{\hfil##\hfil\cr\char"02D9\cr\noalign{\kern-1.15ex}S\cr}%
}%
}
\begin{document}
\.{S}
\.{R}
\end{document}
Другие шрифты не страдают от этой проблемы. Например, CMU Serif:
\documentclass{book}
\usepackage{fontspec}
\setmainfont{CMU Serif}
\begin{document}
\.{S}
\.{R}
\end{document}