这是一个最小的工作示例:
\documentclass[a4paper]{article}
\usepackage{fontspec}
\setmainfont{CMU Serif}
\setsansfont{CMU Sans Serif}
\setmonofont{CMU Typewriter Text}
\newfontfamily{\cyrillicfonttt}{CMU Typewriter Text}
\usepackage{polyglossia}
% \setmainlanguage{ukrainian}
\usepackage{algorithm2e}
\begin{document}
\begin{algorithm}
\SetKwData{Left}{left}
\SetKwData{Right}{right}
\SetKwFunction{Swap}{Swap}
\For{$i \leftarrow 0$ \KwTo $n$}{
\If{$\Left_i > 0$ {\bf and} $\Right_i > 0$}{
\Swap{$\Left_i$, $\Right_i$}\;
}
}
\end{algorithm}
\end{document}
此代码产生以下输出:
现在,如果我取消注释该\setmainlanguage{ukrainian}
行,输出会略有变化:
如您所见,此处关键字to
、and
和参数left
和right
被强调。这其实不是什么大问题,但仍然困扰着我,这里的斜体字体似乎不合适。俄语和保加利亚语也会出现同样的结果,例如使用西里尔字母的语言。是什么导致了这种情况?我将非常感谢任何建议。