algpseudocode パッケージを使用して行番号の代わりにカスタムテキストを使用する

algpseudocode パッケージを使用して行番号の代わりにカスタムテキストを使用する

1:、2:、... と印刷する代わりに、各行の先頭に Step 1:、Step 2:、... と印刷します。コードは次のとおりです。

\usepackage{algorithm}
\usepackage{algpseudocode}

\begin{document}

\begin{algorithm}
    \caption{My algorithm}
\begin{algorithmic}[1]
    \State foo
    \State bar
\end{algorithmic}
\end{algorithm}

\end{document}

私は見たこれ質問、解決策は私にはうまくいかなかった、示しています

コマンド ALC@lno が未定義です。

これは、algpseudocode パッケージを使用しており、ソリューションでは algorithmic パッケージを使用しているためだと思います。さらに、行番号を「ステップ 1」、「ステップ 2」などに置き換えたいのですが、そのソリューションでは行番号が固定シンボルに置き換えられています。

答え1

内部\ALG@stepマクロを再定義して、数値を印刷する前にテキストを追加することができます。以下の定義は、algoritmicx( で使用されるalgpseudocode)ソースからコピーされたもので、ステップ追加されました。マクロには定義の前後にand を@配置する必要がある文字が含まれているためです。\makeatletter\makeatother

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

結果:

ここに画像の説明を入力してください

関連情報