使用 TikZ 箭头和标签的颜色规范,无需先使用 `\definecolor`

使用 TikZ 箭头和标签的颜色规范,无需先使用 `\definecolor`

考虑以下内容,其中箭头和标签使用以下颜色\definecolor

\documentclass{article}
\usepackage{tikz-cd}

\begin{document}

\definecolor{reddish}{HTML}{A01A3A}
\definecolor{blueish}{HTML}{196F9E}

\begin{tikzcd}
    \textcolor[HTML]{A01A3A}{P} & {Q}
    \arrow["f"'{color=blueish}, from=1-1, to=1-2, color=reddish]
\end{tikzcd}

\end{document}

definecolor没有必要顶点标签:我可以直接使用颜色规范\textcolor。我如何对箭头的标签和主体执行相同的操作?也就是说,我希望能够删除声明\definecolor并内联声明颜色规范。理想情况下,我可以编写类似以下内容: \arrow["f"'{color={\color[HTML]{196F9E}}}, from=1-1, to=1-2, color={\color[HTML]{A01A3A}}]

我很乐意定义一个新命令,例如,如果没有本机的 TikZ 语法,则\inlinecolor可以兼容。color

答案1

xcolor包中有这种奇怪的语法,我从未发现它有什么用处。

\documentclass{article}
\usepackage{tikz-cd}

\begin{document}

\definecolor{reddish}{HTML}{A01A3A}
\definecolor{blueish}{HTML}{196F9E}

\begin{tikzcd}
    \textcolor[HTML]{A01A3A}{P} & {Q}
    \arrow["f"'{color=blueish}, from=1-1, to=1-2, color=reddish]
\end{tikzcd}

\begin{tikzcd}
    \textcolor[HTML]{A01A3A}{P} & {Q}
    \arrow["f"'{color={rgb,256:red,26;green,111;blue,158}},
        from=1-1, to=1-2, color={rgb,256:red,160;green,26;blue,58}]
\end{tikzcd}

\begin{tikzcd}
    \textcolor[HTML]{A01A3A}{P} & {Q}
    \arrow["f"'{color={rgb,"100:red,"19;green,"6F;blue,"9E}},
        from=1-1, to=1-2, color={rgb,"100:red,"A0;green,"1A;blue,"3A}]
\end{tikzcd}

\end{document}

答案2

正如评论中提到的,您可以定义允许您执行此操作的键。(至于这个键有多大用处,其他人可以判断,但定义样式肯定比试图争论为什么它可能不值得花费更少的精力。;-)

\documentclass{article}
\usepackage{tikz-cd}
\begin{document}
% \definecolor{reddish}{HTML}{A01A3A}
% \definecolor{blueish}{HTML}{196F9E}
\tikzset{html color/.code={\definecolor{html-#1}{HTML}{#1}%
\tikzset{color=html-#1}}}
\begin{tikzcd}
    \textcolor[HTML]{A01A3A}{P} & {Q}
    \arrow["f"'{html color=196F9E}, from=1-1, to=1-2, html color=A01A3A]
\end{tikzcd}

\end{document}

在此处输入图片描述

相关内容