提供列向量的命令

提供列向量的命令

我正在尝试提供一个列向量的命令。我在标题中定义了它:

\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

答案2

还有\parenVectorstack

\documentclass{article} 
\usepackage{stackengine} 
\stackMath
\begin{document} 
\[
\parenVectorstack{{-\sin\varphi} {\cos\varphi} {0}}
\]
\end{document} 

在此处输入图片描述

相关内容