当我使用 ShareLatex 或 MikTex 编译以下 LaTeX 代码时:
\begin{algorithm}
\uIf{$|F_d(D'(C_{\hat{i}})) - F_d(D(C_{\hat{i}}))| > \sigma$ OR numSeqNoise > $\mu$}{
SplitCluster($C_j$)\;
}
\uElseIf{$|F_d(D'(C_{\hat{i}})) - F_d(D(C_{\hat{i}}))| > \tau$}{
numSeqNoise++\;
}
\uElseIf{$j \neq \hat{i}$}{
Remove $S_{R}$ from cluster $C_j$\;
Place $S_{R}$ in cluster $C_\hat{i}$\;
}\uElse{
Replace $S_{R}$ in cluster $C_\hat{i}$\;
}
\end{algorithm}
它可以正常编译,但是当我尝试使用 WriteLatex 时,总是会出现以下错误:
Missing { inserted.
<to be read again>
\gdef
l.485 }
\uElse{
指出错误的那一行是}\uElse{
。
有人可以帮助我吗?;)
答案1
您需要使用C_{\hat{i}}
而不是C_\hat{i}
,因为\hat
不会打开组。
印刷建议:由于\hat{i}
太高而且看起来很奇怪,LaTeX 提供了无点的 i \imath
。
最好使用\hat{\imath}
而不是\hat{i}
。我在下面的例子中替换了每个出现的情况。
\documentclass{article}
\usepackage{algorithm2e}
\begin{document}
\begin{algorithm}
\uIf{$|F_d(D'(C_{\hat{\imath}})) - F_d(D(C_{\hat{\imath}}))| > \sigma$ OR $\mathrm{numSeqNoise} > \mu$}{
SplitCluster($C_j$)\;
}
\uElseIf{$|F_d(D'(C_{\hat{\imath}})) - F_d(D(C_{\hat{\imath}}))| > \tau$}{
numSeqNoise++\;
}
\uElseIf{$j \neq \hat{\imath}$}{
Remove $S_{R}$ from cluster $C_j$\;
Place $S_{R}$ in cluster $C_{\hat{\imath}}$\;
}\uElse{
Replace $S_{R}$ in cluster $C_{\hat{\imath}}$\;
}
\end{algorithm}
\end{document}