使用“fontspec”查找/选择 CM Bright 很困难

使用“fontspec”查找/选择 CM Bright 很困难

我正在尝试修改文档中的字体,以便普通文本出现在 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 MediumCMU Bright Medium Oblique

在此处输入图片描述

自从fontspec找不到这些字体,这意味着这些名称是错误的。如果你在FontForge,例如,您可以看到的实际字体名称CMU Bright MediumCMU 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只是告诉您,您正在加载的字体未设置为用于数学。因此,您不应该像在这里一样将它们用于数学。

相关内容