在以下 MCE 中,颜色通过语法 ( )myred
定义:l3color
\color_set:nnn {myred} {rgb} {1,0,0}
\documentclass{article}
\usepackage{tikz}
\usepackage{l3draw}
\begin{document}
\ExplSyntaxOn
\tikz \draw[red] (0,0) circle [radius=10pt];
%
\color_set:nnn {myred} {rgb} {1,0,0}
\color_fill:n { myred }
\draw_begin:
\draw_path_circle:nn {0,0} {10pt}
\draw_path_use_clear:n { draw }
\draw_end:
%
% \tikz \draw[myred] (0,0) circle [radius=10pt];
\ExplSyntaxOff
\end{document}
l3draw
这种颜色在 的绘图中效果很好,但在tikz
的绘图中效果不好,通过取消注释指令可以看到\tikz \draw[myred] (0,0) circle [radius=10pt];
,错误如下:
!软件包 pgfkeys 错误:我不知道密钥“/tikz/myred”,我将忽略它。也许你拼错了。
有没有办法让l3color
的颜色可用tikz
?
答案1
用 定义的颜色\color_set:nnn
不能用 来使用xcolor
。最小示例
\documentclass{article}
\usepackage{xcolor}
\ExplSyntaxOn
\color_set:nnn { myred } { rgb } { 1,0,0 }
\ExplSyntaxOff
\begin{document}
\textcolor{myred}{Test}
\end{document}
这导致
! Package xcolor Error: Undefined color `myred'.
您可以定义自己的版本。
\documentclass{article}
\usepackage{tikz}
\usepackage{l3draw}
\ExplSyntaxOn
\cs_new_protected:Nn \db_color_set:nnn
{
\color_set:nnn { #1 } { #2 } { #3 }
\definecolor { #1 } { #2 } { #3 }
}
\ExplSyntaxOff
\begin{document}
\tikz \draw[red] (0,0) circle [radius=10pt];
\ExplSyntaxOn
\db_color_set:nnn {myred} {rgb} {1,0,0}
\color_fill:n { myred }
\draw_begin:
\draw_path_circle:nn {0,0} {10pt}
\draw_path_use_clear:n { draw }
\draw_end:
\ExplSyntaxOff
\tikz \draw[color=myred] (0,0) circle [radius=10pt];
\end{document}