在数学模式下取消粗体 \boldsymbol?

在数学模式下取消粗体 \boldsymbol?

我想创建一个command从数学模式中的粗体符号中获取非粗体字符。

例如,在我的设置中,每个向量都采用粗体字体,$\boldsymbol{x}$而我想要创建的命令\coef{\boldsymbol{x}}{i}用于写入此向量的第 i 个系数,结果应为$x_i$正常字体。我希望能够将其用于任何向量(均为粗体符号)。

我尝试了$\mathnormal$代码中显示的命令,但它没有任何反应。

那么,在数学模式下,是否可以取消粗体符号的粗体显示?


\documentclass[12pt,a4paper]{letter}
\usepackage[latin1]{inputenc}
\usepackage{amsmath,amsfonts,amssymb}

\newcommand{\x}{\boldsymbol{x}}
\newcommand{\coef}[2]{\mathnormal{#1}_{#2}}

\begin{document}
The vector $\x$ and its coefficients $\coef{\x}{i}$.
\end{document}

答案1

\boldsymbol仍在里面\mathnormal,因此的设置\mathnormal被 覆盖\boldsymbol。解决这个问题的一种方法是重新定义\boldsymbol里面\coef

\documentclass[12pt,a4paper]{letter}
\usepackage[latin1]{inputenc}
\usepackage{amsmath,amsfonts,amssymb}

\newcommand{\x}{\boldsymbol{x}}
\newcommand{\coef}[2]{%
  \begingroup
    \renewcommand*{\boldsymbol}[1]{##1}%
    #1_{#2}%
  \endgroup
}

\begin{document}
The vector $\x$ and its coeficients $\coef{\x}{i}$.
\end{document}

结果

答案2

Heiko 方法的一个变体;我还使用,它具有(也可以称为)bm的更好实现。在其他情况下,您也可以通过简单地设置(在组中) 更轻松地禁用它。\boldsymbol\bm\ifcoef\boldsymbol\coeftrue

\documentclass[12pt,a4paper]{article}

\usepackage{amsmath,amssymb,bm}

\newif\ifcoef
\newcommand{\bvec}[1]{%
  \ifcoef #1\else\bm{#1}\fi
}
\newcommand{\coef}[2]{%
  \begingroup
  \coeftrue
    {#1}_{#2}%
  \endgroup
}

\newcommand{\x}{\bvec{x}}

\begin{document}
The vector $\x$ and its coefficients $\coef{\x}{i}$.

The vector $\bvec{\Gamma}$ and its coefficients
$\coef{\bvec{\Gamma}}{i}$

\end{document}

在此处输入图片描述

相关内容