我定义了某个命令,但现在我想更改其定义。我尝试简单地更改它,但它无法编译。
我应该怎么办?
非常感谢。
编辑
前一个命令是
\newcommand{\dt}{\frac{\partial \gamma}{\partial t}}
然后我想把它改成
\newcommand{\dt}{\dot{\gamma}}
但没用。现在我尝试
\renewcommand{\dt}{\dot{\gamma}}
但我收到了这条消息:
LaTeX 错误:\dt 未定义。
答案1
有几种方法:
全新的定义。
\newcommand{\dt}{\frac{\partial \gamma}{\partial t}}
LaTeX
\renewcommand
要求该命令存在。\renewcommand{\dt}{\dot{\gamma}}
如果不清楚该命令是否定义,则
\providecommand
可以用它来确保该宏是否被定义。\providecommand{\dt}{} \renewcommand{\dt}{\frac{a}{b}}
当将宏分配给未定义的宏或时
\relax
,则\newcommand
认为该宏未定义并且不会抱怨。\let\dt\relax \newcommand{\dt}{\mathop{}\!\mathrm{d}t}
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}