示例文件:
\documentclass{article}
\usepackage{fontspec}
\setmainfont[Mapping=tex-text]{Ubuntu}
\usepackage{polyglossia}
\setmainlanguage{russian}
\usepackage{keystroke}
\begin{document}
\keystroke{Q}
\end{document}
错误(运行时xelatex test.tex
):
! Package polyglossia Error:
The current roman font does not contain the Cyrillic script!
Please define \cyrillicfont with \newfontfamily.
See the polyglossia package documentation for explanation.
Type H <return> for immediate help.
...
l.8 \keystroke{Q}
当我使用 TeXLive 2009 编译时,同一个文件运行正常。哪里出了问题?
答案1
不幸的是,错误消息没有提供太多信息。该keystroke
包使用无衬线字体进行绘图。
在某些情况下,Polyglossia 无法提取字体支持的脚本信息,因此您必须帮助它。但首先,您必须设置无衬线字体。这是 Linux Libertine 和 Biolinum 的版本(我没有 Ubuntu):
\documentclass{article}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\setsansfont[Ligatures=TeX]{Linux Biolinum O}
\usepackage{polyglossia}
\setmainlanguage{russian}
\usepackage{keystroke}
\begin{document}
\keystroke{Q}
\end{document}
尝试
\setsansfont[Ligatures=TeX]{Ubuntu}
如果该消息仍然存在,请添加
\newfontfamily{\cyrillicfontsf}[Ligatures=TeX]{Ubuntu}