[Tex/LaTex] Typesetting genealogical trees


I looking for a simple way to typeset a genealogical tree in LaTeX.

In particular, I'm interested in typesetting a so-called "Ahnentafel", that is a tree that shows me, my parents, my grandparents, my great-grandparents etc. In other words, it is a hierarchical tree in which the number of branches doubles at each level.

Is there a package that can help me? Sadly, http://www.ctan.org/topic/genealogy is empty.

I've noted a few posts recommending TikZ for drawing trees. I've never used TikZ, and I'm reluctant to dive into it just for this purpose. But if I must, I must.


Here's an example of what I want to create:

This is a 3-generation Ahnentafel.

This is a 3-generation Ahnentafel

Best Answer

Here's another option using forest to illustrate some other of its features:


% comment out the following four lines if the Helvet Neue font are not available:
\newfontfamily\namefont[]{Helvetica Neue Condensed Bold}
\setmainfont[Mapping=tex-text, Color=textcolor]{Helvetica Neue Light}


  {\namefont #1} \\
  b: & #2 \\
  & #3 \\
  d: & #4 \\
  & #5


  for tree={
    edge path={
        ([xshift=-(6pt-1pt*level)].child anchor) to[out=180,in=0]
        ([xshift=(6pt-1pt*level)]!u.parent anchor)\forestoption{edge label};
    if n=1
      {fill=color1,shape=tape,tape bend bottom=none}
      {if n'=1
        {fill=color2,shape=tape,tape bend top=none}
for tree={
  line width=3pt,
  inner sep=8pt,
  minimum size=1cm,
  text width=4.5cm,
  child anchor=west,
  parent anchor=east,
  l sep=2cm,
  s sep=10pt,
  edge={line width=(18pt-3pt*level),line cap=rect,color=brown},
[\Person{Abraham /LINCOLN/}{12 Feb 1809}{Hardin (Larue), KY}{15 Apr 1865}{Washington, DC},fill=color2
  [\Person{Nancy /HANKS/}{5 Feb 1784}{Campbell Co., Virginia}{5 Oct 1818}{Centryville, Spencer, Ind}
   [\Person{Nancy /SHIPLEY/}{ABT 1745}{Pembroke, Wash, ME}{}{Amelia, Amelia, VA}
     [\Person{Sarah Or Rachel}{ABT 1723}{}{}{}
     [\Person{Robert /SHIPLEY/}{ABT 1719}{}{}{}
   [\Person{Joseph /HANKS/}{ABT 1740}{Pembroke, Wash, ME}{}{Amelia, Amelia, VA}
     [\Person{Sarah /EVANS/}{ABT 1714}{Pembroke, Wash, ME}{}{}
     [\Person{John /HANKS/}{22 Oct 1709}{Pembroke, Wash, ME}{6 Sep 1742}{Pembroke, Wash, ME}
  [\Person{Thomas /LINCOLN/}{20 Jan 1780}{Rockingham, VA}{17 Jan 1851}{Beechland, Co., KY.}
    [\Person{Bethsheba /HERRING/}{1746}{Rockingham, Co., VA.}{}{}
    [\Person{Abraham /LINCOLN/}{17 May 1744}{Berks, Co., Penn.}{1786}{Jefferson County, KY}
      [\Person{Rebecca /FLOWERS/}{30 Mar 1720}{Berks, Co., Penn.}{1806}{Berks, Co., Penn}
      [\Person{John /LINCOLN/}{3 May 1711}{Freehold, Monmouth, N.J.}{1778}{PA}


The result:

enter image description here

In this solution, the edges are curved so as to suggest a tree and the thickness of the branches automatically diminishes as the level increases; also, male and female persons are distinguished by selecting different attributes for their nodes (shape, filling); all this is done at the tree specification.

The Helvet Neue font used in my example can be downloaded from rebba pocket.

Related Question