这是我的算法:
\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}