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