清除 xcolor 颜色定义

清除 xcolor 颜色定义

我正在尝试创建一个命令,从部分完整的定义颜色集中创建调色板。

为了确保调色板完整,我使用类似这样的行来使用后备默认值(如果未包含)。 \@ifundefined{\string\color@Red}{\definecolor{Red}{HTML}{eb3b47}}{} 这显然依赖于在设置调色板之前颜色Red未定义。

为了确保这一点,调色板设置好后,我运行\let\color@Red\undefined。不幸的是,这似乎根本不影响颜色定义,因此这不起作用。

这是相当重要的功能,因为没有它,切换调色板实际上就不起作用。Google 尚未提供帮助,所以我希望有人能为我指明正确的方向。

平均能量损失

\documentclass{article}

\usepackage{xcolor}

\begin{document}

\definecolor{Red}{HTML}{eb3b47}
\textcolor{Red}{This is Some Text}
\makeatletter
\let\color@Red\undefined
\makeatother
% Red should be undefined --- it isn't
\textcolor{Red}{This is Some Text}

\end{document}

在此处输入图片描述

答案1

思考通过 定义的颜色\definecolor{foo}{.}{..}会创建\color@foo。但是,它实际上会创建\\color@foo。因此,要取消定义颜色,请使用

\expandafter\let\csname\string\color@Red\endcsname\undefined

类似的讨论也包含在TeXbook

相关内容