演算法 + 文字顏色 == 出了點問題——可能缺少一個項目,而且佈局不正確

演算法 + 文字顏色 == 出了點問題——可能缺少一個項目,而且佈局不正確

我需要用 \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}

相關內容