我想在我的伪代码中使用 \ref 命令,如下所示:第一行:“mut Eq. x”第二行:“cr Eq. y”第三行:“sel Eq. z”但我在第二行中收到“Latex 错误:命令 \item 在数学模式下无效”。第一行似乎可以正常工作。我该如何修复它?任何帮助表示感谢
\documentclass[11pt]{article}
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\AtBeginEnvironment{algorithmic}{\let\textbf\relax}
\usepackage{amsmath}
\usepackage[fleqn]{mathtools}
\usepackage{algorithm}
\usepackage{algpseudocode}
\usepackage{fontspec}
\usepackage{bm}
\begin{document}
\begin{algorithm}
\begin{algorithmic}[1]
\If {$\boldsymbol{E_r}$ = $\boldsymbol{M_r}$} \boldsymbol{$let$~$bac$~$ go:$}
\State \boldsymbol{$ME$~$mut$~$as$~$in$~$(Eq.$~$$} \ref{eq:best1})
\State \boldsymbol{$ME$~$cr$~$as$~$in$~$(Eq.$~$)$} \ref{eq:creq})
\State \boldsymbol{$DE$~$sel$~$as$~$in$~$(Eq.$~$)$} \ref{eq:seleq})
\end{algorithmic}
\end{algorithm}
\end{document}
答案1
您的设置中存在许多问题:
\boldsymbol
应在数学模式下使用。也就是说,$\boldsymbol{..}$
而不是\boldsymbol{$..$}
;如果您使用类似的构造
\If{<condition>}
,则需要稍后使用将其关闭\EndIf
;\label
-\ref
开箱即用algorithmic
(见下文)。
这是一个简化的例子,因为我不知道所有符号的用途\boldsymbol
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{algorithm,algpseudocode}
\begin{document}
\begin{algorithm}
\begin{algorithmic}[1]
\If {$\boldsymbol{E_r}$ = $\boldsymbol{M_r}$}
\State ME mut as in (Eq.~\ref{eq:label})
\EndIf
\end{algorithmic}
\end{algorithm}
\begin{equation}
f(x) = ax^2 + bx + c \label{eq:label}
\end{equation}
\end{document}