如何将此代码从 algorithm2e 转换为 algorithmicx

如何将此代码从 algorithm2e 转换为 algorithmicx

到目前为止,我一直在使用 algorithm2e 环境。但是,Springer 期刊类不支持它。在其文档中,它建议使用

\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{algorithmicx}

但是我不知道如何使用上述软件包转换基于 algorithm2e 的代码。几乎每一行都出现编译错误。MWC 如下-

\documentclass[pdflatex, sn-aps]{sn-jnl}% American Physical Society (APS) Reference Style
%%%% Standard Packages
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{comment}
\usepackage[center]{caption}
\usepackage{subcaption}
\usepackage{float}
\usepackage[misc]{ifsym}
\usepackage{csquotes}
\usepackage[section]{placeins}
\usepackage{siunitx}
%%<additional latex packages if required can be included here>
%\usepackage[linesnumbered,lined,boxed,commentsnumbered]{algorithm2e}
\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{algorithmicx}
\usepackage{amsmath}
\usepackage{graphicx}

\begin{document}

%Algorithm-1 code*****************
\begin{algorithm}
\SetAlgoLined
\SetKwInOut{Input}{Input}
\SetKwInOut{Output}{Output}
function fall\_check$()$\\
\Input{The accelerometer data and timestamp }
\Output{response $( TRUE/FALSE)$}
{
read\_data$()$\;
Calculate the SVM using the equation \ref{SVM}.\\
\If{ $SVM_\mathrm{acc}>SVM_\mathrm{acc}(threshold)$ \& $time\_count< 2 seconds $}
    {
    \eIf {$record\_count > 150$}
        {
            return$(TRUE)$\;
        }
        {
            return$(FALSE)$\;
        }
    }
}
\caption{Check for the fall event~(runs on the RPi server)}
\label{alg:algo1}
\end{algorithm}

 \end{document}

请帮忙。

答案1

最后在网上看了几篇文章后,终于可以做一个基本的改造了(虽然效果不如上一个版本)。分享一下我的经验,希望对大家有帮助。

  1. 首先,期刊类本身包含必要的算法包,因此不需要任何

\usepackage{算法} \usepackage{algpseudocode} \usepackage{algorithmicx}

  1. 接下来我必须做出以下更改 [ 在意识到每个语句必须以 \State 开头,并且不需要 {} 括号来将语句分组到 IF 或 WHILE 下之后] 因此我的 MWC 变成了

     \documentclass[pdflatex, sn-aps]{sn-jnl}% American Physical Society (APS) Reference Style
     %%%% Standard Packages
     \usepackage[utf8]{inputenc}
     \usepackage[english]{babel}
     \usepackage{comment}
     \usepackage{float}
     \usepackage[misc]{ifsym}
     \usepackage{csquotes}
     \usepackage[section]{placeins}
     \usepackage{siunitx}
     \usepackage{amsmath}
     \usepackage{graphicx}
    
     \begin{document}
    
     %Algorithm-1 code*****************
     \begin{algorithm}
     \caption{Check for the fall event~(runs on the RPi server)}\label{alg:algo1}
     \begin{algorithmic}[1]
     \State $function fall\_check()$
     \State INPUT: The accelerometer data and timestamp
     \State $OUTPUT: response ( TRUE/FALSE)$
    
     \State read\_data$()$\;
     \State Calculate the SVM using the equation \ref{SVM}.
     \If{ $SVM_\mathrm{acc}>SVM_\mathrm{acc}(threshold)$ \& $time\_count< 2 seconds $}
    
         \If {$record\_count > 150$}
    
             \State return$(TRUE)$\;
    
         \Else
             \State return$(FALSE)$\;
    
    
          \EndIf
    
      \EndIf
    
     \end{algorithmic}
     \end{algorithm}
     \end{document} 
    

输出

答案2

没有回答如何转换,但我遇到了同样的问题,而且这个帖子是搜索结果中的第一个。所以我几乎已经开始转换我的算法了。

幸运的是,Springer 期刊类别仅建议使用algorithmalgorithmicx,但它仍然支持algorithm2e。你可以按照这个答案以避免在使用类时出现编译algorithm2e错误sn-jnl

相关内容