困扰了以下问题一段时间,我被难住了。我正在使用elsart3p.cls
文档类,但它似乎与包不太兼容algorithmic
。这是一个最小的工作示例:
\documentclass{elsart3p} %also doesn't work with elsart
\usepackage{algorithmic}
\usepackage{algorithm}
\begin{document}
\begin{algorithm}[ht]
\begin{algorithmic}[1]
\REQUIRE help?
\end{algorithmic}
\caption{Algorithm}
\label{alg:test}
\end{algorithm}
\end{document}
当使用latex
或进行编译时pdflatex
,我收到一个错误(\begin{algorithmic}
每个算法一个错误):
LaTeX Error: Command \AND already defined
...但输出看起来还不错。通常我不会太介意,但我会传递来源。
有人有解决方法吗?我有几个不错的算法,所以不太想换一个包(另外,我从来都不是 algorithmic2e 的忠实粉丝……太多的括号让我头晕)。
我知道这个问题并不完全是好莱坞大片的题材,但任何帮助都非常感谢!
答案1
类elsart3p
在内部加载elsart
类,后者定义\AND
为\&
;algorithmic
包也定义\AND
但含义不同,因此这两个定义发生冲突(这就是您收到问题中包含的错误消息的原因)。一种可能的解决方案是使用savesym
包重命名两个冲突名称之一:\savesymbol{AND}
在加载algorithmic
包之前使用,将\AND
命令从elsart
as重命名\origAND
,避免名称冲突:
\documentclass{elsart3p}
\usepackage{savesym}
\savesymbol{AND}
\usepackage{algorithmic}
\usepackage{algorithm}
\begin{document}
\begin{algorithm}[ht]
\begin{algorithmic}[1]
\STATE solved!
\end{algorithmic}
\caption{Algorithm}
\label{alg:test}
\end{algorithm}
\end{document}
顺便提一下,也许算法您可能对该包感兴趣。