如果我将使用西里尔字母的语言设置为默认语言,则无法使用字体Courier New
。
\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{russian}
\setmonofont{Courier New}
\newfontfamily\cyrillicfont{Courier New}
\begin{document}
\texttt{русский язык}
\end{document}
编译器抱怨:! Package polyglossia Error: The current roman font does not contain the Cyrillic script! (polyglossia) Please define \cyrillicfont with \newfontfamily.
但是,正如您所见,Courier New
是用 定义的\newfontfamily\cyrillicfont{Courier New}
。
我使用 XeLaTeX 进行编译。
编辑:polyglossia
需要包。
答案1
polyglossia
对字体中的脚本非常严格。因此,如果字体没有定义西里尔脚本,则不允许您使用它。特别是对于 Courier New:
% otfinfo -s Courier_New.ttf
arab Arabic
arab.URD Arabic/Urdu
hebr Hebrew
latn Latin
latn.LTH Latin/Lithuanian
latn.ROM Latin/Romanian
babel
另一方面,它不关心脚本,它只需要西里尔字符到位。以下代码运行良好:
\documentclass{article}
\usepackage{fontspec}
\usepackage[russian]{babel}
\setmonofont{Courier New}
\begin{document}
\texttt{русский язык}
\end{document}
答案2
使用\newfontfamily\cyrillicfonttt{Courier New}
。
\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{russian}
\setmainfont{Arial}
\newfontfamily\cyrillicfont{Arial}
\setmonofont{Courier New}
\newfontfamily\cyrillicfonttt{Courier New}
\begin{document}
\texttt{русский язык}
\end{document}