如何使用 cmbright 仅显示希腊字母

如何使用 cmbright 仅显示希腊字母

我正在为我的文档使用 tgheros 和 sansmath 包。这会将文本字体更改为无衬线字体,并且所有支持的数学部分均会更改,这意味着希腊字母仍使用衬线排版。这是一个有效的最小示例:

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage{tgheros,sansmath}

\renewcommand{\familydefault}{\sfdefault}
\sansmath

\begin{document}
a                                  %a is sans-serif.
$$\alpha a$$                       %a is sans-serif, \alpha is not - I'd like it to be.
\end{document}

我只想将 cmbright 用于希腊字母,因为它足够接近,与其他无衬线数学符号看起来不错(这意味着仅导入 cmbright 包不起作用,因为它会改变所有数学符号的字体)。

我该如何处理这个问题?

我甚至很高兴这种情况不会自动发生,而不必使用类似于 \MakeThisCMBright{\alpha} 的命令手动将希腊字母设置为 cmbright。注意:我使用的是 pdftex。

答案1

在现代工具链中

如果您可以使用 LuaLaTeX 或 XeLaTeX,这将为您提供您请求的特定字体以及来自 Fira Math 的其他无衬线数学符号。

\documentclass{article}

\usepackage{unicode-math}
\defaultfontfeatures{Scale=MatchLowercase}

\setmainfont{TeX Gyre Heros}[Scale=1.0]
\setsansfont{TeX Gyre Heros}
\setmathfont{Fira Math}
\setmathfont{TeX Gyre Heros}[range=up/{Latin,latin,Num}]
\setmathfont{TeX Gyre Heros Italic}[range=it/{Latin,latin}]
\setmathfont{TeX Gyre Heros Bold}[range=bfup/{Latin,latin,Num}]
\setmathfont{TeX Gyre Heros Bold Italic}[range=bfit/{Latin,latin}]
\setmathfont{CMU Bright}[range=up/{Greek,greek}]
\setmathfont{CMU Bright Oblique}[range=it/{Greek,greek}]
\setmathfont{CMU Bright Bold}[range=bfup/{Greek,greek}]
\setmathfont{CMU Bright Bold Oblique}[range=bfit/{Greek,greek}]

\begin{document}
a
$\alpha a$
\end{document}

TeX Gyre Heroes + CMU Bright 样本

如果你真正想要的是一套一致的无衬线字体用于文本和数学,那么一个更简单的方法是

\usepackage[fira]{fontsetup}

请注意,这也仅适用于 LuaLaTeX 或 XeLaTeX。(而且我在写这个答案时就已经被打败了。)

使用旧字体

另一个框架挑战:如果您想要在整个文档中使用无衬线数学,而不是在衬线和无衬线数学版本之间切换,则使用无衬线数学包可能会获得更好的结果,例如sansmathfontsnewtxsf- 甚至cmbright- 并且不再觉得需要仅为希腊语使用 CM Bright。

如果您仍然这样做,您必须cmbr以 OML 编码的形式加载该系列作为数学字体,并重新定义所有希腊字母。该sansmath软件包破坏了这一点,但它可以与 一起使用sansmathfonts

\documentclass{article}

\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{sansmathfonts}
\usepackage{tgheros}
\renewcommand{\familydefault}{\sfdefault}
\usepackage[italic]{mathastext}

\DeclareSymbolFont{cmbright}{OML}{cmbr}{m}{it}
\SetSymbolFont{cmbright}{bold}{OML}{cmbr}{bx}{it}

\DeclareMathSymbol{\alpha}{\mathalpha}{cmbright}{"0B}
\DeclareMathSymbol{\beta}{\mathalpha}{cmbright}{"0C}
% etc.

\begin{document}
a
$\alpha a \boldsymbol{\alpha a}$
\end{document}

qhv + cmbr + sansmathfonts 示例

请注意,TeX Gyre Heros 和 Computer Modern Bright 的 x 高度不同。

您可以查找并手动输入七位 OML 编码中每个希腊字母的插槽,请记住,它重新使用了几个拉丁字母,例如 A、B、H 等作为希腊大写字母。

OMLcmbr.fd如果您确实想走这条路,那么这两个问题都可以通过复制和编辑大量样板文件(参见)来解决。

答案2

运行xelatex 或更好地运行lualatex

\documentclass{article}
\usepackage{firamath-otf}
\usepackage[default]{FiraSans}

\begin{document}
    a\textit{a}                                %a is sans-serif.
    $\alpha\beta a$                       %a is sans-serif.
\end{document}

在此处输入图片描述

相关内容