我想让以下代码的行号不是从 1 开始,而是从 12 开始(因为它是从较大的代码中截取的)。因此,它应该是 12,13,14,15,而不是 1,2,3,4。
\documentclass{article}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}
\begin{document}
\begin{algorithm}[h]
\begin{algorithmic}[1]
\If{$(w,s')$ not in $Q$} \Comment{insert}
\State $k(w,s') \gets d_{r}(w,s') + \pi_{w,s'}$
\Else \Comment{decrease}
\State $k(w,s') \gets d_{r}(w,s')+ \pi_{w,s'}$
\EndIf
\end{algorithmic}
\end{algorithm}
\end{document}
答案1
将计数器设置ALG@line
为所需的值:
\documentclass{book}
\usepackage{algorithm,algpseudocode}
\begin{document}
\begin{algorithm}[h]
\begin{algorithmic}[1]
\makeatletter
\setcounter{ALG@line}{11}
\makeatother
\If{$(w,s')$ not in $Q$} \Comment{insert}
\State $k(w,s') \gets d_{r}(w,s') + \pi_{w,s'}$
\Else \Comment{decrease}
\State $k(w,s') \gets d_{r}(w,s')+ \pi_{w,s'}$
\EndIf
\end{algorithmic}
\end{algorithm}
\end{document}
更好的方法是使用 \algstore 和 \algrestore,因为该机制会自动保存行号、缩进、当前算法的打开块并关闭所有块;请参阅 algorithmicx 文档的第 2.6 节分解长算法。