环境中的文本颜色影响环境之外的效果

环境中的文本颜色影响环境之外的效果

我正在定义一个文本应为红色的环境。我认为bgroupandegroup将确保只有框是红色的,但框后面的文本也会变成彩色。

群组不会将其保持本地化吗?在这种情况下我该如何更改它?

\documentclass{article}
\usepackage[dvipsnames]{xcolor}

\newenvironment{comment}
 {\par\medskip
   \bgroup\color{red}%
   \textbf{Hello: }
 }
 {
  \egroup\medskip
 }


\begin{document}
    Test text begin below:

    \comment{ Inside environment }
    
    1234 (should be black)  % but it is appearing red
    
\end{document}

答案1

组确实如此,但您使用不当。编译代码后,会发现以下内容.log

(\end occurred inside a group at level 1)

### simple group (level 1) entered at line 17 ({)
### bottom level 

这表明您打开了一个组但从未关闭它。这显然是由于您使用您定义的环境的命令形式comment而没有其关闭部分,即\endcomment

\comment被 一个 团体 开场 所 取代\bgroup, 但是 因为 你 从不 叫 ,\endcomment所以 没有\egroup.

这里的选项取决于你想使用什么。以下真正的命令形式版本有效:

\newcommand{\comment}[1]{%
  \par\medskip
  \bgroup\color{red}%
  \textbf{Hello: }%
  #1
  \egroup\par\medskip
}

在此处输入图片描述

有关的:如果使用环境的命令形式会发生什么?

相关内容