加载 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
)。
默认使用的拉丁现代字体似乎在 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}