Estou usando o algoritmo2e para composição de pseudocódigo. Geralmente acho que é fácil de usar, no entanto, não consigo encontrar a configuração que sublinha as condições nos meus loops while e for e nas instruções 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}
O que produz este resultado:
Basicamente, quero desabilitar o sublinhado das condições. Alguma sugestão?
Responder1
Na verdade, você não precisa remover o ulem
pacote, pois ele pode ser útil em outro lugar. Use os comandos \normalem
e \ULforem
fornecidos pelo ulem
pacote.
As condições do algorithm2e
pacote sãoenfatizoue ulem
pacotepor padrãosubstitui itálico por sublinhado paratodostexto enfatizado, é por isso que os sublinhados aparecem automaticamente ao usar algorithm2e
e ulem
empacotar juntos.
Mas felizmente ulem
o pacote fornece um \normalem
comando/opção para desabilitar esse recurso padrão e fornece um \ULforem
comando/opção para habilitá-lo. Então aqui está minha solução:
\normalem %%%% disable auto underline
\begin{algorithm}[H]
algorithms goes here ...
\end{algorithm}[H]
\ULforem %%%% enable auto underline
Referência:
ulem
manualhttp://texdoc.net/texmf-dist/doc/generic/ulem/ulem.pdf
e este exemplo semelhante:Voltando ao normal após carregar o ulem
Responder2
Pareceu que remover o ulem
pacote, que uma vez usei para riscar, resolveu o problema. Agora ele formata com o formato esperado.