请告诉我如何使用\tikzset
或制作由一些节点组成的自定义节点集\tikzstyle
。
在下面的代码中,我想将node
第 (1)-(3) 行设置为由 设置的自定义节点\tikzset
。在 Tikz 树包中,问题在于很难将节点命令一起设置为\tikzset
。因为节点描述在不同的位置。例如,第 (2) 行距离第 (3) 行有 4 行。
\documentclass{article}
\usepackage[dvipdfmx]{graphicx,xcolor}
\usepackage{tikz}
\usetikzlibrary{trees}
\usetikzlibrary{positioning}
\begin{document}
\tikzstyle{every node}=[draw=black,thick,anchor=west]
\begin{tikzpicture}[%
grow via three points={one child at (0.6,-0.7) %
and two children at (0.5,-0.7) and (0.5,-0.5)},%
edge from parent path={(\tikzparentnode.south) |- (\tikzchildnode.west)}]
\node {Root}
child {
node (child1){Child1} % (1)
child { node {Child2}
child { node {Child3}
}
}
node[right=3mm of child1,draw=orange]{msglabel!} %(2)
node[right=24mm of child1,draw=purple]{msglabel2!} % (3)
};
\end{tikzpicture}
\end{document}
答案1
欢迎来到 TeX.SE。我不确定这是否是您要找的内容,但您可以这样做:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{trees, positioning}
\newcommand{\foobar}[3]{#1 #3 #2}
\begin{document}
\begin{tikzpicture}[
every node/.style={draw=black, thick, anchor=west},
grow via three points={one child at (0.6,-0.7)
and two children at (0.5,-0.7) and (0.5,-0.5)},
edge from parent path={(\tikzparentnode.south) |- (\tikzchildnode.west)}
]
\node {Root}
child {
\foobar
{ node (child1) {Child1} } % (1)
{
node[right=3mm of child1, draw=orange]{msglabel!} %(2)
node[right=24mm of child1, draw=purple]{msglabel2!} % (3)
}
{
child
{
node {Child2}
child { node {Child3} }
}
}
};
\end{tikzpicture}
\end{document}
注意:\tikzstyle
已过时,最好使用\tikzset
,例如:
\tikzset{
every node/.style={draw=black, thick, anchor=west},
}
tikzpicture
但由于这个特定设置相当具有侵入性,我更喜欢在需要的地方的选项中进行设置。这样,它就不会影响tikzpicture
同一文档的其他环境(参见上面的例子)。