textbf 中的命令

textbf 中的命令

我正在为我的数学课创建一个小公式表。由于我将使用大量与矢量相关的内容,我定义并重新定义了一些命令以满足我的需求。下面是一些命令

\renewcommand{\vec}[1]{\textbf{#1}} %Vector
\newcommand{\scalar}[2]{\langle \vec{#1},\vec{#2} \rangle} %Scalar
\newcommand{\crossp}[2]{\vec{#1} \times \vec{#2}} %Crossproduct

问题是使用以下代码会导致奇怪的行为,我无法理解并且无法找到任何帮助。

\begin{equation}
        V = \scalar{u}{\crossp{v}{w}}
\end{equation}

上述代码的输出

我也尝试过\textbf{...}直接使用,而不使用 vec 函数。我知道这\vec基本上已经过时了,但我使用它是为了在阅读代码时看到哪些是粗体文本,哪些是向量。问题也不是由两次应用 vec 引起的,因为我也尝试过简单的插入v \times w,它会产生完全相同的行为。

有人能解释为什么会发生这种情况并提出解决办法吗?

提前致谢。Mike

答案1

解决方法很简单:使用\mathbf而不是\textbf

\renewcommand{\vec}[1]{\mathbf{#1}}

您的代码产生错误,其中第一个是

! Missing $ inserted.
<inserted text> 
                $
l.10         V = \scalar{u}{\crossp{v}{w}}

因为\textbf进入文本模式。

即使这个问题可以解决,你也会遇到如下真正的麻烦:

\documentclass{article}
\usepackage{amsmath}

\newtheorem{theorem}{Theorem}

\renewcommand{\vec}[1]{\textbf{#1}} %Vector

\begin{document}

A vector $\vec{v}$.

\begin{theorem}
A vector $\vec{v}$.
\end{theorem}

\end{document}

在此处输入图片描述

你看到问题了吗?如果你\textbf改成\mathbf

在此处输入图片描述

相关内容