默认情况下,行号algorithmicx
位于浮动规则内。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{algorithm, algpseudocode}
\begin{document}
\begin{algorithm}
\begin{algorithmic}[1]
\Procedure{Input1}{$s_0 \ldots s_7, c$}
\For{$i \gets 0$ to 7}
\State $arr[i][0] \gets s_i$
\EndFor
\State $color \gets c$
\EndProcedure
\end{algorithmic}
\end{algorithm}
\end{document}
是否可以改变它们的缩进以使它们显示在浮动规则之外,就像在包中一样listings
?(图中省略了细节)如果解决方案也能改变伪代码的缩进,以便它们在行号原来的位置缩进,那就太好了。
答案1
在下面添加以下几行\usepackage{algorithmicx}
(或\usepackage{algpseudocode}
根据您的情况)。
\usepackage{xpatch}
\xpatchcmd\algorithmic{\leftmargin\labelwidth}{\leftmargin-\labelsep}{}{}
\documentclass{article}
\usepackage{blindtext}
\usepackage{algorithm,algpseudocode}
\usepackage{xpatch}
\xpatchcmd\algorithmic{\leftmargin\labelwidth}{\leftmargin-\labelsep}{}{}
\begin{document}
\blindtext
\begin{algorithm}
\begin{algorithmic}[1]
\Procedure{Input1}{$s_0 \ldots s_7, c$}
\For{$i \gets 0$ to 7}
\State $arr[i][0] \gets s_i$
\EndFor
\State $color \gets c$
\EndProcedure
\end{algorithmic}
\end{algorithm}
\blindtext
\end{document}