![当主语言使用西里尔字母时使用 Courier New 字体](https://linux22.com/image/373544/%E5%BD%93%E4%B8%BB%E8%AF%AD%E8%A8%80%E4%BD%BF%E7%94%A8%E8%A5%BF%E9%87%8C%E5%B0%94%E5%AD%97%E6%AF%8D%E6%97%B6%E4%BD%BF%E7%94%A8%20Courier%20New%20%E5%AD%97%E4%BD%93%20.png)
如果我将使用西里尔字母的语言设置为默认语言,则无法使用字体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}