我正在尝试使用以下 LaTex 编写以下算法算法2e包裹。
\IncMargin{1em}
\begin{algorithm}
\caption{An example}
\SetNoFillComment
\DontPrintSemicolon
\BlankLine
\SetKwInOut{Input}{Input}\SetKwInOut{Output}{Output}
\Input{set ($x$), $y$, $Q$, $x_t$, epsilon (\varepsilon)}
\Output{$G_r$}
\BlankLine
$x$ = \{$x_1$, $x_2$,\dots\}; $x_t$ \in $x$\;
\\$y$ = \{$y_1$, $y_2$,\dots\}\;
\SetKwFunction{Fmain}{main}
\SetKwProg{Fn}{Function}{:}{end}
\Fn{\Fmain{}}{
\eIf {condition 1}
{do this\;
do this\;
\eIf {condition 11}
{$x_t$ \leftarrow $\max\limits_y Q(x_t,.)$\;}
{x_t \leftarrow $rand$\quad$num$\;}
$G_u$ =$x_t$\;
}
{$G_u$ = 0\;}
return $G_u$\;}
\end{algorithm}
但上面的代码给出了以下输出。有人能帮我修改一下我的代码吗?谢谢。
答案1
由于使用不一致来$
分隔数学公式,因此输入时会出现很多(非常多)错误。
\documentclass{article}
\usepackage{algorithm2e}
\begin{document}
\IncMargin{1em}
\begin{algorithm}
\caption{An example}
\SetKwInOut{Input}{Input}
\SetKwInOut{Output}{Output}
\SetKwFunction{Fmain}{main}
\SetKwProg{Fn}{Function}{:}{end}
\SetNoFillComment
\DontPrintSemicolon
\BlankLine
\Input{set ($x$), $y$, $Q$, $x_t$, epsilon ($\varepsilon$)}
\Output{$G_r$}
\BlankLine
$x = \{x_1, x_2,\dots\}$; $x_t\in x$\;
$y = \{y_1, y_2,\dots\}$\;
\BlankLine
\Fn{\Fmain{}}{
\eIf {condition 1}{
do this\;
do this\;
\eIf {condition 11}
{$x_t \leftarrow \max\limits_y Q(x_t,.)$\;}
{$x_t \leftarrow \mathrm{rand}\,\mathrm{num}$\;}
$G_u = x_t$\;
}
{$G_u = 0$\;}
return $G_u$\;}
\end{algorithm}
\end{document}