问题:
我需要得到这样的东西:
但我得到了这个(注意垂直线):
我拥有的:
这是我的代码:
\documentclass{report}
\usepackage[linesnumbered,ruled,vlined,spanish,onelanguage]{algorithm2e}
\begin{document}
\begin{algorithm}
\caption{SomeTitle}
\label{alg:classes}
\DontPrintSemicolon
\SetAlgoLined
\footnotesize
delRef(Refutation ref)\{\;
\Indp
Lanza Hilo que borra refutaciones en esta parte\;
\If{se eliminaron refutaciones}{
synczd $\leftarrow$ false\;
actualizar size\;
}
\Indm
\}\;
\end{algorithm}
\end{document}
文档:
我检查过本文档但我不知道如何在\Indp
一如往常,非常感谢您抽出时间:)
答案1
这个答案与这个答案。 和\indp
不是\indm
的好朋友vlined
。如果您想缩进,您可以做的是使用 添加一个新的(在本例中为空)块,
\SetKwBlock{DummyBlock}{}{}
如上一个答案所示,这将为新的虚拟块提供一条垂直线,可以使用 轻松删除\SetAlgoNoLine
。然后我们在块中设置`\SetAlgoLined' 以在 If 上有垂直线。
梅威瑟:
\documentclass{report}
\usepackage[linesnumbered,ruled,vlined,spanish,onelanguage]{algorithm2e}
\SetKwBlock{DummyBlock}{}{}
\begin{document}
\begin{algorithm}
\caption{With Dummy}
\label{alg:classes}
\DontPrintSemicolon
\SetAlgoLined
\footnotesize
delRef(Refutation ref)\{
\SetAlgoNoLine\DummyBlock{\SetAlgoLined
Lanza Hilo que borra refutaciones en esta parte\;
\If{se eliminaron refutaciones}{
synczd $\leftarrow$ false\;
actualizar size\;
}}
\}\;
\end{algorithm}
\end{document}
请注意,这里的使用\;
很重要:它告诉algorithm2e
何时向下移动一行。虚拟块已经向下移动一行,因此我们可以删除\;
第 1 行末尾的。
一个更好的解决方案是将第 1 行插入到一个块中:
\documentclass{report}
\usepackage[linesnumbered,ruled,vlined,spanish,onelanguage]{algorithm2e}
\SetKwBlock{delRef}{delRef(Refutation ref)\{}{\}}
\begin{document}
\begin{algorithm}
\caption{With new Block}
\label{alg:classes}
\DontPrintSemicolon
\SetAlgoLined
\footnotesize
\SetAlgoNoLine\delRef{\SetAlgoLined
Lanza Hilo que borra refutaciones en esta parte\;
\If{se eliminaron refutaciones}{
synczd $\leftarrow$ false\;
actualizar size\;
}}
\end{algorithm}
\end{document}
我以为这不是你要找的东西。