我想知道如何在 LaTex 中最好地绘制如下图所示的音节结构图。
我尝试使用 tikz-qtree,但发现它不支持多个根,我尝试使用 tkz-graph,但发现它不支持非 ASCII 顶点标签(例如 $\sigma$ 不起作用)。两者都不支持我们在上图中看到的 C--V 线。
使用普通的 tikz 可以产生一些效果:
\begin{tikzpicture}
\tikzset{level 1+/.style={sibling distance=2\baselineskip}}
\node (s1) at (2,0) {$\sigma$} ;
\node (s2) at (5,0) {$\sigma$} ;
\node (s3) at (8,0) {$\sigma$} ;
\node (c1) at (1,-1) {C} ;
\node (v1) at (3,-1) {V} ;
\node (c2) at (4,-1) {C} ;
\node (v2) at (5,-1) {V} ;
\node (c3) at (6,-1) {C} ;
\node (c4) at (7,-1) {C} ;
\node (v3) at (8,-1) {V} ;
\node (c5) at (9,-1) {C} ;
\node (l1) at (1,-2) {ɬ} ;
\node (l2) at (3,-2) {ə} ;
\node (l3) at (4,-2) {w} ;
\node (l4) at (5,-2) {a} ;
\node (l5) at (6,-2) {w} ;
\node (l6) at (7,-2) {n} ;
\node (l7) at (8,-2) {ə} ;
\node (l8) at (9,-2) {n} ;
\draw (c1) -- (s1) ;
\draw (v1) -- (s1) ;
\draw (c2) -- (s2) ;
\draw (v2) -- (s2) ;
\draw (c3) -- (s2) ;
\draw (c4) -- (s3) ;
\draw (v3) -- (s3) ;
\draw (c5) -- (s3) ;
\draw (c1) -- (l1) ;
\draw[dotted] (v1) -- (l2) ;
\draw (c2) -- (l3) ;
\draw (v2) -- (l4) ;
\draw (c3) -- (l5) ;
\draw (c4) -- (l6) ;
\draw (v3) -- (l7) ;
\draw (c5) -- (l8) ;
\draw (c1) -- (v1) -- (c2) -- (v2) -- (c3) -- (c4) -- (v3) -- (c5) ;
\end{tikzpicture}
其结果为:
但还有一个问题:
- CV 和 CVC 之间的间距最好相同。
有什么建议么?
答案1
我觉得可能有更优雅的方式来做到这一点,但你可以用 来实现tikz-qtree
。下面我\Tree
在同一个 中使用了三个 s tikzpicture
,最后两个向右移动。Cs 和 Vs 之间的水平连接是手动建立的,方法是将它们命名为节点并使用\draw
。
我没有在叶子中添加适当的符号,因为我不知道需要什么才能使它们工作。查看屏幕截图,可以稍微调整一下移动量。
\documentclass[border=5mm]{standalone}
\usepackage{tikz-qtree}
\begin{document}
\begin{tikzpicture}[
sibling distance=1em
]
\Tree[.$\sigma$ [.\node(c1){C}; [.n ] ] [.\node(v1) {V}; [.e ] ] ]
\begin{scope}[xshift=2cm]
\Tree[.$\sigma$ [.\node(c2){C}; [.n ] ] [.\node(v2) {V}; \edge[dashed]; [.e ] ] [.\node(c3){C}; [.e ] ] ]
\end{scope}
\begin{scope}[xshift=4.5cm]
\Tree[.$\sigma$ [.\node(c4){C}; [.n ] ] [.\node(v3) {V}; [.e ] ] [.\node(c5){C}; [.e ] ] ]
\end{scope}
\draw (c1) -- (v1) -- (c2) -- (v2) -- (c3) -- (c4) -- (v3) -- (c5);
\end{tikzpicture}
\end{document}