我正在尝试使用他们网站上的模板撰写 IEEE Access 论文。但是我在编写伪代码时遇到了麻烦,因为他们的模板中没有伪代码示例。当我使用 ieeeaccess 模板时,我收到以下错误消息:
“额外的 \endcsname。\State”
“未定义控制序列。\doWhile”,
“缺少插入的 \endcsname。\State”。
此外,结果看起来并不像它应该的那样。例如,伪代码中的所有行号都是零。此外,在编译 .tex 文件后,我得到的不是“input”和“output”,而是“require”和“ensure”。
我是否缺少一些用户包?(尽管我尝试了许多组合仍然没有结果)有人可以给我一个 ieeeaccess 伪代码的示例以及所需的用户包吗?
\documentclass{ieeeaccess}
\usepackage{cite}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{graphicx}
\usepackage{textcomp}
\usepackage[section]{placeins}
\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{algorithmicx}
\algdef{SE}[DOWHILE]{Do}{doWhile}{\algorithmicdo}[1]{\algorithmicwhile\ #1}%
\begin{document}
\begin{algorithm}[H]
\caption{Algorithm 1}\label{Alg-Decap}
\begin{algorithmic}[1]
\Require{$(C,S_k)$}
\Ensure{ HashSession$(1,\underbar r,C)$ or HashSession$(0,\rho,C))$ }
\State $c\leftarrow$ Decode$(\underbar c)$
\State $c.(3f)\in\mathcal{R}/q$
\State $e\leftarrow $ (Rounded$(c.(3f))$ mod 3) $\in \mathcal{R}/3$
\State $e.(1/g)\in\mathcal{R}/3$
\State $r'\leftarrow$ Lift($e.(1/g)$) $\in\mathcal{R}/q$
\State $h.r'\in\mathcal{R}/q$
\State $c'\leftarrow$ Round$(h.r')$
\State $\underbar c'\leftarrow$ Encode$(c')$
\State $C'\leftarrow(\underbar c',$ HashConfirm$(\underbar r',\underbar h))$
\If{$C'==C$}
\State \textbf{return} HashSession$(1,\underbar r,C)$
\Else
\State \textbf{ return} HashSession$(0,\rho,C))$
\EndIf
\end{algorithmic}
\end{algorithm}
\end{document}
答案1
你不能同时加载algorithmic
和algpseudocode
。由于你正在使用后者的语法,所以删除前者。
如果你想输入和输出,为他们定义基础设施。
另外,不要进入和退出数学模式,也不要使用\underbar
,而是\underline
。
\documentclass{ieeeaccess}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{algorithm}
\usepackage{algpseudocode}
\algdef{SE}[DOWHILE]{Do}{doWhile}{\algorithmicdo}[1]{\algorithmicwhile\ #1}%
\algnewcommand\algorithmicinput{\textbf{Input:}}
\algnewcommand\algorithmicoutput{\textbf{Output:}}
\algnewcommand\Input{\item[\algorithmicinput]}
\algnewcommand\Output{\item[\algorithmicoutput]}
% no in and out of math mode!
\newcommand{\Fun}[1]{\mathrm{#1}}
\begin{document}
\begin{algorithm}[htp]
\caption{Algorithm 1}\label{Alg-Decap}
\begin{algorithmic}[1]
\Input{$(C,S_k)$}
\Output{$\Fun{HashSession}(1,\underbar r,C)$ or $\Fun{HashSession}(0,\rho,C))$}
\State $c\leftarrow \Fun{Decode}(\underbar c)$
\State $c.(3f)\in\mathcal{R}/q$
\State $e\leftarrow (\Fun{Rounded}(c.(3f))\bmod 3)\in \mathcal{R}/3$
\State $e.(1/g)\in\mathcal{R}/3$
\State $r'\leftarrow \Fun{Lift}(e.(1/g)) \in\mathcal{R}/q$
\State $h.r'\in\mathcal{R}/q$
\State $c'\leftarrow \Fun{Round}(h.r')$
\State $\underline{c}'\leftarrow \Fun{Encode}(c')$
\State $C'\leftarrow(\underline{c}', \Fun{HashConfirm}(\underline{r}',\underline{h}))$
\If{$C'==C$}
\State \textbf{return} $\Fun{HashSession}(1,\underline{r},C)$
\Else
\State \textbf{return} $\Fun{HashSession}(0,\rho,C))$
\EndIf
\end{algorithmic}
\end{algorithm}
\EOD
\end{document}