我不确定为什么当我尝试使用 \usepackage[libertine]{newtxmath} 并有一个带有粗体符号的方程式时会出现此消息:
字体形状改为OT1/txr/sb/n' undefined(Font) using
OT1/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
防止包在fontspec
LuaLaTeX 或 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 数学字体的字体设计师之一。)