Benutzerdefinierter Text anstelle von Zeilennummern mit dem Paket „algpseudocode“

Benutzerdefinierter Text anstelle von Zeilennummern mit dem Paket „algpseudocode“

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@stepMakro neu definieren, um vor dem Drucken der Nummer einen Text hinzuzufügen. Die folgende Definition wurde aus der algoritmicxQuelle (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:

Bildbeschreibung hier eingeben

verwandte Informationen