stmaryrd 和 boldsymbol:避免警告

stmaryrd 和 boldsymbol:避免警告

以下有两个示例:

1

\documentclass[a4paper,10pt]{article}
\usepackage{amsmath}
\begin{document}
    $\boldsymbol x$
\end{document}

2

\documentclass[a4paper,10pt]{article}
\usepackage{amsmath}
\usepackage{stmaryrd}
\begin{document}
    $\boldsymbol x$
\end{document}

据我所知,两个版本在编译时都会产生相同的输出pdflatex:有一个粗体斜体“x”。

但是,当我编译文档 2 时,还收到以下警告:

LaTeX Font Warning: Font shape `U/stmry/b/n' undefined
(Font)              using `U/stmry/m/n' instead on input line ….

为什么我会收到此警告(这似乎表明 Latex不是能够找到正确的字体)但输出正确吗?

我该如何避免这个警告?我的文档中需要以下两项内容:

  • 大胆的普通数学符号的版本(我可以轻松生成而不需要stmaryrd
  • 常规的一些符号的版本仅在stmaryrd

答案1

内部\boldsymbol有效地使用,\boldmath因此设置了整个粗体数学设置,无论符号实际上以粗体使用,因此您会收到此警告。

silence包提供了一个用于过滤各种 LaTeX 消息的接口,因此您可以过滤掉这些消息,或者在这种情况下,stmaryrd用途

\SetSymbolFont{stmry}{bold}{U}{stmry}{b}{n}
                                     %%%

声明粗体数学版本应使用粗体字体(由于不存在,因此从未声明过)。

因此,另一种方法是告诉 LaTeX 在粗体版本中使用普通字体。

我没有收到任何关于此的警告:

\documentclass[a4paper,10pt]{article}
\usepackage{amsmath}

\usepackage{stmaryrd}
\SetSymbolFont{stmry}{bold}{U}{stmry}{m}{n}
                                     %%%
\begin{document}


aa
    $\boldsymbol{x}$
\end{document}

相关内容