以下有两个示例:
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}