再次声明相同的命令

再次声明相同的命令

我定义了某个命令,但现在我想更改其定义。我尝试简单地更改它,但它无法编译。

我应该怎么办?

非常感谢。

编辑

前一个命令是

\newcommand{\dt}{\frac{\partial \gamma}{\partial t}}

然后我想把它改成

\newcommand{\dt}{\dot{\gamma}}

但没用。现在我尝试

\renewcommand{\dt}{\dot{\gamma}}

但我收到了这条消息:

LaTeX 错误:\dt 未定义。

答案1

有几种方法:

  1. 全新的定义。

    \newcommand{\dt}{\frac{\partial \gamma}{\partial t}}
    
  2. LaTeX\renewcommand要求该命令存在。

    \renewcommand{\dt}{\dot{\gamma}}
    
  3. 如果不清楚该命令是否定义,则\providecommand可以用它来确保该宏是否被定义。

    \providecommand{\dt}{}
    \renewcommand{\dt}{\frac{a}{b}}
    
  4. 当将宏分配给未定义的宏或时\relax,则\newcommand认为该宏未定义并且不会抱怨。

    \let\dt\relax
    \newcommand{\dt}{\mathop{}\!\mathrm{d}t}
    
  5. TeX 原语\def并不关心先前的定义,它定义并覆盖先前定义的宏。

    \def\dt{d^t}
    

完整示例:

\documentclass[a5paper]{article}
\begin{document}

% 1
\newcommand{\dt}{\frac{\partial \gamma}{\partial t}}
\begin{equation}\dt\end{equation}

% 2
\renewcommand{\dt}{\dot{\gamma}}
\begin{equation}\dt\end{equation}

% 3
\providecommand{\dt}{}
\renewcommand{\dt}{\frac{a}{b}}
\begin{equation}\dt\end{equation}

% 4
\let\dt\relax
\newcommand{\dt}{\mathop{}\!\mathrm{d}t}
\begin{equation}\dt\end{equation}

% 5
\def\dt{d^t}
\begin{equation}\dt\end{equation}

\end{document}

结果

相关内容