我正在尝试修改文档中的字体,以便普通文本出现在 Calluna 中,而数学数字出现在 Computer Modern Bright 中。
我的序言大致如下:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{ifxetex}
\ifxetex
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{Calluna}
\setmathfont{Asana Math}
%\setmathfont[range=\mathup]{CMU Bright Medium}
%\setmathfont[range=\mathbfup]{CMU Bright SemiBold}
%\setmathfont[range=\mathbfit]{CMU Bright SemiBold}
%\setmathfont[range=\mathit]{CMU Bright Medium Oblique}
\else
\usepackage[T1]{fontenc}
\usepackage{cmbright}
\fi
我已经到了这个阶段,在看完此网站上的其他示例这似乎对其他人有用。
所有\setmathfont
命令都被注释掉了,因为它们给了我一个错误“font-not-found”。目前,Asana Math 可以工作(出于某种原因)。其他字体(如 Latin Modern Math)则不行。
Calluna 是我的系统字体之一,运行良好。
我该如何将数学字体设置为 CM Bright?另外,该包到底有什么用unicode-math
?
答案1
如果您检查中的字体文件Windows Explorer
,您确实会看到字体被称为CMU Bright Medium
和CMU Bright Medium Oblique
。
自从fontspec
找不到这些字体,这意味着这些名称是错误的。如果你在FontForge,例如,您可以看到的实际字体名称CMU Bright Medium
是CMU Bright Roman
。
我不知道为什么 Windows 的想法不同。现在,如果您使用真实的字体名称,fontspec
则会找到它们并加载它们。
\documentclass{article}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{Linux Libertine O}
\setmathfont[range=\mathup]{CMU Bright Roman}
\setmathfont[range=\mathbfup]{CMU Bright SemiBold}
\setmathfont[range=\mathbfit]{CMU Bright SemiBold}
\setmathfont[range=\mathit]{CMU Bright Oblique}
\begin{document}
1234567890
\end{document}
这解决了您的问题,即fontspec
无法找到CMU Bright
字体。现在,您会注意到,如果您编译MWE
上述内容,会fontspec
向您发出一些警告,如下所示:
*************************************************
* fontspec warning: "script-not-exist-latn"
*
* Font 'CMU Bright Roman' does not contain script 'Math'.
* 'Latin' script used instead.
*************************************************
这些是警告,不是错误。据我所知,fontspec
只是告诉您,您正在加载的字体未设置为用于数学。因此,您不应该像在这里一样将它们用于数学。