使用 \usepackage[libertine]{newtxmath} 进行加粗数学运算

使用 \usepackage[libertine]{newtxmath} 进行加粗数学运算

我不确定为什么当我尝试使用 \usepackage[libertine]{newtxmath} 并有一个带有粗体符号的方程式时会出现此消息:

字体形状改为OT1/txr/sb/n' undefined(Font) usingOT1/txr/m/n'

这有什么问题吗?我该怎么做才能解决这个问题?

谢谢你!

答案1

根据文档,在所有数学包之后加载bm以获得粗体数学,并使用\bm。该包还支持在数学模式下使用粗体直立文本。这似乎是由设置的\mathbf方式造成的。bm\mathbf

以下是对手册中的一个示例的稍微修改:

\usepackage[lining,semibold,type1]{libertine} % a bit lighter than Times--no osf in math
\usepackage[T1]{fontenc} % best for Western European languages
\usepackage{textcomp} % required to get special symbols
\usepackage[varqu,varl]{inconsolata}% a typewriter font must be defined
\usepackage[libertine,vvarbb]{newtxmath}
\usepackage[scr=rsfso]{mathalfa}
\usepackage{bm}% load after all math to give access to bold math

我添加了type1选项以libertine防止包在fontspecLuaLaTeX 或 XeLaTeX 上加载 Unicode 字体。您可以在bm使用fontspec的定义之后加载它\mathbf,但这样直立的大写希腊字母就会中断,因为newtx会查找七位 OT1 编码中的字母。还有其他解决方法,但这是最简单的。

在现代工具链中,您可以改为加载\usepackage{libertinus}以获取 Libertinus Math 字体,或unicode-math后跟\setmathfont{Libertinus Math}。这将启用旧版\mathbf(用于加粗单词)和新命令\symbfup\symbfit用于字母和数字。您仍然可以使用\boldsymbol\boldmath\mathversion{bold}从 Libertinus Math Bold 获取符号。(您可以感谢 Khaled Hosny 成为唯一制作粗体 OpenType 数学字体的字体设计师之一。)

相关内容