l3color 的颜色:无法用于 tikz?

l3color 的颜色:无法用于 tikz?

在以下 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}

在此处输入图片描述

相关内容