Texto personalizado em vez de números de linha com pacote algpseudocode
Em vez de imprimir 1 :, 2:, .. Desejo imprimir a Etapa 1 :, Etapa 2:, .. no início de cada linha. Aqui está o meu código:
\usepackage{algorithm}
\usepackage{algpseudocode}
\begin{document}
\begin{algorithm}
\caption{My algorithm}
\begin{algorithmic}[1]
\State foo
\State bar
\end{algorithmic}
\end{algorithm}
\end{document}
Olhei essa questão, a solução não funcionou pra mim, mostra
Comando ALC @ lno indefinido.
Acho que é porque estou usando o pacote algpseudocode e a solução é usar o pacote algorítmico. Além disso, desejo que os números das linhas sejam substituídos por "Etapa 1", "Etapa 2" e assim por diante; mas essa solução é substituir os números das linhas por um símbolo fixo.
Respostas
Você pode redefinir a \ALG@stepmacro interna para adicionar um texto antes de imprimir o número. A definição abaixo é copiada da algoritmicxfonte (que é usada por algpseudocode) com a palavra Etapa adicionada. Porque a macro contém o @caractere que você precisa para colocar \makeatlettere \makeatotherao redor da definição.
\documentclass{article}
\usepackage{algorithm}
\usepackage{algpseudocode}
\makeatletter
\def\ALG@step%
{%
\addtocounter{ALG@line}{1}%
\addtocounter{ALG@rem}{1}%
\ifthenelse{\equal{\arabic{ALG@rem}}{\ALG@numberfreq}}%
{\setcounter{ALG@rem}{0}\alglinenumber{Step \arabic{ALG@line}}}%
{}%
}%
\makeatother
\begin{document}
\begin{algorithm}
\caption{My algorithm}
\begin{algorithmic}[1]
\State foo
\State bar
\end{algorithmic}
\end{algorithm}
\end{document}
Resultado: