使用 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}

相關內容