我正在尝试弄清楚如何覆盖环境的一部分的颜色,然后将其恢复为原来的值。我有这个(这里仅包含相关代码):
\newenvironment*{foo}
{
\colorlet{colorsave}{bar}
\definecolor{bar}{RGB}{100,100,100}
% some stuff that relies on the bar color being overridden
% restore the bar color to its former value (this is the part I don't know how to do)
\definecolor{bar}{RGB}{colorsave}
% some stuff that relies on the bar color being restored to its former value
}
{
}
这无法编译。从我冗长的日志中我可以看出,根本原因是:
Bla.tex:207: LaTeX Error: \begin{figure} on input line 199 ended
by \end{sidebar}.
! Emergency stop
*** (job aborted, no legal \end found)
如果我省略掉\definecolor
,我可以看到它正确地覆盖了颜色,所以那部分是有效的。修复部分让我很困惑。
请注意,我不能依赖环境完成后恢复的颜色,因为我的部分环境依赖于恢复颜色。这是一个侧边栏。我需要覆盖侧边栏标题的颜色,然后将其恢复为正文。
有办法实现这个吗?
答案1
您可以通过以下方式恢复
\colorlet{bar}{colorsave}