Использование символов изменения пакета bm

Использование символов изменения пакета bm

Следующий код

\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}

Связанный контент