Text Formattingxytree enumerate top alignment

Information and discussion about LaTeX's general text formatting features (e.g. bold, italic, enumerations, ...)
Post Reply
Linguist
Posts: 43
Joined: Mon Nov 07, 2011 12:07 pm

xytree enumerate top alignment

Post by Linguist »

Hello,

I'm now using xytree to make autosegmental diagrams, which is great, However, when I want to enumerate my examples the number appears below the diagram.

So I did what every good LaTeX user should do, and I consulted the xytree documentation in which a solution for this problem involving \leavevmode is given. This solution works...

...but, the number is aligned with the bottom tier of the diagram when I want the number aligned with the top tier of the diagram. How can this be achieved?

Here's a MWE; showing spreading of vowel features in Rotuman. (In case you're wondering.)

Code: Select all

\documentclass[a4paper,12pt]{report}
 \usepackage{xytree}

\begin{document}
 \enumerate{
  \item{\leavevmode
   \xy
    <7em,0pt>*\asrnode{\textsc{[+fr]}}="f1",
    <0pt,1cm>*\asrnode{s}="p1",
    <1em,1cm>*\asrnode{\ae}="p2",
    <2em,1cm>*\asrnode{k}="p3",
    <3em,1cm>*\asrnode{\ae}="p4",
    <4em,1cm>*\asrnode{n}="p5",
    <5em,1cm>*\asrnode{\ae}="p6",
    <6em,1cm>*\asrnode{v}="p7",
    <7em,1cm>*\asrnode{e}="p8",
    <0pt,2cm>*\asrnode{C}="c1",
    <1em,2cm>*\asrnode{V}="c2",
    <2em,2cm>*\asrnode{C}="c3",
    <3em,2cm>*\asrnode{V}="c4",
    <4em,2cm>*\asrnode{C}="c5",
    <5em,2cm>*\asrnode{V}="c6",
    <6em,2cm>*\asrnode{C}="c7",
    <7em,2cm>*\asrnode{V}="c8",
    <0.5em,3cm>*\asrnode{$\sigma$}="s1",
    <2.5em,3cm>*\asrnode{$\sigma$}="s2",
    <4.5em,3cm>*\asrnode{$\sigma$}="s3",
    <6.5em,3cm>*\asrnode{$\sigma$}="s4",
    "f1"+U;"p2"+D**\dir{.};
    "f1"+U;"p4"+D**\dir{.};
    "f1"+U;"p6"+D**\dir{.};
    "f1"+U;"p8"+D**\dir{-};
    "p1"+U;"c1"+D**\dir{-};
    "p2"+U;"c2"+D**\dir{-};
    "p3"+U;"c3"+D**\dir{-};
    "p4"+U;"c4"+D**\dir{-};
    "p5"+U;"c5"+D**\dir{-};
    "p6"+U;"c6"+D**\dir{-};
    "p7"+U;"c7"+D**\dir{-};
    "p8"+U;"c8"+D**\dir{-};
    "c1"+U;"s1"+D**\dir{-};
    "c2"+U;"s1"+D**\dir{-};
    "c3"+U;"s2"+D**\dir{-};
    "c4"+U;"s2"+D**\dir{-};
    "c5"+U;"s3"+D**\dir{-};
    "c6"+U;"s3"+D**\dir{-};
    "c7"+U;"s4"+D**\dir{-};
    "c8"+U;"s4"+D**\dir{-};
    \drop\frm{.}
   \endxy}
 }
\end{document}
P.S. I found the code used to compile the xytree documentation pdf to see how they got their autosegmental example (29) top aligned, but they used a macro provided by lingmacros; a package I'm not using. The code for this macro can be found by googling "cm-lingmacros" but I couldn't get it to work.

Recommended reading 2024:

LaTeXguide.org • LaTeX-Cookbook.net • TikZ.org

NEW: TikZ book now 40% off at Amazon.com for a short time.

Stefan Kottwitz
Site Admin
Posts: 10340
Joined: Mon Mar 10, 2008 9:44 pm

xytree enumerate top alignment

Post by Stefan Kottwitz »

You can compensate it using \raisebox, such as

\item\raisebox{\dimexpr-\totalheight+3.2ex\relax}{\leavevmode ... }

Stefan
LaTeX.org admin
Post Reply