알고리즘의 조건에는 밑줄이 그어져 있습니다.

알고리즘의 조건에는 밑줄이 그어져 있습니다.

나는 의사 코드를 조판하기 위해 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패키지기본적으로이탤릭체를 밑줄로 바꿉니다.모두텍스트를 강조하기 때문에 함께 사용 algorithm2e하고 ulem패키징할 때 밑줄이 자동으로 표시됩니다.

그러나 다행스럽게도 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한때 삼진에 사용했던 패키지를 제거하는 것이 효과가 있었던 것으로 보입니다 . 이제 예상된 형식으로 조판됩니다.

관련 정보