我必须排版一些音节树。它们看起来像这样:
我目前正在使用该qtree
包对它们进行排版,但我不知道如何将所有最后的字母放在同一级别 - 就像上图中的红色字母一样。
以下是代码摘录:
\Tree[.$\sigma$ [.A \ipa{Z} ] [.R [.N \ipa{e} ] [.Co N ] ] ]
输出结果如下:
因此,/ʒ/、/e/ 和 /N/ 应该处于同一级别。这可能吗?我迁移到 TikZ 没问题——我只是认为这qtree
是一种更直接的方法。
为了说明清楚,这是我通过为\ipa
创建的简写,由 Rei Fukui 的精彩\newcommand
\textipa
tipa
包裹。
答案1
看一下此主题,那里有 tikz 和 tikz-qtree 解决方案;一旦你知道诀窍,这就会变得非常简单。这是 Alan Munn 针对您的特定问题而改编的最终解决方案。(我没有费心尝试让 IPA 正确。)
\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-qtree}
\begin{document}
\begin{tikzpicture}[sibling
distance=10pt, level distance=20pt]
\Tree[.$\sigma$ [.A [Z ] ] [.R [.N e ] [.Co N ] ] ]
\end{tikzpicture}
\end{document}
答案2
根据qtree
文档,显然这是不可能的:
将所有叶节点的文本排列在一条水平线上?
据我所知,qtree 的设计与这种树样式不兼容。如果有简单的方法让 qtree 具有这种功能,我会很高兴,但如果有,我还没有找到。
你可以使用tikz
:
\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage{ipa}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
[level 1/.style={sibling distance=15mm},
level 2/.style={sibling distance=10mm},
every node/.style={text height=0.5em,text depth=0em},
level distance=8mm]
\node {$\sigma$}
child {node {A}
child { child {node {\ipa{Z}}}
}
}
child {node {R}
child {node {N} child {node {\ipa{e}}}}
child {node {Co} child {node {N}}}
};
\end{tikzpicture}
\end{document}
答案3
答案4
要使用 获取该音节结构pst-asr
,代码如下:
\newtier{tsy}
\asr[tsy=(sy) 3ex ($\sigma$)] |
\@(0,ph){ʒ}\-(0,ts)
\@(1,ph){e}\-(1,ts)
\@(2,ph){N}\-(2,ts)
\@(0,ts){A}\-(1,tsy)
\@(1,ts){N}\-(1.5,sy)
\@(2,ts){Co}\-(1.5,sy)
\@(1.5,sy){R}\-(1,tsy)
\@(1,tsy){$\sigma$}
\endasr
您必须在序言中添加此内容:
\usepackage{pstricks,pst-xkey,pst-asr,graphicx}
\newpsstyle{bigsyls}{extragap=.6ex,unitxgap=true,xgap=3.5ex,ts=0pt ($\times$),sy=5.5ex ($\sigma$) .7ex,ph=-4.5ex (pf)}
\newpsstyle{dashed}{linestyle=dashed,dash=3pt 2pt}
\newpsstyle{crossing}{xed=true,xedtype=\xedcirc,style=dashed}
\newpsstyle{dotted}{linestyle=dotted,linewidth=1.2pt,dotsep=1.6pt}
\def\feat#1{$\rm [#1]$}
\def\crossing{\pscircle[linestyle=solid,linewidth=.5pt](0,0){.7ex}}%
\newdimen\dimpuba
\newdimen\dimpubb
\def\TO{\quad$\rightarrow$\quad}
\tiershortcuts
结果是: