算法,如何从给定的数字开始行号(使用 algorithm2e)

算法,如何从给定的数字开始行号(使用 algorithm2e)

我想知道如何从特定数字开始代码;当算法分为两页时,这是必要的。

一个小例子,我想从第 39 行而不是第 1 行开始。有办法吗?

\documentclass[paper=a4,toc=bibliography,nonchapterprefix,parskip=true]{scrreprt}

\usepackage[linesnumbered]{algorithm2e}

\begin{document}

\IncMargin{1em}
\begin{algorithm}
  \SetKwData{Left}{left}
  \SetKwData{Up}{up}
  \SetKwFunction{FindCompress}{FindCompress}
  \SetKwInOut{Input}{input}
  \SetKwInOut{Output}{output}

 \Indm
 \Input{A bitmap $Im$ of size $w\times l$}
 \Output{A partition of the bitmap}
\Indp
\BlankLine
  \For{$i\leftarrow 2$ \KwTo $l$}{
    \Left$\leftarrow$ \FindCompress{$Im[i,j-1]$}\;
    \Up$\leftarrow$ \FindCompress{$Im[i-1,]$}\; }
    \lForEach{element $e$ of the line $i$}{\FindCompress{p}}
\end{algorithm}
\DecMargin{1em}

此致!

答案1

algorithm2e包有一个noresetcount选项,但这会对所有算法进行连续编号。

您可以定义一个\rememberlines宏来存储环境末尾的当前行号algorithm以及\resumenumbering使用该值的宏。

\documentclass[paper=a4,toc=bibliography,parskip=true]{scrreprt}

\usepackage[linesnumbered]{algorithm2e}

\newcommand{\rememberlines}{\xdef\rememberedlines{\number\value{AlgoLine}}}
\newcommand{\resumenumbering}{\setcounter{AlgoLine}{\rememberedlines}}

\begin{document}

\IncMargin{1em}
\begin{algorithm}
  \SetKwData{Left}{left}
  \SetKwData{Up}{up}
  \SetKwFunction{FindCompress}{FindCompress}
  \SetKwInOut{Input}{input}
  \SetKwInOut{Output}{output}

  \Indm
  \Input{A bitmap $Im$ of size $w\times l$}
  \Output{A partition of the bitmap}
  \Indp
  \BlankLine
  \For{$i\leftarrow 2$ \KwTo $l$}{
    \Left$\leftarrow$ \FindCompress{$Im[i,j-1]$}
    \Up$\leftarrow$ \FindCompress{$Im[i-1,]$}}
    \lForEach{element $e$ of the line $i$}{\FindCompress{p}
  }
\rememberlines
\end{algorithm}

\begin{algorithm}
\resumenumbering
  \SetKwData{Left}{left}
  \SetKwData{Up}{up}
  \SetKwFunction{FindCompress}{FindCompress}
  \SetKwInOut{Input}{input}
  \SetKwInOut{Output}{output}

  \Indm
  \Input{A bitmap $Im$ of size $w\times l$}
  \Output{A partition of the bitmap}
  \Indp
  \BlankLine
  \For{$i\leftarrow 2$ \KwTo $l$}{
    \Left$\leftarrow$ \FindCompress{$Im[i,j-1]$}
    \Up$\leftarrow$ \FindCompress{$Im[i-1,]$}}
    \lForEach{element $e$ of the line $i$}{\FindCompress{p}
  }
\end{algorithm}

\end{document}

在此处输入图片描述

相关内容