algorithmic + textcolor == что-то не так — возможно, отсутствует элемент и неправильная компоновка

algorithmic + textcolor == что-то не так — возможно, отсутствует элемент и неправильная компоновка

Мне нужно раскрасить часть алгоритма с помощью \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}

Связанный контент