我正在尝试在 Vline 模式下定义一个没有垂直线的块。例如:
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[ruled]{algorithm2e}
\begin{document}
\begin{algorithm}
\SetKwBlock{Init}{Initialize}{}
\Init{
x $\leftarrow$ 3\;
\eIf{a=b}{
y $\leftarrow$ 5\;
}{
y $\leftarrow$ x\;
}
}
\end{algorithm}
\end{document}
我想在 ifelse 语句中保留垂直线,但在 Initialize 语句中将其删除。这可能吗?
注意:另一种方法可能是寻找一种方法来缩进部分文本,但这种方法在我的情况下不起作用,因为缩进文本不会缩进 ifelse 语句中的垂直线。提前谢谢,我是 StackExchange 这一部分的新手。
答案1
您可以延迟切换线路,直到\Init
:
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[ruled,noline]{algorithm2e}
\begin{document}
\begin{algorithm}
\SetKwBlock{Init}{Initialize}{}
\Init{
x $\leftarrow$ 3\;
\SetAlgoLined
\eIf{a=b}{
y $\leftarrow$ 5\;
}{
y $\leftarrow$ x\;
}
}
\SetAlgoNoLine
\end{algorithm}
\end{document}