アルゴリズム + テキストカラー == 何かがおかしい -- おそらくアイテムが欠落しているか、レイアウトが間違っている

アルゴリズム + テキストカラー == 何かがおかしい -- おそらくアイテムが欠落しているか、レイアウトが間違っている

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

関連情報