到目前为止,我一直在使用 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
最后在网上看了几篇文章后,终于可以做一个基本的改造了(虽然效果不如上一个版本)。分享一下我的经验,希望对大家有帮助。
- 首先,期刊类本身包含必要的算法包,因此不需要任何
\usepackage{算法} \usepackage{algpseudocode} \usepackage{algorithmicx}
接下来我必须做出以下更改 [ 在意识到每个语句必须以 \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 期刊类别仅建议使用algorithm
和algorithmicx
,但它仍然支持algorithm2e
。你可以按照这个答案以避免在使用类时出现编译algorithm2e
错误sn-jnl
。