7

I have created the following phylogenetic tree of the Semitic languages: enter image description here

With the following code:

\documentclass{article}
\usepackage{tikz}
\usepackage{tikz-qtree}
\usepackage{forest}

\begin{document}

\begin{figure}[ht]
\centering
\begin{adjustbox}{width=1\textwidth}
\begin{forest}
for tree={
  font=\normalfont,
  minimum height=0.8cm,
  l sep+=15pt,
  inner sep=2pt,
  draw=none,
  fill=none,
  edge={draw=black, line width=0.5pt},
  anchor=north,
  child anchor=north,
  parent anchor=south,
  align=center,
  edge path={
    \noexpand\path[\forestoption{edge}]
      (!u.parent anchor) -- +(0,-8pt) -| (.child anchor)\forestoption{edge label};
  },
}
[\textsc{central-semitic} 
  [\textsc{arabic} 
    [Classical\\ /r/]
    [Levantine\\ /r/ /r\textsuperscript{ʕ}/]
    [Egyptian\\ /r/ /r\textsuperscript{ʕ}/]
  ]
  [\textsc{northwest-semitic} 
    [\textsc{aramaic} 
      [Biblical\\ /ɾ/]
      [Targumic\\ /ɾ/]
      [Syriac\\ /ɾ/]
      [{Jewish Babylonian}\\ /ɾ/]
      [\textsc{nena}\\ /ɾ/ /r/ /r\textsuperscript{ʕ}/ /ɻ/]
      [Neo-Mandaic\\ /r/ /ɹ/]
      [\d{T}uroyo-Mla\d{h}so\\ /r/]
      [\textsc{wna}\\ /r/]
    ]
    [\textsc{canaanite} 
      [Phoenician\\ /r/]
      [{Samaritan Hebrew}\\ /r/]
    ]
  ]
]
\end{forest}
\end{adjustbox}
\caption{Central-Semitic phylogeny with rhotics}
\label{fig:semitic_tree}
\end{figure}

\end{document}

I would like the node labelled "Arabic" not to be above the "Aramaic" branch, but to the left of it, with its tips at the same level of the Aramaic's and Canaanite's tips (basically, the tree should be ultrametric). How can I achieve it?

1
  • Use of the edges library would make this simpler as it provides the forked edges style.
    – cfr
    Commented Jul 13, 2023 at 0:16

1 Answer 1

7

You can annotate nodes with a tier value to force them to be at the same level in the tree. Here I've added tier=aramaic (the name is arbitrary) to both the aramaic node and the arabic node to achieve the configuration you're looking for. (I also removed tikz-qtree from the preamble, since it's not being used and added adjustbox and libertine.)

\documentclass{article}
\usepackage{tikz}
\usepackage{forest}
\usepackage{adjustbox}
\usepackage{libertine} 


\begin{document}

\begin{figure}[ht]
\centering
\begin{adjustbox}{width=1\textwidth}
\begin{forest}
for tree={
  font=\normalfont,
  minimum height=0.8cm,
  l sep+=15pt,
  inner sep=2pt,
  draw=none,
  fill=none,
  edge={draw=black, line width=0.5pt},
  anchor=north,
  child anchor=north,
  parent anchor=south,
  align=center,
  edge path={
    \noexpand\path[\forestoption{edge}]
      (!u.parent anchor) -- +(0,-8pt) -| (.child anchor)\forestoption{edge label};
  },
}
[\textsc{central-semitic} 
  [\textsc{arabic},tier=aramaic
    [Classical\\ /r/]
    [Levantine\\ /r/ /r\textsuperscript{ʕ}/]
    [Egyptian\\ /r/ /r\textsuperscript{ʕ}/]
  ]
  [\textsc{northwest-semitic} 
    [\textsc{aramaic},tier=aramaic 
      [Biblical\\ /ɾ/]
      [Targumic\\ /ɾ/]
      [Syriac\\ /ɾ/]
      [{Jewish Babylonian}\\ /ɾ/]
      [\textsc{nena}\\ /ɾ/ /r/ /r\textsuperscript{ʕ}/ /ɻ/]
      [Neo-Mandaic\\ /r/ /ɹ/]
      [\d{T}uroyo-Mla\d{h}so\\ /r/]
      [\textsc{wna}\\ /r/]
    ]
    [\textsc{canaanite} 
      [Phoenician\\ /r/]
      [{Samaritan Hebrew}\\ /r/]
    ]
  ]
]
\end{forest}
\end{adjustbox}
\caption{Central-Semitic phylogeny with rhotics}
\label{fig:semitic_tree}
\end{figure}

\end{document}

output of code

1
  • I forgot to include \usepackage{adjustbox} in my code. Anyway, it works now, so thanks a lot! Commented Jul 12, 2023 at 15:31

You must log in to answer this question.

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