\ThisStyle、\SavedStyle 和 \bm

\ThisStyle、\SavedStyle 和 \bm

我认为这是如何捕捉当前的数学风格?

在此 MWE 中,\bm{\testbox}在之后使用时有效\testbox。但它本身不起作用(注释行):

\documentclass{article}
\usepackage{scalerel,bm}
\newcommand{\testbox}{\ThisStyle{\mbox{$\SavedStyle X$}}}
\begin{document}
    $\testbox \bm{\testbox}$
%   $\bm{\testbox}$
\end{document}

错误是:

! Undefined control sequence.
\ThisStyle #1->\ifmmode \def \@mmode 
                                     {T}\mathchoice {\edef \m@switch {D}\LMe...
l.6     $\bm{\testbox}

我究竟做错了什么?

编辑:我发现这是有效的:

    $\ThisStyle{\@gobble\SavedStyle} \bm{\testbox}$

但我不知道为什么:)

答案1

在这个广受好评的答案中,\bm 包与 \boldsymbolPhilippe 指出,有时由于方式的\bm定义,它需要在其参数周围添加一组额外的括号。因此,

\documentclass{article}
\usepackage{scalerel,bm}
\newcommand{\testbox}{\ThisStyle{\mbox{$\SavedStyle X$}}}
\begin{document}
    $\testbox \bm{\testbox}$
    $\scriptstyle\bm{{\testbox}}$
\end{document}

产生所需的结果。

在此处输入图片描述

相关内容