![用星号标记算法的某些行,为什么它并不总是有效?](https://linux22.com/image/328917/%E7%94%A8%E6%98%9F%E5%8F%B7%E6%A0%87%E8%AE%B0%E7%AE%97%E6%B3%95%E7%9A%84%E6%9F%90%E4%BA%9B%E8%A1%8C%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88%E5%AE%83%E5%B9%B6%E4%B8%8D%E6%80%BB%E6%98%AF%E6%9C%89%E6%95%88%EF%BC%9F.png)
我正在使用 IEEEtran 和 algorithm2e 包。我有一个带编号行的算法。我在行前用星号标记了一些行,如下所示:
\documentclass[conference]{IEEEtran}
\usepackage[ruled,linesnumbered]{algorithm2e}
% *** MATH PACKAGES ***
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}
\begin{algorithm}
\nlset{1}$x=1$\;
\nlset{*2}\For{$i=1$ \emph{\KwTo} $10$}{
\nlset{*3}$x=x+1$\;
\nlset{*4}}
\end{algorithm}
\end{document}
问题是我无法在 for 循环的“结束”行中生成星号:相反,上面的代码会在“结束”行之前生成一个新行,并用星号标记。有办法吗?
谢谢。
答案1
您可以改用它\SetNlSty{}{}{}
并将其与要添加星号的行放在一个组中。
\documentclass[conference]{IEEEtran}
\usepackage[ruled,linesnumbered]{algorithm2e}
\begin{document}
\begin{algorithm}
$x=1$\;
{% star group begin
\SetNlSty{textbf}{*}{}
\For{$i=1$ \emph{\KwTo} $10$}{
$x=x+1$\;
}
}% star group end
$x=2$
\end{algorithm}
\end{document}
输出: