I want to use both the program and algorithmic packages in a paper; however, after adding \usepackage{program}, algorithmic is now broken. For a reduced example,

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

\begin{document}

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

\end{document}

This should print "a" then "b" on two lines; enabling the [commented] third line gives errors for me.

! 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

I'm using texlive 2010 via OpenSuSE RPMs.

  • What is the motivation for using the program package? I guess your minimal example does not effectively show its use. – Werner Aug 3 '11 at 21:06
  • @Werner, yes, of course, it's a reduced example. afaik algorithmic doesn't expose method names for recursive definitions. However, I'm finding more and more that it's a somewhat inopportune package, overriding sensible things like the absolute value / pipe character in math mode. – gatoatigrado Aug 4 '11 at 4:31
up vote 7 down vote accepted

I see at least two solutions:

1) Instead of using algorithmic, use the algorithmicx package, which gives you more functionality and flexibility:

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

\begin{document}

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

\end{document}

2) Use the savesym package, and the technique I explained in Two conflicting packages in one document — doable? to prevent name clashes:

\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}

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.