如何重命名命令以避免重复定义命令名称

如何重命名命令以避免重复定义命令名称

嗨,我想使用包vaucansonalgorithm

\documentclass[11pt,a4paper,twoside,openright]{book}

\usepackage{algorithm}
\usepackage[noend]{algpseudocode}
\usepackage{vaucanson-g}

\begin{document}
\begin{algorithm}
\caption{code}
\begin{algorithmic}[1]
\Function{a}{$G,r,t$}
   \State $a \gets g$
\EndFunction
\end{algorithmic}
\end{algorithm}

\begin{figure}[t]
  \begin{postscript}[scale=0.6]\special{header=gastex.pro}   
  \begin{VCPicture}{(0,-2)(6,2)}
  \State[s_0]{(0,0)}{0}
  \FinalState[s_2]{(3,1)}{1}
  \EdgeL{0}{1}{t}
\end{VCPicture}
\end{postscript}
\end{figure}

\end{document}

问题是\State已经在中定义vaucanson,我得到了

ERROR: LaTeX Error: Command \State already defined

是否可以简单地重命名其中一个 \State 命令以避免冲突?

答案1

在加载之后algorithm和加载之前vaucanson-g,放置一个

\let\MyState\State
\let\State\relax

然后,您可以将\MyState其用作\Statefrom algorithm,并vaucanson-g可以重新定义\State,从而避免错误。(谢谢@egreg!)

相关内容