程序、算法包冲突

程序、算法包冲突

我想在论文中同时使用程序和算法包;但是,添加后\usepackage{program},算法现在就坏了。举一个简化的例子,

\documentclass{article}
\usepackage{algorithmic}
% \usepackage{program}

\begin{document}

\begin{algorithmic}
\STATE a
\STATE b
\end{algorithmic}

\end{document}

这应该在两行上打印“a”然后“b”;启用[注释]第三行会出现错误。

! LaTeX Error: Command \AND already defined.
               Or name \end... illegal, see p.192 of the manual.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.8 \STATE
           a
? q

我通过 OpenSuSE RPM 使用 texlive 2010。

答案1

我发现至少有两种解决方案:

algorithmic1)不要使用,而是使用algorithmicx包,它能给你更多的功能和灵活性:

\documentclass{article}
\usepackage{algorithmicx,algpseudocode}
\usepackage{program}

\begin{document}

\begin{algorithmic}
\State a
\State b
\end{algorithmic}

\end{document}

2)使用savesym我在一个文档中有两个相互冲突的包 — — 可行吗?为防止名称冲突:

\documentclass{article}
\usepackage{savesym}
\usepackage{program}
\savesymbol{AND}
\savesymbol{OR}
\savesymbol{NOT}
\savesymbol{TO}
\savesymbol{COMMENT}
\savesymbol{BODY}
\savesymbol{IF}
\savesymbol{ELSE}
\savesymbol{ELSIF}
\savesymbol{FOR}
\savesymbol{WHILE}
\usepackage{algorithmic}

\begin{document}

\begin{algorithmic}
\STATE a
\STATE b
\end{algorithmic}

\end{document}

相关内容