我想以 IEEE 格式输入一个算法。我使用了算法包。但是使用该包,我无法为算法输入标题,也无法在写好的算法上方输入“算法”。我该怎么做才能将这些内容写入我的算法中?我需要如图所示的算法。
我使用的结构如下
\documentclass{IEEEtran}
\usepackage{algorithmic}
\begin{document}
%\begin{algorithm}
%\caption{Algorithm for ...}
\begin{algorithmic}[1]
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}
\REQUIRE in
\ENSURE out
\\ \textit{Initialisation} :
\STATE first statement
\\ \textit{LOOP Process}
\FOR {$i = l-2$ to $0$}
\STATE statements..
\IF {($i \ne 0$)}
\STATE statement..
\ENDIF
\ENDFOR
\RETURN $P$
\end{algorithmic}
%\end{algorithm}
\end{document}
答案1
首先,如果您想使用该algorithm
环境并且还想遵守 IEEE 格式(不允许浮动),则可以使用浮动H
说明符来告诉algorithm
不要浮动:
\begin{algorithm}[H]
然后,你似乎想使用ruled
样式algorithm
,但没有线条。
这可以通过定义一种新的浮动样式(algorithm
包加载float
包)来实现,比如说norules
,它没有规则
\makeatletter
\newcommand\fs@norules{\def\@fs@cfont{\bfseries}\let\@fs@capt\floatc@ruled
\def\@fs@pre{}%
\def\@fs@post{}%
\def\@fs@mid{\kern3pt}%
\let\@fs@iftopcapt\iftrue}
\makeatother
并将其应用于algorithm
环境
\floatstyle{norules}
\restylefloat{algorithm}
梅威瑟:
\documentclass{IEEEtran}
\usepackage{algorithm}
\usepackage{algorithmic}
\makeatletter
\newcommand\fs@norules{\def\@fs@cfont{\bfseries}\let\@fs@capt\floatc@ruled
\def\@fs@pre{}%
\def\@fs@post{}%
\def\@fs@mid{\kern3pt}%
\let\@fs@iftopcapt\iftrue}
\makeatother
\floatstyle{norules}
\restylefloat{algorithm}
\begin{document}
\begin{algorithm}[H]
\caption{Algorithm for ...}
\begin{algorithmic}[1]
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}
\REQUIRE in
\ENSURE out
\\ \textit{Initialisation} :
\STATE first statement
\\ \textit{LOOP Process}
\FOR {$i = l-2$ to $0$}
\STATE statements..
\IF {($i \ne 0$)}
\STATE statement..
\ENDIF
\ENDFOR
\RETURN $P$
\end{algorithmic}
\end{algorithm}
\end{document}
输出:
答案2
同时加载algorithm
:
\documentclass{IEEEtran}
\usepackage{algorithm,algorithmic}
\begin{document}
\begin{algorithm}
\caption{Algorithm for ...}
\begin{algorithmic}[1]
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}
\REQUIRE in
\ENSURE out
\\ \textit{Initialisation} :
\STATE first statement
\\ \textit{LOOP Process}
\FOR {$i = l-2$ to $0$}
\STATE statements..
\IF {($i \ne 0$)}
\STATE statement..
\ENDIF
\ENDFOR
\RETURN $P$
\end{algorithmic}
\end{algorithm}
\end{document}