\newcommand 和 \renewcommand 的问题

\newcommand 和 \renewcommand 的问题

在此处输入图片描述我正在尝试定义一个名为 \vec{} 的命令,它在数学环境中打印粗体非斜体符号。

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

通常对我来说是可行的,但在 documentclass ifacconf 中却不行。相反,

\newcommand{\vect}[1]{\mathbf{#1}}

在这里有效。有人能给我解释一下区别吗?

谢谢你! :-)

梅威瑟:

\documentclass{ifacconf}
\usepackage{natbib}        % required for bibliography
%% own packages
\usepackage{amsmath}
\usepackage{amssymb}

%% own commands
\renewcommand{\vec}[1]{\mathbf{#1}}
\newcommand{\vect}[1]{\mathbf{#1}}

\begin{document}
\begin{frontmatter}

\title{Title, preferably not more than 10 words}

\begin{abstract}                
Abstract of not more than 250 words.
\end{abstract}

\end{frontmatter}
\begin{verbatim}
\mathbf{A}
\end{verbatim} prints
\begin{equation}
\mathbf{A},
\end{equation}

\begin{verbatim}
\vec{A}
\end{verbatim} prints
\begin{equation}
\vec{A},
\end{equation}

\begin{verbatim}
\vect{A}
\end{verbatim} prints
\begin{equation}
\vect{A}
\end{equation}
\end{document}

答案1

我认为问题很简单:frontmatter 会覆盖你的命令。解决方案:只需复制你的行

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

并在结束 frontmatter 之后或甚至在 frontmatter 环境内部粘贴它,以便在该环境内获取命令。

我希望这有帮助!

干杯,尼克

答案2

使用

https://raw.githubusercontent.com/worc4021/ifac2017/master/ifacconf.cls

该类定义了一个\undo@AMS专门用于\frontmatter重新定义\vec为粗体斜体的命令。

因此,最简单的事情要么顺其自然并使用粗体斜体,要么按照您展示的方式定义自己的命令。

相关内容