在
\documentclass[tikz,border=5]{standalone}
\usetikzlibrary{mindmap}
\tikzset{
every node/.append style={concept, minimum size=0cm, inner sep=2mm, text width=, minimum size=0cm}
}
\begin{document}
\begin{tikzpicture}[mindmap,text=white,fill=white]
\path node {O} [clockwise from=45, level 1/.append style={sibling angle=60} ]
child { node[align=center] {AAAAAAAAAAAAAAAAAA\\AAAAAAAAAAAAAAAAAA\\AAAAAAAAAAAAAAAAAA\\AAAAAAAAAAAAAAAAAA\\AAAAAAAAAAAAAAAAAA\\AAAAAAAAAAAAAAAAAA\\AAAAAAAAAAAAAAAAAA\\AAAAAAAAAAAAAAAAAA\\AAAAAAAAAAAAAAAAAA} }
child { node[align=center] {AAAAAAAAAAAAAAAAAA\\AAAAAAAAAAAAAAAAAA\\AAAAAAAAAAAAAAAAAA\\AAAAAAAAAAAAAAAAAA\\AAAAAAAAAAAAAAAAAA\\AAAAAAAAAAAAAAAAAA\\AAAAAAAAAAAAAAAAAA\\AAAAAAAAAAAAAAAAAA\\AAAAAAAAAAAAAAAAAA} }
child { node {BBB} }
child { node {BBB} };
\end{tikzpicture}
\end{document}
可以看出,两个大 A 节点之间的白色空间小于两个 B 节点之间的白色空间。
如何设置节点顶点之间的角度,而不是节点中心(此处用 设置sibling space
),以便白色空间始终相同?
答案1
我只有悲伤的消息。
mindmap
采用 Ti钾Z 的child
语法。让我们来看看 Ti钾Z 处理child
。
\def\tikz@childnode[#1]#2{% \advance\tikznumberofcurrentchild by1\relax% {\tikzset{every child/.try,#1}\expandafter}% \iftikz@child@missing% \tikzgdeventcallback{node}{}% \else% \setbox\tikz@whichbox=\hbox\bgroup% \unhbox\tikz@whichbox% \hbox\bgroup\bgroup% \pgfinterruptpath% \pgfscope% \let\tikz@transform=\pgfutil@empty% \tikzset{every child/.try,#1}% \tikz@options% \tikz@transform% \let\tikz@transform=\relax% \tikz@grow% % Typeset node: \edef\tikz@parent@node@name{[name=\tikzparentnode-\the\tikznumberofcurrentchild,style=every child node]}% \def\tikz@child@node@text{[shape=coordinate]{}} \tikz@parse@child@node#2\pgf@stop% \expandafter\expandafter\expandafter\node \expandafter\tikz@parent@node@name \tikz@child@node@text \pgfextra{\global\let\tikz@childnode@name=\tikz@last@fig@name};% \let\tikzchildnode=\tikz@childnode@name% {% \def\tikz@edge@to@parent@needed{edge from parent} \ifx\tikz@child@node@rest\pgfutil@empty% \path edge from parent;% \else% \path \tikz@child@node@rest \tikz@edge@to@parent@needed;% \fi% }% \endpgfscope% \endpgfinterruptpath% \egroup\egroup% \egroup% \fi% }
这篇文章很长,但逻辑很清晰:
\tikz@grow
使树生长。也就是说,它将“笔”移动到子项(或孙项、或祖父母……你知道……)的预期位置\node
排版一个节点,其大小尚不清楚。
因此,我们发现,没有简单的方法可以根据子节点(或孙节点,或......)的大小来移动它。也许你可以在之后做一些事情\node
,但你需要处理下一个节点,因为下一个调用\tikz@grow
不知道发生了什么。然后我们开始考虑\tikz@grow
一劳永逸地取消。毕竟,正如@cfr 前面总结的那样:
您必须先撤消其配置,然后执行您自己的配置,否则只需要后者。
所以最后一个问题是:我们还能做什么?手册第 429 页有张图片
这应该是一个好的开始。