私は擬似コードのタイプセットに 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
とコマンドを使用してください。\ULforem
ulem
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
、うまくいったようです。これで、期待どおりの形式でタイプセットされます。