如何使 \mathbf 等字体命令不适用于数字

如何使 \mathbf 等字体命令不适用于数字

我有一个宏,它接受一个参数并将其加粗(此外还有一些其他内容)。但我希望它不要将数字加粗。

例如,我现在有的是

\newcommand{\mybold}{\mathbf}

\mybold{R^2}给出

在此处输入图片描述

但我想要的是\mybold{R^2}给予

在此处输入图片描述

其中“2”未加粗。

我怎样才能做到这一点?

答案1

(本地)更改数字的数学代码。

\documentclass{article}

\newcommand{\mybold}[1]{\mathbf{\fixnumbers\relax#1}}
\newcommand{\fixnumbers}{%
  \fixnumber{0}%
  \fixnumber{1}%
  \fixnumber{2}%
  \fixnumber{3}%
  \fixnumber{4}%
  \fixnumber{5}%
  \fixnumber{6}%
  \fixnumber{7}%
  \fixnumber{8}%
  \fixnumber{9}%
}
\newcommand{\fixnumber}[1]{\mathcode`#1=\numexpr\mathcode`#1-"7000\relax}

\begin{document}
$\mybold{R^2}+2-\mathbf{3}$
\end{document}

在此处输入图片描述

答案2

使用xelatex或运行lualatex

   \documentclass{article}
    \usepackage{unicode-math}
    \setmathfont{xits-math.otf}
    \setmathfont{xits-mathbold.otf}[version=mybold,range={"0020-"002A,"003A-"FFFF}]
    \newcommand\mybold[1]{{\mathversion{mybold}#1}}
    \begin{document}
        $\mybold{R^2}+2-\mathbf{3}$
    \end{document}

在此处输入图片描述

必须R\mathit。但是,如果你不喜欢,你可以将其更改为\mathup

相关内容