Newtxmath 使用 siunitx 和 bm 的字体形状警告

Newtxmath 使用 siunitx 和 bm 的字体形状警告

我想将 newtxtext 和 newtxmath 字体与 siunitx 结合使用。我还需要粗体数学,因此我添加了 bm 包,如下所述: 使用 newtxmath 的无衬线粗体数学符号

现在我面临字体形状线警告:

LaTeX Font Warning: Font shape `OT1/ntxtlf/sb/n' undefined

有人知道解决办法吗?特别是哪些字符被替换了?

谢谢你!

梅威瑟:

\documentclass[12pt, a4paper, twoside]{book} 
\usepackage{newtxtext}
\usepackage[libertine, vvarbb]{newtxmath}
\usepackage{bm} %Bold math
\usepackage{siunitx}

\begin{document}     
Test
\end{document}

答案1

很抱歉这么晚才回复您。我刚刚在搜索另一个问题的重复项时看到了这个问题。

这个问题与 无关,siunitx并且(在 TeX Live 2019 上)如果您省略该包,它仍然会出现。正如 Ulrike Fischer 所暗示的那样,问题在于您newtxtextlibertine选项一起加载newtxmath。对于粗体直立字母(例如大写希腊字母),这会导致包寻找基于 Times 的文本字体的半粗体粗细,但该字体并不存在(newtxlf/sb/n是带有衬线数字、半粗体粗细、直立形状的 New Times)。

要解决此问题,请将libertine包加载为文本字体。您应该为其提供semibold匹配粗体数学的选项。

\documentclass[12pt, a4paper, twoside]{book} 
\usepackage[lining, semibold, type1]{libertine}
\usepackage[T1]{fontenc}
\usepackage[libertine, vvarbb]{newtxmath}
\usepackage{bm} %Bold math
\usepackage{siunitx}

\begin{document}     
Test
\end{document}

我加载了libertine阻止type1该包fontspec在 LuaLaTeX 或 XeLaTeX 上加载的选项。虽然还有其他解决方法,但这主要是为了让直立的大写希腊字母(例如)\Delta仍能正常工作。旧版包(例如)newtxmath在 7 位 OT1 编码中查找它们。

在现代工具链中,使用 LuaLaTeX 和 XeLaTeX,您可以加载libertinus以使用 Libertinus Math 字体,或者unicode-math后跟\setmathfont{Libertinus Math}

相关内容