考虑以下内容,其中箭头和标签使用以下颜色\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}