algorithm2e:将颜色应用于整行,不包括行号

algorithm2e:将颜色应用于整行,不包括行号

考虑以下 MWE:

\documentclass{article}

\usepackage{xcolor}
\usepackage[boxed, noline, linesnumbered]{algorithm2e}

\begin{document}

\begin{algorithm}[t]
    \textcolor{red}{\If{test}{\KwRet $-1$\;}}
    blah\;
    blah\;
    blah\;
\end{algorithm}

\end{document}

输出如下所示: 带有彩色行号的样本输出

如您所见,不仅线条,而且线号也都用红色绘制。我只想将红色应用于线条。

答案1

您可以设置/更改编号的格式。在本例中,重新格式化以使用 进行设置\color{black}。提供的设置宏是\SetNlSty

在此处输入图片描述

\documentclass{article}

\usepackage{xcolor}% http://ctan.org/pkg/xcolor
\usepackage[boxed, noline, linesnumbered]{algorithm2e}% http://ctan.org/pkg/algorithm2e
\SetNlSty{bfseries}{\color{black}}{}
\begin{document}

\begin{algorithm}[t]
    \textcolor{red}{\If{test}{\KwRet $-1$\;}}
    blah\;
    blah\;
    blah\;
\end{algorithm}

\end{document}

使用时格式选择有些奇怪,原因\SetNlSty在于其定义algorithm2e.sty,以及默认的\NlSty

\newcommand{\NlSty}[1]
  {\textnormal{\textbf{\relsize{\algocf@nlrelsize}#1}}}% default definition
\newcommand{\SetNlSty}[3]{\renewcommand{\NlSty}[1]
  {\textnormal{\csname#1\endcsname{\relsize{\algocf@nlrelsize}#2##1#3}}}}%

相关内容