为什么 newtxsf 没有将所有数学符号排版为无衬线字体?

为什么 newtxsf 没有将所有数学符号排版为无衬线字体?

我正在寻找一款不错的无衬线数学字体Fira Sans幻灯片。我读了不同的建议这个帖子并被发现newtxsf是最合适的包装。事实上,它在小写希腊字母上看起来很漂亮,但出于某种原因,大写希腊字母和数字仍然以衬线字体排版。

我做错了什么?为什么无衬线数学包不newtxsf改变大写希腊字母和数字的形状?

\documentclass{beamer}

\usepackage{fontspec}
\usepackage{amsmath}
\setsansfont{Fira Sans}
\setmathrm{Fira Sans}
\setmathsf{Fira Sans}
\setmathtt{Fira Sans}
\usepackage{newtxsf}

\begin{document}
\frame{
Numbers outside of math mode: 12345.

Number in math mode: $12345$.

Capital letters in math mode: $AB\Gamma\Delta$.

Small letters in math mode: $\alpha\beta\gamma\delta$.}
\end{document}

小写字母采用无衬线字体,大写字母采用衬线字体。

答案1

我必须承认,我不理解文档序言中说明背后的逻辑。以下更简单的设置似乎可以正常工作:

\usepackage[no-math]{fontspec}
\setsansfont{Fira Sans}
\setmonofont{Fira Mono} % optional
\usepackage{newtxsf}

完整的 MWE (最小工作示例):

在此处输入图片描述

附言:如果你想倾斜的而不是直立的大写希腊字母,使用newtxsf选项slantedGreek. (uprightGreek默认)加载。另一方面,如果你想要小写要使用直立字形呈现大写希腊字母,请newtxsf使用选项加载包frenchmath

\documentclass{beamer}
% \usepackage{amsmath} % is loaded automatically by 'beamer'
\usepackage[no-math]{fontspec}
\setsansfont{Fira Sans}
\usepackage{newtxsf}

\begin{document}
\begin{frame}
Numbers, text mode: 12345

Numbers, math mode: $12345$

Uppercase greek letters, math mode: $\Gamma\Delta\Psi\Omega$

Lowercase greek letters, math mode: $\gamma\delta\psi\omega$
\end{frame}
\end{document}

答案2

我建议费拉数学字体。它显然与Fira Sans。这是一个例子(对我来说它可以工作,但由于某种原因lualatex不能工作)xelatex

\documentclass{beamer}

\usepackage{fontspec}
\usepackage{amsmath}
\setmainfont{Fira Sans}
\setsansfont{Fira Sans}
\usepackage{unicode-math}
\setmathfont{Fira Math}

\begin{document}
\frame{
Numbers outside of math mode: 12345.

Number in math mode: $12345$.

Capital letters in math mode: $AB\Gamma\Delta$.

Small letters in math mode: $\alpha\beta\gamma\delta$.

Formula:
\[
  \int_0^1\frac{dx}{1+x^2}=\lim_{n\to\infty}\sum_{i=1}^n\frac{1}{1+(i/n)^2}.
\]
}
\end{document}

在此处输入图片描述

相关内容