Следующий код
\documentclass{amsart}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{eulerpx,bm}
\begin{document}
$a<b\quad\bm{a<b}$
\end{document}
Предоставляет следующий вывод:
Символ неравенства не меняется, когда я использую, скажем, newpxmath
вместо этого. Проблема, похоже, действительно в eulerpx
пакете. Как это можно решить?
решение1
Не уверен, что именно это сломало, но я переопределил символьный шрифт и сделал его <
активным внутри \bm
.
Изолирует \begingroup...\endgroup
изменение кода catcode, при этом позволяя бинарным операторам внутри \bm
видеть то, что находится за пределами \bm
, что отображается в MWE как y\bm{-y}
.
\documentclass{amsart}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{eulerpx,bm}
\SetSymbolFont{letters}{bold} {U}{zeur}{m}{n}
\let\svbm\bm
\renewcommand\bm{\begingroup\catcode`<=\active \xbm}
\newcommand\xbm[1]{\svbm{#1}\endgroup}
\let\svlt<
{\catcode`<=\active \gdef<{\mathop{\mathrm{\svlt}}}}
\begin{document}
$a<b\quad\bm{a<b}\quad y\bm{-y}$
\end{document}
Чтобы применить этот подход к обоим <
отношениям >
, требуется совсем немного:
\documentclass{amsart}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{eulerpx,bm}
\SetSymbolFont{letters}{bold} {U}{zeur}{m}{n}
\let\svbm\bm
\renewcommand\bm{\begingroup%
\catcode`>=\active %
\catcode`<=\active %
\xbm}
\newcommand\xbm[1]{\svbm{#1}\endgroup}
\let\svlt<
\let\svgt>
{\catcode`>=\active
\gdef>{\mathop{\mathrm{\svgt}}}
\catcode`<=\active
\gdef<{\mathop{\mathrm{\svlt}}}}
\begin{document}
$a<b\quad\bm{a<>b}\quad y\bm{-y}$
\end{document}