algorítmico + cor do texto == algo está errado - talvez um item faltando e layout incorreto

algorítmico + cor do texto == algo está errado - talvez um item faltando e layout incorreto

Preciso colorir parte de um algoritmo com \textcolor. Eu tenho o seguinte código usando o pacote algorítmico:

\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}

No entanto, isto produz um erro: Something's wrong--perhaps a missing \item.e o recuo da instrução IF é quebrado:

insira a descrição da imagem aqui

Posso eliminar o erro com um \STATEcomando antes do \textcolorcomando assim:

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

Mas isso injeta uma linha vazia extra no algoritmo:

insira a descrição da imagem aqui

Qual é a maneira correta de colorir seletivamente partes de um algoritmo (ou talvez um subconjunto de itens em uma lista em geral?)

Responder1

Em vez de \textcolor, que é mais apropriado para sequências curtas de texto, você poderia usar {\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}

informação relacionada