polyglossia は \.{S} と競合しますが、\.{R} とは競合しません。

polyglossia は \.{S} と競合しますが、\.{R} とは競合しません。

Polyglossia をロードすると、何らかの理由で コマンドが無効になりますが、や\.{S}などの他のコマンドには影響しません。これは奇妙です。なぜこのようなことが起こるのか、また、再び機能させるにはどうすればよいのか、誰か考えられますか? 私は XeLatex を使用してドキュメントを作成しています。\.{R}\.{G}\.{S}

MWE:

\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}

ここに画像の説明を入力してください

関連情報