tikz 中节点标签着色命令之间的差异

tikz 中节点标签着色命令之间的差异

我想知道以下标签着色程序之间是否存在根本区别TiKZ(除了定义手册中提到的样式之外),因为它们似乎产生相同的效果,或者这只是编码风格的问题?

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{positioning}

\begin{document}

\begin{tikzpicture}
\node (m1) at (0,0) (0,-2mm) [label={[red]right:$A$}]{First method}; %
\node (m2) [below=of m1] [label=right:\textcolor{red}{$A$}]{Second method};
\node (m3) [below=of m2] [label=right:{\color{red}$A$}]{Third method};
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案1

最后两个属于xcolor软件包。从其手册中:

  • \color{<color>}[<model-list>]{<spec-list>}切换到由名称/表达式或模型/规范指定的颜色。此颜色将一直有效,直到当前 TeX 组结束。

  • \textcolor{<color>}{<text>}[<model-list>]{<spec-list>}{<text>}只是 的替代语法\color,其中隐式添加了组。因此,它<text>以指定的颜色显示,但随后颜色会恢复为先前的值。此外,它还调用\leavevmode以确保水平模式的启动。

第一个与 TikZ 相关,它识别颜色名称。然后设置

fill=red,draw=red,text=red

此命令不对框内的文本进行操作,而是使用常规机制进行颜色更改。其他命令直接在节点文本框内进行操作。

例子:

\begin{tikzpicture}
\node[blue] (a) {\color{red}This should be blue};
\end{tikzpicture}

在此处输入图片描述

答案2

要查看差异,请看这个修改后的示例:

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\node (m1) [label={[red]right:@$A$B}]{First method}; %
\node (m2) [below=of m1] [label=right:@\textcolor{red}{$A$}B]{Second method};
\node (m3) [below=of m2] [label=right:{@\color{red}$A$B}]{Third method};
\end{tikzpicture}
\end{document}

在此处输入图片描述

使用第一种方法,整个文本都是红色的。

使用第二种方法,就只是$A$

使用第三种方法,从调用到\color到标签末尾(或另一个调用到\color)的文本都是红色的。

相关内容