在下面的算法中我使用了包
\usepackage[linesnumbered,ruled,vlined]{algorithm2e}
1) 如何查看第 2 步之后的步骤编号?
2)除了
\renewcommand{\labelenumi}{(\Roman{enumi})}
获取罗马字体的产品编号?
\begin{algorithm}
\DontPrintSemicolon % Some LaTeX compilers require you to use \dontprintsemicolon instead
\KwIn{a,b,c,d}
\KwOut{e,r}
Calculate $x$, and $y$\\
Check,
\renewcommand{\labelenumi}{(\Roman{enumi})}
\begin{enumerate}[noitemsep,nolistsep]
\item If $k \geq n$, then the $m_{2}$.
\item If $h \geq j$, then $m_{1}$.
\end{enumerate}
Otherwise,\\
Initialisation: \textit{$g(0)=nj$}\\
$i=0$\\
Compute $n_{2}$,
\[
n(i)=\frac {a}{b(i)\sqrt{3v}}
\]\\
Update $b$,
\[
b(i+1)=( -\frac{1}{2(g(i)/D}+1)
\]\\
$i=i+1$,\\
Repeat \textit{Steps 3 to 6}, till $|a(i+1)-a(i) |<\epsilon$
\caption{algo of g}
\label{algo:b}
\end{algorithm}
答案1
出现一些变化和数字:
\documentclass{article}
\usepackage[linesnumbered,ruled,vlined]{algorithm2e}
\begin{document}
\begin{algorithm}
%\DontPrintSemicolon % Some LaTeX compilers require you to use \dontprintsemicolon instead
\KwIn{a,b,c,d}
\KwOut{e,r}
Calculate $x$, and $y$\\
Check, \linebreak
%\renewcommand{\labelenumi}{(\Roman{enumi})}
%\begin{enumerate}[noitemsep,nolistsep]
%\item
(I) If $k \geq n$, then the $m_{2}$.
\linebreak
%\item
(II) If $h \geq j$, then $m_{1}$.\\
%\end{enumerate}
Otherwise,\\
Initialisation: \textit{$g(0)=nj$}\\
$i=0$\\
Compute $n_{2}$,
\[
n(i)=\frac {a}{b(i)\sqrt{3v}}
\]\\
Update $b$,
\[
b(i+1)=( -\frac{1}{2(g(i)/D}+1)
\]\\
$i=i+1$,\\
Repeat \textit{Steps 3 to 6}, till $|a(i+1)-a(i) |<\epsilon$
\caption{algo of g}
\label{algo:b}
\end{algorithm}
\end{document}
我不确定应该给哪些行编号,但我希望现在总体思路已经很清楚了。
答案2
以下是使用以下功能的方法algorithm2e
形成条件和重复结构。当然,由于您使用 调用包vlined
,因此输出也包括此内容。
\documentclass{article}
\usepackage[linesnumbered,ruled,vlined]{algorithm2e}% http://ctan.org/pkg/algorithm2e
\DontPrintSemicolon
\begin{document}
\begin{algorithm}
\KwIn{$a$, $b$, $c$, $d$}
\KwOut{$e$, $r$}
Calculate~$x$ and~$y$\;
\lIf{$k \geq n$}{$m_2$}\;
\lIf{$h \geq j$}{$m_1$}\;
\Else{%
\Repeat{$|a(i+1)-a(i)| < \epsilon$}{%
Initialisation: $g(0) = nj$\;\label{stepA}
$i=0$\;
Compute~$n_2$
\[
n(i) = \frac{a}{b(i)\sqrt{3v}}
\]
\nl Update~$b$
\[
b(i+1) = (-\frac{1}{2(g(i)/D} + 1)
\]
\nl $i = i + 1$\;
}
}
\caption{My algorithm}
\label{algo:b}
\end{algorithm}
\end{document}
请注意,您可以使用常规,\label
而不必手动引用步骤\ref
。
答案3
我自己也遇到了这个问题。我的解决方案是在 enumitem 之前和之后放置“{”和“}”,即
{
\begin{enumerate}[noitemsep,nolistsep]
\item If $k \geq n$, then the $m_{2}$.
\item If $h \geq j$, then $m_{1}$.
\end{enumerate}
}
我希望这个解决方案也适合您(如果您仍然需要它)。