I have to typeset some syllabic trees. They look like this:

A simple syllabic tree

I’m currently using the qtree package to typeset them, but I can’t figure out how to put all the last letters on the same level — like the red letters in the image above.

Here’s a code excerpt:

\Tree[.$\sigma$ [.A \ipa{Z} ] [.R [.N \ipa{e} ] [.Co N ] ] ]

And the output:


So, /ʒ/, /e/ and /N/ should be on the same level. Is that possible? I have no problem migrating to TikZ — I only think that qtree is a more straightforward approach.

Just to make things clear, \ipa is a shorthand I created through \newcommand for \textipa , provided by the Rei Fukui’s fantastic tipa package.

5 Answers 5


Have a look at this thread, there are both tikz and tikz-qtree solutions there; this turns out to be very simple to do once you know the trick. Here's Alan Munn's final solution from there adapted for your particular question. (I didn't bother to try to get the IPA right.)




distance=10pt, level distance=20pt]

\Tree[.$\sigma$ [.A  [Z ] ] [.R [.N e ] [.Co N ] ] ]


enter image description here

  • This is actually much easier than Gonzalo’s answer. I’m going to accept this instead, although both are pretty good. As for the IPA, you just load the package tipa, and the command is \textipa — but I use \newcommand to shorten it to \ipa. I’ll add this piece of information in my question.
    – rberaldo
    Commented Jun 27, 2011 at 14:56

Apparently, it is not possible, according to the qtree documentation:

Line up the text from all the leaf nodes on one horizontal line?

As far as I can tell, qtree’s design is incompatible with this style of tree. I’d love it if there was an easy way to give qtree this capability, but if there is, I haven’t figured it out.

You could use tikz instead:



  [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}}}


enter image description here

  • Thank you, that fits perfectly. I understand that there is a TikZ version of qtree, maybe it can be expanded to do this.
    – rberaldo
    Commented Jun 26, 2011 at 20:16
  • 3
    There's a simpler way to do this in tikz (see the link to a previous similar question, in my answer) -- add an extra child without adding a node at all. You don't have to worry about the formatting so much, that way.
    – kgr
    Commented Jun 26, 2011 at 20:33

Try John Frampton's pst-asr package (requires pstricks). Used for "typesetting autosegmental representations"

The example the op provides can be seen (more or less) at pp. 26–27 in the documentation, and at the top of page 8 of the examples document except it is a more complex representation with the addition of timing slots. Highly recommended for the phonologist.


I just found another solution to this, involving the \vline command. Simply insert \vline as a parent node under the space you want to stretch (the example below is of a syllable structure diagram, but can be applied to anything), ie:

   [.{\vline height 3.3em} (C\textsubscript{1}) (C\textsubscript{2}) ]
      [.Nucleus V\textsubscript{1}{ }(V\textsubscript{D}) ]
     [.Coda (C\textsubscript{3}) ] ]

enter image description here

You can specify the height and other properties of the vline to fit your particular tree. It seems this might be the simplest way, though perhaps not as elegant as the other solutions. Keep in mind that the \vline command and properties should be within curly braces.


To get that syllabic structure using pst-asr, the code is:

\asr[tsy=(sy) 3ex ($\sigma$)] |

You have to add this in you preamble:

\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}
\def\feat#1{$\rm [#1]$}

The result is:

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .