Algorithm2e - 永久修复所有文档中没有斜体 if 子句的问题

Algorithm2e - 永久修复所有文档中没有斜体 if 子句的问题

我正在使用 algorithm2e 编写算法,并使用答案这个问题防止算法中的文本变成斜体(通过\SetArgSty{textrm}在算法开始处添加)。

\documentclass{article}
\usepackage{algorithm2e}
\begin{document}

\begin{algorithm}
\SetArgSty{textrm}  % <-'Flag' will not be written in italic
\Begin{
    Flag $\leftarrow$ True\;
    \If{Flag}{
        DoSomething()\;
    }
}
\end{algorithm}
\end{document}

我的文档中有几种算法,通常我喜欢在文档开始时就考虑到这些因素,而不是在每个算法中都写上这些因素。

我想知道,有没有办法让它适用于我的文档中的所有算法?

答案1

借助包etoolbox及其宏\AtBeginEnvironment

\documentclass{article}
\usepackage{algorithm2e}
\usepackage{etoolbox}
\AtBeginEnvironment{algorithm}{\SetArgSty{textrm}}  % <-'Flag' will not be written in italic

\begin{document}

\begin{algorithm}
\Begin{
    Flag $\leftarrow$ True\;
    \If{Flag}{
        DoSomething()\;
    }
}
\end{algorithm}
\end{document}

在此处输入图片描述

相关内容