算法环境由外部命令着色

算法环境由外部命令着色

我发现在这种情况下算法环境会产生不受欢迎的输出。

\documentclass{article}

\usepackage{color}
\usepackage{algorithm}

\newcommand{\colormacro}[1]{{\color{red} [#1]}}

\begin{document}
    \colormacro{colored things long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long 
        long long long long long long}
    \begin{algorithm}[t]
        It is correct here.
        \caption{Title and lines are colored}
    \end{algorithm}
\end{document}

结果如下所示。

在此处输入图片描述

如果我用图形或表格替换算法,则不会出现

答案1

是的,当前文本颜色会渗入浮动环境,因为floatalgorithm- 创建环境的包algorithm- 不重置颜色。默认情况下,在常规浮点数(如figure和 )中执行此操作table

以下补丁使用与figure和类似的方法来纠正此行为table

在此处输入图片描述

\documentclass{article}

\usepackage{xcolor,lipsum}
\usepackage{algorithm}

\makeatletter
\let\old@float@makebox\float@makebox
\renewcommand{\float@makebox}[1]{%
  \color@vbox\normalcolor
    \old@float@makebox{#1}%
  \color@endbox}
\makeatother

\begin{document}

\color{red}%
\lipsum[1-7]

\begin{algorithm}[t]
  It is correct here.
  \caption{Title and lines are colored}
\end{algorithm}

\lipsum[7-11]

\end{document}

相关内容