# How to draw language family tree in LaTeX

I have been attempting to draw this language family tree into LaTeX: I have tried using the tikz package as well as the forest package, but to no avail. I do not need the colours in the tree, nor do I need the lines to be formatted in the same way, but just for the lines to go to the correct language(s).

This is the code I have now (I have not included the "Baltic" branch, as it is not absolutely neccesary):

\documentclass[a4paper, 11pt]{book}
\usepackage{lipsum} %This package just generates Lorem Ipsum filler text.
\usepackage{fullpage} % changes the margin
\usepackage{forest}
\usepackage{showframe} % just to show the margin lines; comment this package     out for the final version

\begin{document}

\section*{Language tree}

\begin{forest}
for tree={
edge path={
\noexpand\path [thick, \forestoption{edge}] (!u.parent anchor) --   +(0,-7pt) -| (.child anchor)\forestoption{edge label};
}, % this option together with setting the parent and child anchors to south and north, respectively, gives you the right-angle style for your branches
parent anchor=south,
child anchor=north,
align=center, % allows you to put line breaks within nodes
}
[Indo-European
[Balto-Slavic
[Slavic
[West
[Old West Slavic
[Minovian
[Old Minovian
[Minovian]
[Lechitic
[Old Polish
[Polish]
[Silesian]
[Polabian
[Pomeranian
[Kashubian]
[Czech-Slovak
[Czech]
[Slovak]
[Knaanic
[Sorbian
[South
[Western
[Slovene]
[Serbo-Croatian
[Bosnian]
[Croatian]
[Serbian]
[Eastern
[Old Church Slavonic
[Bulgarian]
[Church Slavonic]
[Macedonian]
[East
[Old Novgorod]
[Old East Slavic
[Old Ruthenian]
[Belarusian]
[Russian]
[Rusyn]
[Ukranian]
]
]
]
]
]
]
]
\end{forest}

\end{document}


These are the errors I receive:

Is it possible to do this in LaTeX?

(I am using XeLaTeX compiler)

Thank you for any help in advance.

As requested by the OP, I paste a version that compiles. I have starting shuffling closing brackets ] but not finished it. -marmot

\documentclass[a4paper, 11pt]{book}
\usepackage{lipsum} %This package just generates Lorem Ipsum filler text.
\usepackage{fullpage} % changes the margin
\usepackage{forest}
\usepackage{showframe} % just to show the margin lines; comment this package     out for the final version

\begin{document}

\section*{Language tree}

\begin{forest}
for tree={
edge path={
\noexpand\path [thick, \forestoption{edge}] (!u.parent anchor) --   +(0,-7pt) -| (.child anchor)\forestoption{edge label};
}, % this option together with setting the parent and child anchors to south and north, respectively, gives you the right-angle style for your branches
parent anchor=south,
child anchor=north,
align=center, % allows you to put line breaks within nodes
%grow'=south
}
[Indo-European
[Balto-Slavic
[Slavic
[West
[Old West Slavic
[Minovian
[Old Minovian
[Minovian]
]
]
[Lechitic
[Old Polish
[Polish
[Silesian]
]
[Polabian
[Pomeranian
[Kashubian]
]
]
]
[Czech-Slovak
[Czech]
[Slovak]
]
[Knaanic]
[Sorbian]
[South
[Western
[Slovene]
[Serbo-Croatian
[Bosnian]
[Croatian]
[Serbian]
[Eastern
[Old Church Slavonic
[Bulgarian]
[Church Slavonic]
[Macedonian]
[East
[Old Novgorod]
[Old East Slavic
[Old Ruthenian]
[Belarusian]
[Russian]
[Rusyn]
[Ukranian]
]
]
]
]
]
]
]]]]]]]
\end{forest}
\end{document}

• This is really not that difficult to do in forest, (although arbitrary branching paths are not completely trivial) so perhaps you should edit your question with a document showing a small part of the tree that you've tried with forest and explain what you're having trouble with. Aug 5, 2018 at 17:41
• You have an excess of 13 (!) opening [ over closing ].
– user121799
Aug 5, 2018 at 17:58
• Where should I place the additional ]? Aug 5, 2018 at 18:00
• At the very end of the code? Aug 5, 2018 at 18:03
• When I add 13 extra ], it still won't compile. Have you succesfully compiled it? If so, would you mind just copy-paste the code, thank you very much. Aug 5, 2018 at 18:07

Here's another version:

\documentclass[landscape]{article}
\usepackage[margin=1in]{geometry}
\usepackage{textcase}
\usepackage[edges]{forest}
\forestset{list/.style=
{l sep=2pt,l=0,
for descendants={no edge,l sep=2pt,l=0}},
lfamily/.style={content=\MakeTextUppercase{##1}},
living/.style={fill={green!50}}
}
\begin{document}
\begin{forest}forked edges,for tree={draw,align=center,minimum width=.8in,inner sep=1pt,font=\sffamily}
[Indo-European,lfamily
[Balto-Slavic,lfamily
[Baltic,lfamily
[West,lfamily
[Prussian
[Sudovian]]]
]
[East,lfamily
[Latvian,list,living
[Lithuanian,living
[Semigallian]]]]
]
]
[Slavic,lfamily,l=1.5in
[West,lfamily,
[Minovian,lfamily
[Minovian,living ]
]
]
[Sorbian,living ]]
[Czech,list,for tree=living
[Slovak ]]]
[Lechitic,lfamily
[Polish,list,for tree=living
[Silesian]]
[Pomeranian]]]
]
]
]
[South,lfamily
[Western,lfamily
[Slovene,living]
[Serbo-Croatian,for tree=living
[Bosnian,list
[Croatian
[Serbian]]]
]
]
[Eastern,lfamily
[Bulgarian,for tree=living
[Church Slavonic
[Macedonian ]]]
]
]
]
[East,lfamily
[Belarusian,list,for tree=living
[Russian
[Rusyn
[Ukranian]]]]]
]
]
]
]
]
\end{forest}
\end{document}


I'm doing a family tree and ran across this package built for just that - might work here as well. https://www.ctan.org/tex-archive/macros/latex/contrib/genealogytree