带图像的 tikz 树

带图像的 tikz 树

我想用 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}

相关内容