我想知道以下标签着色程序之间是否存在根本区别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
)的文本都是红色的。