
Anstatt 1:, 2:,.. zu drucken, möchte ich am Anfang jeder Zeile Schritt 1:, Schritt 2:,.. drucken. Hier ist mein Code:
\usepackage{algorithm}
\usepackage{algpseudocode}
\begin{document}
\begin{algorithm}
\caption{My algorithm}
\begin{algorithmic}[1]
\State foo
\State bar
\end{algorithmic}
\end{algorithm}
\end{document}
Ich schaute aufDasFrage, die Lösung hat bei mir nicht funktioniert, zeigt
Befehl ALC@lno undefiniert.
Ich denke, das liegt daran, dass ich das Paket algpseudocode verwende und die Lösung das Paket algorithmic verwendet. Außerdem möchte ich, dass die Zeilennummern durch „Schritt 1“, „Schritt 2“ usw. ersetzt werden. Diese Lösung ersetzt die Zeilennummern jedoch durch ein festes Symbol.
Antwort1
Sie können das interne \ALG@step
Makro neu definieren, um vor dem Drucken der Nummer einen Text hinzuzufügen. Die folgende Definition wurde aus der algoritmicx
Quelle (die von verwendet wird algpseudocode
) mit dem WortSchritthinzugefügt. Weil das Makro das Zeichen enthält, das Sie um die Definition herum einfügen @
müssen .\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}
Ergebnis: