34

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?

3
  • 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, 2011 at 16:07
  • 3
    For the record, Cleveref versions since 0.17.9 (released in 2011) support algorithm2e "out-of-the-box". Jun 13, 2017 at 17:17
  • 1
    @Dror could you review the accepted answer? I think fixing the load order will be the superior solution in most cases.
    – dreua
    Mar 11, 2021 at 15:29

2 Answers 2

28

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

\crefname{algocf}{alg.}{algs.}
\Crefname{algocf}{Algorithm}{Algorithms}
2
  • 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, 2011 at 7:48
  • 4
    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, 2011 at 14:36
23

You only need to load algorithm2e before cleveref.

6
  • 4
    I think this is the most correct answer Jun 28, 2018 at 11:54
  • 1
    This should be the accepted solution, in my opinion. Aug 4, 2020 at 11:48
  • 1
    still, functions don't work. and remaming algorithm into function doesn't work.
    – caveman
    Jan 11, 2021 at 21:00
  • @caveman This seems to properly answer the question for most people. If you want something else I suggest you ask another question.
    – dreua
    Mar 11, 2021 at 15:32
  • 1
    @dreua - cleveref should almost always be loaded last.
    – Mico
    Mar 11, 2021 at 15:49

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.