设置 mainfont 和 sansfont 会取消设置 CMU Bright 作为数学字体;如何修复?

设置 mainfont 和 sansfont 会取消设置 CMU Bright 作为数学字体;如何修复?

我希望能够使用自定义 TTF(News Gothic)作为整个文档中出现文本的主要字体,并使用 CMU Bright 作为数学字体。但\text在数学模式中应该使用 New Gothic。但是,尝试使用 News Gothic 作为主要字体会取消将 CMU 设置为数学字体,您可以在下图中看到 — 用 sinNews Gothic 书写, 也是ABC,但xe^{-x}使用的是 Computer Modern 而不是 CMU Bright。

这是示例文档。它是用 xelatex 编译的,尽管仅使用 luatex 的解决方案也可以;我不认为 pdflatex 可以处理这样的字体,但我希望是错的。任何可行的解决方案都是可以接受的。

\documentclass{article}

\usepackage{mathtools}
\usepackage{fontspec,unicode-math}

\usepackage{cmbright}
\usepackage[T1]{fontenc}

\setmainfont[
Path = /Applications/Microsoft PowerPoint.app/Contents/Resources/DFonts/,
Extension = .ttf,
BoldFont = News Gothic MT Bold,
ItalicFont = News Gothic MT Italic,
BoldItalicFont = News Gothic MT Bold Italic
]
{News Gothic MT}

\setsansfont[
Path = /Applications/Microsoft PowerPoint.app/Contents/Resources/DFonts/,
Extension = .ttf,
BoldFont = News Gothic MT Bold,
ItalicFont = News Gothic MT Italic,
BoldItalicFont = News Gothic MT Bold Italic
]
{News Gothic MT}

\begin{document}

\begin{center}
    This is math:
    \begin{align*}
        \int_{-\infty}^\infty \frac{\sin(x)e^{-x}}{x}\quad\textbf{\textit{ABC}}
    \end{align*}
\end{center}

\end{document}

结果:

在此处输入图片描述

如果我删除\setmainfont,则sin也会变成 Computer Modern。如果我删除\setsansfont,则正文字体和ABC都变成 CMU Bright(但sin仍为 News Gothic)。但我不知道会导致以下结果的组合:

  1. 正文字体 = News Gothic
  2. sin= News Gothic(可选;CMU Bright 也可以)
  3. \text数学模式 = News Gothic
  4. 数学模式中的数字、变量等 = CMU Bright

答案1

您想使用旧式数学字体,因此不要加载unicode-math。当然,也不要fontenc使用 T1 编码加载。

\documentclass{article}

\usepackage{mathtools}
\usepackage{fontspec}
\usepackage{cmbright}

%\usepackage[T1]{fontenc}% <--- don't

\setmainfont{News Gothic MT}[
  Path = /Applications/Microsoft PowerPoint.app/Contents/Resources/DFonts/,
  Extension = .ttf,
  ItalicFont = * Italic,
  BoldFont = * Bold,
  BoldItalicFont = * Bold Italic,
]

\setsansfont{News Gothic MT}[
  Path = /Applications/Microsoft PowerPoint.app/Contents/Resources/DFonts/,
  Extension = .ttf,
  ItalicFont = * Italic,
  BoldFont = * Bold,
  BoldItalicFont = * Bold Italic,
]

\begin{document}

This is math:
\begin{equation*}
\int_{-\infty}^\infty \frac{\sin(x)e^{-x}}{x}\quad\textbf{\textit{ABC}}+123
\end{equation*}

\end{document}

在此处输入图片描述

我们可以在 News Gothic 中通过稍微不同的序言来获取运营商名称:

\documentclass{article}

\usepackage{mathtools}
\usepackage{fontspec}
\usepackage{cmbright}

\setmainfont{News Gothic MT}[
  Path = /Applications/Microsoft PowerPoint.app/Contents/Resources/DFonts/,
  Extension = .ttf,
  ItalicFont = * Italic,
  BoldFont = * Bold,
  BoldItalicFont = * Bold Italic,
  NFSSFamily = ngmt,
]

\setsansfont{News Gothic MT}[
  Path = /Applications/Microsoft PowerPoint.app/Contents/Resources/DFonts/,
  Extension = .ttf,
  ItalicFont = * Italic,
  BoldFont = * Bold,
  BoldItalicFont = * Bold Italic,
]

\DeclareSymbolFont{operators}{TU}{ngmt}{m}{n}
\SetSymbolFont{operators}{bold}{TU}{ngmt}{b}{n}
\DeclareSymbolFont{cmbroperators}{OT1}{cmbr}{m}{n}

\makeatletter
\AtBeginDocument{\DeclareMathSymbol{\std@equal}{\mathrel}{cmbroperators}{`=}}
\makeatother


\begin{document}

\show\Relbar

This is math:
\begin{equation*}
\int_{-\infty}^\infty \frac{\sin(x)e^{-x}}{x}\quad\textbf{\textit{ABC}}+123
\end{equation*}

$\Longrightarrow\longrightarrow$

\end{document}

在此处输入图片描述

相关内容