algorithm2e 的问题:\SetAlgoLined 和 \Indp 无法正常工作

algorithm2e 的问题:\SetAlgoLined 和 \Indp 无法正常工作

问题:

我需要得到这样的东西:

所需输出(使用 LaTeX + gimp 生成)

但我得到了这个(注意垂直线):

我得到了什么

我拥有的:

这是我的代码:

\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}

我以为这不是你要找的东西。

两者的结果: 在此处输入图片描述

相关内容