算法中的条件用下划线标出

算法中的条件用下划线标出

我使用 algorithm2e 来排版伪代码。总体来说,我发现它很容易使用,但是,我似乎找不到在 while 和 for 循环和 if 语句中强调条件的设置。

\begin{algorithm}[H]
\LinesNumbered
\SetAlgoNoLine
\DontPrintSemicolon
\KwData{New relation $m_i(r_{new})m_j$}
\KwResult{An updated network where consequences of the new relation is inferred.}
\BlankLine
Add $(i,j)$ to Q\;
\While{Q is not empty} {

  (i, j) $\leftarrow$ Q.dequeue\;

  \For{k $\leftarrow$ 0 $\KwTo$ n} {
    $m_k(r_{new})m_j$ $\leftarrow$ $m_k(r)m_j \cup (m_k(r)m_i \circ m_i(r_{new})m_j)$\;
    \If {$m_k(r_{new})m_j \subset m_k(r)m_j$} {
      Q.enqueue($(k,j)$)\;
    }
  }

  \For{k $\leftarrow$ 0 $\KwTo$ n} {
    $m_i(r_{new})m_k$ $\leftarrow$ $m_i(r)m_k \cup (m_i(r_{new})m_j \circ m_j(r)m_k)$\;
    \If {$m_i(r_{new})m_k \subset m_i(r)m_k$} {
      Q.enqueue($(i,k)$)\;
    }
  }
}
\caption{Allen's Path Consistency}
\end{algorithm}

其结果如下:

在此处输入图片描述

基本上,我想禁用条件的下划线。有什么建议吗?

答案1

实际上,您不必删除该ulem包,因为它可能在其他地方有用。使用包提供的\normalem和命令。\ULforemulem

套餐条款algorithm2e如下强调ulem默认情况下用下划线代替斜体全部强调文字,这就是为什么一起使用algorithm2eulem包装时下划线会自动出现。

但幸运的是,ulem软件包提供了一个\normalem命令/选项来禁用此默认功能,并提供了一个\ULforem命令/选项来启用它。所以这是我的解决方案:

\normalem %%%% disable auto underline

\begin{algorithm}[H]
    algorithms goes here ...
\end{algorithm}[H]

\ULforem %%%% enable auto underline

参考:

ulem手动的http://texdoc.net/texmf-dist/doc/generic/ulem/ulem.pdf

还有这个类似的例子:加载 ulem 后让 \emph 恢复正常

答案2

看来删除这个ulem我曾经用来删除的包就成功了。现在它按照预期的格式排版了。

相关内容