算法 + 文本颜色 == 出了问题 - 可能是缺少某个项目,或者布局不正确

算法 + 文本颜色 == 出了问题 - 可能是缺少某个项目,或者布局不正确

我需要使用 \textcolor 为算法的一部分着色。我有以下使用算法包的代码:

\usepackage{algorithmic}
\usepackage{xcolor}
...
\begin{algorithmic}    
    \FOR{$s = 1, \dots, S$}
    \textcolor{red} {
    \IF {$t<T'$} 
        \STATE do foo
    \ELSE 
        \STATE do bar
    \ENDIF
    }
    \ENDFOR
\end{algorithmic}

但是这会产生错误: Something's wrong--perhaps a missing \item.并且 IF 语句的缩进被破坏:

在此处输入图片描述

\STATE我可以使用以下命令消除错误,\textcolor如下所示:

\begin{algorithmic}    
    \FOR{$s = 1, \dots, S$}
    \STATE \textcolor{red} {
    \IF {$t<T'$} 
        \STATE do foo
    \ELSE 
        \STATE do bar
    \ENDIF
    }
    \ENDFOR
\end{algorithmic}

但这会在算法中注入一个额外的空行:

在此处输入图片描述

选择性地为算法的某些部分(或者通常是列表中的部分项目)着色的正确方法是什么?

答案1

除了\textcolor更适合短文本序列的 ,您还可以使用{\color{red} ... }

\documentclass{article}

\usepackage{algorithmic}
\usepackage{xcolor}
\begin{document}
\begin{algorithmic}    
    \FOR{$s = 1, \dots, S$}
    {\color{red}
    \IF {$t<T'$} 
        \STATE do foo
    \ELSE 
        \STATE do bar
    \ENDIF
    }
    \ENDFOR
\end{algorithmic}
\end{document}

相关内容