如何使用拉丁现代字体中粗体的单个数学符号?

如何使用拉丁现代字体中粗体的单个数学符号?

我在 TeXLive 的 pdflatex 中使用newtxnewtxmath,但我想使用\mathcal{O}拉丁现代符号。以下这个答案,我可以访问中期版本。在序言中,我添加了

 \DeclareSymbolFont{LMletters}{OMS}{lmsy}{m}{n}
 \DeclareMathSymbol{\lmO}{\mathbin}{LMletters}{79}

然后在文档中,我可以使用例如$\lmO (N^{2})$

但我也想使用该符号的粗体版本。最好它应该自动与 配合使用\bm,但如果这太难,我不介意只为其创建一个宏,例如\lmBO。然而,以下尝试

  \DeclareSymbolFont{LMBletters}{OMS}{lmbsy}{b}{n}

返回警告

   LaTeX Font Warning: Font shape `OMS/lmbsy/b/n' undefined
   (Font)              using `OMS/cmsy/m/n' instead on input line 30.

请注意\fonttable{lmbsy10},在我的系统上,确实会打印出所有预期的符号,包括粗体的数学符号 O。

如何从 Latin Modern 访问粗体数学 O(同时用于newtxmath所有其他数学)?如果可能,如何使此 Latim Modern 数学 O 与之配合使用\bm

答案1

用于\SetSymbolFont声明数学版本的字体bold

\documentclass{article}
\usepackage{amsmath}
\usepackage{newtxtext, newtxmath}

\DeclareSymbolFont{LMletters}{OMS}{lmsy}{m}{n}
\SetSymbolFont{LMletters}{bold}{OMS}{lmsy}{b}{n}
\DeclareMathSymbol{\mscrO}{\mathalpha}{LMletters}{79}

\begin{document}
\[ O \quad \mathcal{O} \quad \mscrO \quad \boldsymbol{\mscrO}
\]
\end{document}

拉丁现代 + NewTx 样本

您也可以\newcommand\mbfscrO{\boldsymbol{\mscrO}}为了方便和兼容性而声明。我不确定是否故意给这个符号加上二元运算符的间距,但如果是的话,您可以轻松将其改回来。您可以\usepackage{bm}在所有其他数学命令之后选择声明。

在 中,您可以使用选项覆盖和的unicode-math此符号,因此:\mathcal\mathbfcalrange=\setmathfont

\setmathfont{TeX Gyre Termes Math}[Scale=MatchUppercase]
\setmathfont{Latin Modern Math}[Scale=MatchUppercase,
                                range={\mscrO,\mbfscrO}]

然后您可以使用\mbfscrO\mathbfcal{O}和一些其他同义词。

相关内容