Как исправить нумерацию алгоритма в algorithmc и алгоритмической среде?

Как исправить нумерацию алгоритма в algorithmc и алгоритмической среде?

У меня есть псевдокод для алгоритма, который выглядит нормально (с небольшими ошибками в компиляции). Но самая большая проблема в том, что нумерация шагов не соответствует количеству шагов в алгоритме. У меня есть MWE ниже.

\documentclass[conference]{IEEEtran}
\usepackage{cite}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{graphicx}
\usepackage{textcomp}
\usepackage{xcolor}
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{tabulary}
\usepackage{algpseudocode}
\usepackage{booktabs}
\usepackage{cleveref}
\usepackage{enumitem}
\usepackage{subcaption}
\usepackage{amsmath,amssymb,amsthm,bbm,color,psfrag,amsfonts}
\algrenewcommand\algorithmicrequire{\textbf{Input:}}
\algrenewcommand\algorithmicensure{\textbf{Output:}}
\usepackage{url}
\newtheorem{theorem}{Theorem}
\newtheorem{lemma}{Lemma}
\newtheorem{asu}{Assumption}
\newtheorem{remark}{Remark}
\theoremstyle{definition}
\newtheorem{definition}{Definition}[section]
\crefname{lemma}{Lemma}{Lemmas}
\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
    T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
\algrenewcommand\algorithmicrequire{\textbf{Input:}}
\algrenewcommand\algorithmicensure{\textbf{Output:}}
\begin{document}
 \begin{algorithm}[H]
 \caption{My Algorithm}\label{alg:greedy}
 \begin{algorithmic}[1]
 \renewcommand{\algorithmicrequire}{\textbf{Input:}}
 \renewcommand{\algorithmicensure}{\textbf{Output:}}
 \Require $M^0=4$.
 \Ensure $V,\text{found}$  
  \WHILE{$P^l \neq \emptyset$}
  \STATE{state}
    \For{$i \in 1....|N|$} 
        \State{Compute }
    \EndFor \label{nio}
    \State Get $\theta$ \%. \label{tre}
    \State $G \gets$ Find vals$) \label{find_vals}
    \State $T,Y^{m+1} \gets $ \Call{Otherfunc}{$I$} \label{p}
 \ENDWHILE
 \end{algorithmic}
 \end{algorithm}
\end{document}

Вы заметите, что число "2" появляется много раз. Любая помощь относительно того, как исправить нумерацию, будет оценена по достоинству. Есть идеи?

P.S. Вы можете заметить, что это шаблон IEEE, если это поможет.

решение1

Вы должны использовать либо либо algorithmic, algpseudocodeно не оба. Вы смешиваете синтаксис обоих пакетов и, очевидно, получаете ошибки.

Вот правильная версия, в которой пакеты и определения не дублируются.

Я хотел бы отметить, что

  1. caption(и поэтому subcaption) нельзя использовать с IEEEtran. Если вам нужны подмножества, загрузите \usepackage[caption=false]{subfig}и проверьте синтаксис этого пакета;

  2. textcompбольше не нужно

  3. psfragне совместимо сpdflatex

\documentclass[conference]{IEEEtran}
\usepackage{cite}
\usepackage{amsmath,amssymb,amsthm}
\usepackage{graphicx}
%\usepackage{textcomp}% no longer necessary
\usepackage{xcolor}
\usepackage{algorithm}
%\usepackage{algorithmic}
\usepackage{algpseudocode}
\usepackage{booktabs}
\usepackage{enumitem}
%\usepackage{subcaption}% not with IEEEtran
\usepackage{url}
\usepackage{cleveref}

\algrenewcommand\algorithmicrequire{\textbf{Input:}}
\algrenewcommand\algorithmicensure{\textbf{Output:}}

\newtheorem{theorem}{Theorem}
\newtheorem{lemma}{Lemma}
\newtheorem{asu}{Assumption}
\newtheorem{remark}{Remark}
\theoremstyle{definition}
\newtheorem{definition}{Definition}[section]
\crefname{lemma}{Lemma}{Lemmas}


\begin{document}

\begin{algorithm}[H]
\caption{My Algorithm}\label{alg:greedy}
\begin{algorithmic}[1]
\Require $M^0=4$.
\Ensure $V,\text{found}$  
\While{$P^l \neq \emptyset$}
  \State state
  \For{$i \in 1\dots|N|$} 
    \State Compute
  \EndFor \label{nio}
  \State Get $\theta$ \%. \label{tre}
  \State $G \gets$ Find vals \label{find_vals}
  \State $T,Y^{m+1} \gets $ \Call{Otherfunc}{$I$} \label{p}
\EndWhile
\end{algorithmic}
\end{algorithm}

\end{document}

введите описание изображения здесь

Я бы также рекомендовал загрузить \usepackage{newtx}(и удалить amssymbто, что уже охвачено предыдущим). Вот вывод, который вы получите, с математикой в ​​шрифтах, похожих на Times. Вот первые несколько строк, чтобы увидеть, как называется пакет (после amsthm).

\documentclass[conference]{IEEEtran}
\usepackage{cite}
\usepackage{amsmath,amsthm}
\usepackage{newtx}

введите описание изображения здесь

Связанный контент