使用 Latex 的算法(包 algorithmicx)

使用 Latex 的算法(包 algorithmicx)

这是我的算法:

 \usepackage{graphicx}
 \usepackage[linesnumbered,ruled,vlined]{algorithm2e}
 \usepackage{algorithmicx}
 \usepackage{algpseudocode}
 %\usepackage{algorithmic}
 \usepackage{float}
 \begin{document}
 \begin{algorithm}
 \caption{Euclid's algorithm}\label{euclid}
 \begin{algorithmic}[1]
 \Procedure{Euclid}{$a,b$}
 \State $r\gets a\bmod b$
 \While{$r\not=0$}
 \State $a\gets b$
 \State $b\gets r$
 \State $r\gets a\bmod b$
 \EndWhile
 \State \textbf{return} $b$\Comment{The gcd is b}
%\EndProcedure
 \end{algorithmic}
 \end{algorithm}
 \end{document}

我有这个错误:

./llncs1.dem: 102: Missing number, treated as zero /EndWhile

请问您有什么想法吗?

答案1

你可以简单地这样做:

\documentclass{article}
\usepackage{algorithm} %ctan.org\pkg\algorithms
\usepackage{algpseudocode}
\begin{document}

\begin{algorithm}
 \begin{algorithmic}[1]
 \Procedure{Euclid}{$a,b$}
 \State $r\gets a\bmod b$
 \While{$r\not=0$}
 \State $a\gets b$
 \State $b\gets r$
 \State $r\gets a\bmod b$
 \EndWhile
 \State \textbf{return} $b$ \Comment{The gcd is b}
 \EndProcedure
 \end{algorithmic}
 \caption{Euclid's algorithm}
 \label{euclid}
\end{algorithm}

\end{document}

一些包定义了这些类型的浮动环境,例如alg,但这也有冲突。

答案2

在此处输入图片描述

有多个适用于这种布局的包,但您需要选择使用哪个,如果您加载所有包,就会发生冲突,如您所见。例如,如果您只使用algorithmicx基于布局,则可以使用:

 \documentclass{article}
 \usepackage{graphicx}
 %\usepackage[linesnumbered,ruled,vlined]{algorithm2e}
 %\usepackage{algorithmicx}
 \usepackage{algpseudocode}
 %\usepackage{algorithmic}
 \usepackage{float}
 \newfloat{algorithm}{tp}{toa}
 \begin{document}
 \begin{algorithm}
 \caption{Euclid's algorithm}\label{euclid}
 \begin{algorithmic}[1]
 \Procedure{Euclid}{$a,b$}
 \State $r\gets a\bmod b$
 \While{$r\not=0$}
 \State $a\gets b$
 \State $b\gets r$
 \State $r\gets a\bmod b$
 \EndWhile
 \State \textbf{return} $b$\Comment{The gcd is b}
 \EndProcedure
 \end{algorithmic}
 \end{algorithm}
 \end{document}

相关内容