梅威瑟:
\documentclass{article}
\usepackage{tikz}
\usepackage[edges]{forest}
\newcommand{\nodecircle}{circle,fill,outer sep=0,inner sep=1pt}
\begin{document}
\begin{forest}
[,\nodecircle, alias = I, s sep=0.4cm,l sep=2cm,
[Rain]
[Shine]
]
\node[above] at (I){Nature};
\end{forest}
\end{document}
这会产生一个有两个节点并向下生长的森林。
我知道要改变它生长的方向,我必须使用命令grow = option
。
但是,如何让两个子节点都增长分离方向?
具体来说,我希望第一个子节点向东生长,第二个子节点向西生长。
然而,我该如何从同一父节点? 具体来说,我希望 Rain 节点水平位于右侧(即east
),而 Shine 节点位于west
。
这个问题提供了一个答案,甚至回答者都认为它不够优雅。我想知道是否有更新的方法来做到这一点。
答案1
此代码有效(基于方法 1这里):
\documentclass{article}
\usepackage{tikz}
\usepackage[edges]{forest}
\newcommand{\nodecircle}{circle,fill,outer sep=0,inner sep=1pt}
\begin{document}
\begin{forest}
[,\nodecircle, alias = I, l sep=2cm, grow = east
[,\nodecircle, before computing xy={l=3cm,s=0cm}, alias = rain]
[,\nodecircle, before computing xy={l=-3cm,s=0cm}, alias = shine]
]
\node[above] at (I){Nature};
\node[above] at (rain){Rain};
\node[above] at (shine){Shine};
\end{forest}
\end{document}
非常欢迎更多优雅的解决方案。