
Вот два примера:
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 ….
Почему я получаю это предупреждение (которое, по-видимому, предполагает, что латекс былнет(могу ли я найти нужный шрифт), но правильный ли вывод?
Как избежать предупреждения? Мне нужно, чтобы в моем документе было следующее:
- смелыйверсии обычных математических символов (то, что я могу легко воспроизвести без
stmaryrd
) - обычныйверсии некоторых символов, которые представлены только в
stmaryrd
решение1
Внутренне \boldsymbol
эффективно использует \boldmath
so устанавливает целую жирную математическую настройку, независимо от того, какие символы фактически используются жирным шрифтом, поэтому вы получаете это предупреждение.
Thesilence
пакет предоставляет интерфейс для фильтрации различных сообщений 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}