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