如何重新初始化算法的行计数器?

如何重新初始化算法的行计数器?

我一个部分中有四个算法,但问题是每个算法的行号不是从 1 开始的。例如,第一个算法的行号从 1 到 11,但第二个算法的行号从 12 开始,而不是从 1 开始。我想知道如何重新初始化每个算法的行数计数器,使行号从 1 开始?

这是我的代码:

\documentclass[letterpaper,12pt,oneside,final]{book}
\usepackage[utf8]{inputenc}
\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage[ruled,algo2e,french]{algorithm2e}
\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{pdfpages}
\usepackage{epstopdf} 
\usepackage{amsmath,color,soulutf8,longtable,colortbl,setspace,ifthen,xspace,url,pdflscape} 
\makeatletter
\usepackage[frenchb]{babel}
\usepackage{caption}  
\begin{document}
\begin{algorithm}[H]
    \SetKwInput{Initialization}{Initialisation}
        \LinesNumbered
        \Initialization{}   
    \For{}{}
\end{algorithm}
\begin{algorithm}[h]
    \SetKwInput{Initialization}{Initialisation}
    \LinesNumbered
    \Initialization{}
    \For{}{}
\end{algorithm}
\end{document}

答案1

使用这个简单的代码:\setcounter{AlgoLine}{<number>}。Alg@line不正确。您应该使用Algoline

\begin{algorithm}[H]
    \SetKwInput{Initialization}{Initialisation}
        \LinesNumbered
        \Initialization{}   
    \For{}{}
\end{algorithm}
\begin{algorithm}[h]
    \setcounter{AlgoLine}{0}
    \SetKwInput{Initialization}{Initialisation}
    \LinesNumbered
    \Initialization{}
    \For{}{}
\end{algorithm}

答案2

你不能混合使用algorithms(提供algorithm环境/浮动)algorithm2e。使用其中一个,或者另一个。

在此处输入图片描述

\documentclass{article}

\usepackage[ruled]{algorithm2e}

\begin{document}

\begin{algorithm}[H]
  \SetKwInput{Initialization}{Initialisation}
  \LinesNumbered
  \Initialization{}
  \For{}{}
\end{algorithm}

\begin{algorithm}[h]
  \SetKwInput{Initialization}{Initialisation}
  \LinesNumbered
  \Initialization{}
  \For{}{}
\end{algorithm}

\end{document}

请注意,由于您仅使用algorithm2e接口,因此无需使用algo2e包选项。


如果必须一起使用它们,无论出于何种原因,您都需要使用algo2e包选项并在环境algorithm2e内明确设置样式算法algorithm2e,并且algorithmicx- 环境中的风格算法algorithm

相关内容