多语与 \.{S} 冲突,但与 \.{R} 不冲突

多语与 \.{S} 冲突,但与 \.{R} 不冲突

加载 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}

在此处输入图片描述

相关内容