我想在论文中同时使用程序和算法包;但是,添加后\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
我发现至少有两种解决方案:
algorithmic
1)不要使用,而是使用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}