알고리즘 및 알고리즘 환경에서 알고리즘 번호 매기기를 수정하는 방법은 무엇입니까?

알고리즘 및 알고리즘 환경에서 알고리즘 번호 매기기를 수정하는 방법은 무엇입니까?

알고리즘에 대한 의사코드가 있는데, 괜찮은 것 같습니다(컴파일 시 약간의 오류가 있음). 하지만 가장 큰 문제는 단계의 번호가 알고리즘의 단계 수와 일치하지 않는다는 것입니다. 아래에 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"가 여러 번 나타나는 것을 알 수 있습니다. 번호 매기기를 수정하는 방법에 대한 도움을 주시면 감사하겠습니다. 어떤 아이디어가 있나요?

PS 도움이 될 경우를 대비해 이것이 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}제거하는 것도 좋습니다 ). amssymbTimes와 같은 글꼴로 수학을 사용하여 얻은 결과는 다음과 같습니다. 다음은 패키지가 어떻게 호출되는지 확인하기 위한 처음 몇 줄입니다(뒤에 amsthm).

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

여기에 이미지 설명을 입력하세요

관련 정보