我想画一棵树(最好是森林,但 tikz-qtree 也可以),其中有一个多主结构但没有顶部节点,即顶层应该是两个母节点。看图了解我想要实现的结构类型。
到目前为止我得到的信息是这样的:
\documentclass[tikz]{standalone}
\usepackage[normalem]{ulem}
\usepackage[linguistics]{forest}
\begin{document}
\begin{forest}
[, no edge
[D,name=D
[A]
[, no edge]
]
[E
[B]
[C,name=C]
]
]
\draw (D) -- (C);
\end{forest}
\end {document}
所以如你所见,这与我想要的相差甚远。我对 (La)TeX 还很陌生,所以任何帮助我都会很感激。
答案1
感谢您提供 MWE。您几乎已经完成了。您可以使用键删除根节点phantom
,并且您需要在命名节点的正确锚点处绘制线。
\documentclass[tikz]{standalone}
\usepackage[normalem]{ulem}
\usepackage[linguistics]{forest}
\begin{document}
\begin{forest}
[, phantom
[D,name=D
[A]
[, no edge]
]
[E
[B]
[C,name=C]
]
]
\draw (D.south) -- (C.north);
\end{forest}
\end {document}
答案2
graphviz 是一款出色的软件,可以实现多种图表。dot2tex 可以将 graphviz 代码转换为 latex 代码。dot2texi 是一个 LaTeX 包,用于将 graphviz 代码包含到 LaTeX 文档中。必须使用“-shell-escape”选项进行编译。
\documentclass{standalone}
\usepackage{tikz}
\usepackage{dot2texi}
\begin{document}
\begin{dot2tex}[dot]
graph T
{node [shape=none fixedsize=true width=.2 height=.2]
ranksep=.5
A [label="α" texlbl="$\alpha$"]
B [label="β" texlbl="$\beta$"]
C [label="α" texlbl="$\alpha$"]
D [label="β" texlbl="$\beta$"]
E [label="γ" texlbl="$\gamma$"]
{rank=same A;B}
{rank=same C;D;E}
A --{C;E}
C--D [style=invis]
B -- {D;E}[constraint=false]
}
\end{dot2tex}
\end{document}