如何在一篇文章中编写算法\documentclass{clv2}
,有人可以给我发送一个带有虚拟算法的工作模型吗,因为我猜\caption
会产生问题。我想将其发送到麻省理工学院出版社的计算语言学期刊,但它给出了很多错误。
答案1
您可以将algorithm2e
和algorithmic
与clv2
类一起使用,只要您解决一些问题即可:
- 该类定义一个
algorithm
环境(非常原始的环境) - 该类定义
\TRUE
- 该类定义了一个
numdef
环境,这使得它与etoolbox
这是使用该类的一种algorithm2e
方法。algorithmic
\documentclass{clv2}
%% Remove the useless algorithm environment
\let\algorithm\relax
\let\endalgorithm\relax
%% Remove the useless numdef environment
\let\numdef\relax
\usepackage{algorithm2e,algorithmic,xpatch}
%% the algorithmic package does \newcommand{\TRUE}{...}
\xpretocmd{\algorithmic}{\let\TRUE\relax}{}{}
\begin{document}
\begin{algorithm}[H]
\caption{How to write algorithms}
\begin{algorithmic}
\REQUIRE $n \geq 0$
\ENSURE $y = x^n$
\STATE $y \leftarrow 1$
\STATE $X \leftarrow x$
\STATE $N \leftarrow n$
\WHILE{$N \neq 0$}
\IF{$N$ is even}
\STATE $X \leftarrow X \times X$
\STATE $N \leftarrow N / 2$
\ELSE[$N$ is odd]
\STATE $y \leftarrow y \times X$
\STATE $N \leftarrow N - 1$
\ENDIF
\ENDWHILE
\end{algorithmic}
\end{algorithm}
\end{document}
答案2
这clv2
班级已经将环境定义algorithm
为类似于的常规列表description
(参见第节7.1 其他列表类型在里面COLI 手册或第 3-4 页中海油模板):
\newenvironment{algorithm}{\par\list{}{\leftmargin\z@\labelwidth\z@\labelsep\z@\itemsep6pt\topsep12pt plus2pt
\let\makelabel\algorithmlabel}}{\endlist}
\def\algorithmlabel#1{{\bfseries #1: }}
因此,它不是人们所期望的浮点数,也不会自动枚举通常与“算法”相关的步骤。此外,算法内部没有位置\caption
。以下是它的使用方式:
\documentclass{clv2}% http://cljournal.org/Docs/clv2.cls
\begin{document}
\begin{algorithm}
\item[1] Something
\item[b] Something else
\end{algorithm}
\end{document}
我的建议是坚持使用期刊文档类并按algorithm
原样使用它们的环境;也就是说,不要诉诸于包括其他(可能不兼容的)算法包(如algorithm2e
)。
答案3
最后我的算法很好
\documentclass{clv2}
%% Remove the useless algorithm environment
\let\algorithm\relax
\let\endalgorithm\relax
%% Remove the useless numdef environment
\let\numdef\relax
\usepackage[lined,ruled,vlined,resetcount]{algorithm2e}
%% the algorithmic package does \newcommand{\TRUE}{...}
%\xpretocmd{\algorithmic}{\let\TRUE\relax}{}{}
\begin{document}
\begin{algorithm}[H]
\SetAlgoLined
\BlankLine
\KwData{Input}
\KwResult{PMI}
\BlankLine
\Begin
{
\textbf{Perform:}\\
Token\\
\For {each}
{
Pos\\
\If{C}
{
Write
}
}
\For {each}
{
U= F\\
B= F[i] “+” F[i+1]
}
\For {each}
{
bbbbb\\
\For {each}
{
\If {C} {
bbbb+=1
}
\If {C} {
bbb+=1
}
}
}
\For {each}
{
$
bbbb
$\
}
}
\caption{PMI}
\end{algorithm}
\end{document}