我必须编写一些算法,因此我决定使用 algorithmicx 包:
\usepackage{algorithm}
\usepackage{algorithmicx}
\begin{algorithm}
\begin{algorithmic}[1]
\For{aa}
\State $Sim(i,j) \gets \frac{v_{i} \cdot v_{j}}{\left|v_{i}\right|\left|v_{j}\right|}$
\EndFor
\end{algorithmic}
\label{alg:rAP}
\caption{algorithm}
\end{algorithm}
一切都很好,但是 LaTeX 说Undefinde control sequence \For
我很困惑,因为我只是按照algorithmicx
使用也没有问题\State
(当我注释掉时\For
)
我也尝试过\FOR
,\for
但是没什么作用。
似乎algorithmicx
包没有被弃用,这让我更加困惑。
答案1
来自algorithmicx
文档:
该包
algorithmicx
本身不定义任何算法命令,但提供了一组宏来定义这样的命令集。您可以仅使用algorithmicx
,并自行定义命令,也可以使用预定义的命令集之一。这些预定义的命令集(布局)是:
algpseudocode
...
algcompatible
...
algpascal
...
algc
...
这意味着algorithmicx
仅加载包,您必须自己定义命令。
如果您想使用其中一个预定义的命令集,那么您必须加载相应的包(根据您的情况)algpseudocode
。
梅威瑟:
\documentclass{article}
\usepackage{algorithm}
\usepackage{algpseudocode}
\begin{document}
\begin{algorithm}
\begin{algorithmic}[1]
\For{aa}
\State $Sim(i,j) \gets \frac{v_{i} \cdot v_{j}}{\left|v_{i}\right|\left|v_{j}\right|}$
\EndFor
\end{algorithmic}
\label{alg:rAP}
\caption{algorithm}
\end{algorithm}
\end{document}
输出: