我想用 latex 画一棵树,节点上有图像。我一直在尝试使用正常的树绘制程序,但节点上我想要的图像把一切都搞乱了。
帮助!
答案1
我觉得我不应该回答这个问题。而且,我觉得我的回答不太可能对你有帮助。不过,把一堆现有的图像放到森林树中还是挺有趣的。而且,嘿,也许有人有一天会发现它的用处。
无论如何,这是一个 Forest 版本。它使用 Forest 的edges
库来提供forked edges
样式。
这个想法是,你将相关图像的名称放入每个节点。如果你需要将任何选项传递给\includegraphics
,你可以通过 Forest 选项 传递它们graphics
。
这是我的树:
鸭子是 Paulo 提供的。狮子当然是 CTAN/TUG 徽标。驴子是 frankes 的 openclipart.org 图片的修改版本(https://openclipart.org/detail/214238/donkey-coloured),出口到钛钾Z via Inkscape。猫、电车和大锅都是我的。
\documentclass[tikz,border=10pt]{standalone}
\usepackage[edges]{forest}
\begin{document}
\forestset{
declare toks={graphics}{},
}
\begin{forest}
before typesetting nodes={
for tree={
content/.wrap 2 pgfmath args={\includegraphics[#2]{#1}}{content()}{graphics()},
},
where={isodd(n_children())}{calign=child, calign child/.wrap pgfmath arg={#1}{int((n_children()+1)/2)}}{},
},
forked edges,
for tree={
parent anchor=children,
child anchor=parent,
l sep'+=30mm,
s sep'+=10mm,
fork sep'+=10mm,
edge={line width=2.5pt},
},
[cath-gadael-chartref
[cath
[asyn]
[duck]
[ctanlion, graphics={scale=1.5}]
]
[trolley-bws, graphics={scale=8}
[cauldron]
]
]
\end{forest}
\end{document}