Не могу записать псевдокоды в формате IEEE Access?

Не могу записать псевдокоды в формате IEEE Access?

Я пытаюсь написать статью IEEE Access, используя шаблон на их сайте. Но у меня возникли проблемы с написанием псевдокодов, поскольку в их шаблоне нет примера псевдокода. Когда я использую шаблон ieeeaccess, я получаю сообщения об ошибках, такие как:

"Дополнительно \endcsname. \State",

"Неопределенная управляющая последовательность. \doWhile",

«Отсутствует \endcsname, вставлено. \State».

Также результат выглядит не так, как должен быть. Например, все номера строк в псевдокоде — нули. Также вместо «input» и «output» я получил «require» и «ensure» после компиляции .tex-файла.

Может быть, мне не хватает какого-то пользовательского пакета? (хотя я перепробовал много комбинаций, но результата нет) Может ли кто-нибудь привести пример псевдокода 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}

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

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