Como referenciar um algoritmo criado com algoritmo2e usando o intelligentef?

Como referenciar um algoritmo criado com algoritmo2e usando o intelligentef?

Estou tendo problemas para descobrir como fazer referência a um algoritmo criado com algorithm2e. Para minhas figuras, eu uso:

\begin{figure}
  \includegraphics{...}
  \caption{Test Caption.}
  \label{fig:test_label}
\end{figure}

e a referência com \Cref{fig:test_label}(usando package cleveref). Tudo funciona bem.

No entanto, isso não parece funcionar com algortihm2e:

\begin{algorithm}
  \For{$b\gets 0$ \KwTo $B- 1$}{
      ...
  }
  \caption{Test Caption} 
  \label{alg:test_label}
\end{algorithm}

e então fazer \Cref{alg:test_label}resultados em ??. Eu gostaria de ter algo semelhante a Figure 1, ou seja, Algorithm 1ou Alg. 1.

Como faço referência adequada a um algoritmo criado com algorithm2e?

Obrigado!

EDIT: Após uma inspeção mais aprofundada, notei que os números estão realmente aparecendo, mas Algorithmfalta a palavra: ?? 1, ?? 2,...

Responder1

Estou intrigado com sua afirmação de que

No entanto, isso não parece funcionar com algortihm2e

Com certeza, o seguinte programa de teste minimalista

\documentclass{article} 
\usepackage{algorithm2e,cleveref}
\begin{document}

\begin{algorithm}
  \centering\dots \caption{Test a}\label{alg:a}
\end{algorithm}
\begin{algorithm}
  \centering\dots \caption{Test b}\label{alg:b}
\end{algorithm}

\Cref{alg:b}, \cref{alg:a,alg:b}.
\end{document}

produz este resultado após compilar duas vezes:

insira a descrição da imagem aqui

No entanto, certifique-se de incluir o pacotealgorithm2e antes cleveref, caso contrário você terminará com:

insira a descrição da imagem aqui

informação relacionada