20

I'm currently working on a document where I was using algorithm+algorithmic along with cleveref. With this everything worked perfectly.

Now I had to replace algorithm+algorithmic with algorithm2e. Ever since, I cannot \cref to the label in the algorithm environment. More explicitly, I can refer but \cref doesn't generate a text in front of the number (which is correct) of the algorithm.

I couldn't find any reference to algorithm's packages in the cleveref documentation. Any ideas?

  • In addition to the fix in my answer, I suggest you contact the author of cleveref. He is very responsive to user requests, and will likely add support for algorithm2e if you explain to him what is needed. – Lev Bishop Jan 28 '11 at 16:07
  • 2
    For the record, Cleveref versions since 0.17.9 (released in 2011) support algorithm2e "out-of-the-box". – Toby Cubitt Jun 13 '17 at 17:17
19

You need to tell cleveref how you want to refer to the algorithms. Something like:

\crefname{algocf}{alg.}{algs.}
\Crefname{algocf}{Algorithm}{Algorithms}
  • This solved my problem. But I have another question. How did you know to choose for the type algocf? Where is it documented? Thanks a lot in any case! – Dror Jan 28 '11 at 7:48
  • 2
    From the log-file, without the above commands: LaTeX Warning: cref reference format for label type algocf' undefined on input line 27.` – Lev Bishop Jan 28 '11 at 14:36
4

You only need to load algorithm2e before cleveref.

  • I think this is the most correct answer – Yauhen Yakimenka Jun 28 '18 at 11:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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