![为什么我的一段代码不起作用?](https://linux22.com/image/347355/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%E4%B8%80%E6%AE%B5%E4%BB%A3%E7%A0%81%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8%EF%BC%9F.png)
我正在尝试编写一段简单的代码,例如:
\begin{algorithm}
\caption{ALG 1}
\label{system}
\begin{algorithmic}
\For{$each n \in V$}
M \leftarrow Dijkstra(n);
\EndFor
\end{algorithmic}
\end{algorithm}
我已将其包括在内\usepackage{algorithm}
,\usepackage{algorithmic}
但它不起作用。
我得到:
LaTeX Error: Undefined control sequence.
<recently read> \For
l.81 \For
{$each n \in V$}
.
错误在哪里?
答案1
您使用的语法是algpseudocode
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{algorithm,algpseudocode}
\begin{document}
\begin{algorithm}
\caption{ALG 1}
\label{system}
\begin{algorithmic}
\For{each $n \in V$}
$M \leftarrow \operatorname{Dijkstra}(n)$;
\EndFor
\end{algorithmic}
\end{algorithm}
\end{document}
注意中线周围和each
外面的数学模式。
答案2
查看texdoc algorithmic
命令\FOR
是否\FORALL
\For
\documentclass{article}
\usepackage{algorithm,algorithmic}
\begin{document}
\begin{algorithm}
\caption{ALG 1}
\label{system}
\begin{algorithmic}
\FORALL{$n \in V$}
\STATE $M \leftarrow \mathrm{Dijkstra}(n)$;
\ENDFOR
\end{algorithmic}
\end{algorithm}
\end{document}