我不想打印 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
)复制的,其中包含单词步添加。因为宏包含@
您需要在定义周围\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}
结果: