我正在尝试提供一个列向量的命令。我在标题中定义了它:
\providecommand{\vector}[3]{\ensuremath{\left(
\begin{matrix}
#1 \\
#2 \\
#3
\end{matrix}
\right)}}
然后在文档中:
\vector{-\sin\varphi}{\cos\varphi}{0}
但我收到一条错误消息:
Use of \vector doesn't match its definition.
有任何想法吗?
谢谢
答案1
你\providecommand{\vector}[3]{...}
说
亲爱的 LaTeX,如果没有
\vector
定义命令,请按照我的意愿定义它,否则不执行任何操作并保留先前的定义
你\newcommand{\vector}[3]{...}
说
亲爱的 LaTeX,如果没有
\vector
定义命令,请按照我的意愿定义它,否则会通过引发错误来告诉我
你\renewcommand{\vector}[3]{...}
说
亲爱的 LaTeX,如果
\vector
定义了一个命令,请按照我的意愿重新定义它,否则通过引发错误告诉我
因为\vector
我们处于这样的情况:是已经定义。所以\providecommand
没有效果,使用时你会得到错误或奇怪的输出。你可能决定走这\renewcommand
条路,但这是错误的:内核\vector
命令在图片模式下使用,你加载的某些包可能会使用它:灾难将随之而来。
请使用不同的名称,例如\cvector
。