normalcolor 无法与 tikz 配合使用

normalcolor 无法与 tikz 配合使用

在以下 MWE 中

\documentclass{article}
\usepackage{tikz}
\begin{document}

\color{gray}
Gray point \(X\)
\[ A = B\]

\normalcolor
Black point \(Y\)
\[ C = D\]

\begin{tikzpicture}
  \node at (0,0) {Test};
\end{tikzpicture}
\end{document}

我使用\color命令将颜色更改为灰色,然后\normalcolor改回默认颜色。这适用于文本和方程式,但由于某种原因,不适用于 tikzpicture 中的节点。我预计 tikzpictures 中的默认颜色会改回黑色。

这是预期的行为吗?如何重置 tikz 的默认颜色?

我知道我可以用 来包围该\color语句\begingroup -- \endgroup,但是我不想这样做,因为添加组会破坏我的特定应用程序。

答案1

作为乌尔里克·费舍尔在下面的评论中指出,这是一个错误xcolor(它的定义\normalcolor有缺陷,它不会更新.颜色。)。

这是一个解决方法:

\documentclass{article}
\usepackage{tikz}
\AtBeginDocument{\colorlet{normalcolor}{.}\def\normalcolor{\color{normalcolor}}} % workaround
\begin{document}

\color{gray}
Gray point \(X\)
\[ A = B\]

\normalcolor
Black point \(Y\)
\[ C = D\]

\begin{tikzpicture}
  \node at (0,0) {Test};
\end{tikzpicture}
\end{document}

相关内容