Satz von Stammbäumen

Satz von Stammbäumen

Ich suche nach einer einfachen Möglichkeit, einen Stammbaum in LaTeX zu setzen.

Insbesondere interessiert mich der Satz einer sogenannten „Ahnentafel“, also eines Baums, der mich, meine Eltern, meine Großeltern, meine Urgroßeltern usw. zeigt. Mit anderen Worten handelt es sich um einen hierarchischen Baum, bei dem sich die Anzahl der Zweige auf jeder Ebene verdoppelt.

Gibt es ein Paket, das mir helfen kann? Leiderhttp://www.ctan.org/topic/genealogyist leer.

Ich habe einige Beiträge gelesen, in denen TikZ zum Zeichnen von Bäumen empfohlen wird. Ich habe TikZ nie verwendet und zögere, es nur für diesen Zweck auszuprobieren. Aber wenn es sein muss, muss es sein.

BEARBEITEN:

Hier ist ein Beispiel dessen, was ich erstellen möchte:

Dies ist eine 3-Generationen-Ahnentafel.

Dies ist eine 3-Generationen-Ahnentafel

Antwort1

Hier ist eine weitere Option mitforestum einige seiner anderen Funktionen zu veranschaulichen:

\documentclass{standalone}
\usepackage{tabularx}
\usepackage{forest}
\usetikzlibrary{shapes.geometric}

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

\definecolor{color1}{HTML}{FFCB73}
\definecolor{color2}{HTML}{FFA100}

\newcommand\Person[5]{%
  {\namefont #1} \\
  \begin{tabularx}{4.5cm}[t]{@{}r@{\hspace*{2pt}}X@{}}
  b: & #2 \\
  & #3 \\
  d: & #4 \\
  & #5
  \end{tabularx}%
}

\begin{document}

\begin{forest}
delay={
  for tree={
    edge path={
      \noexpand\path[\forestoption{edge}]
        ([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,
  draw=brown,
  minimum size=1cm,
  text width=4.5cm,
  child anchor=west,
  parent anchor=east,
  grow=east,
  l sep=2cm,
  s sep=10pt,
  draw,
  anchor=west,
  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}
      ]
    ]
  ]
]
\end{forest}

\end{document}

Das Ergebnis:

Bildbeschreibung hier eingeben

Bei dieser Lösung sind die Kanten so gekrümmt, dass sie einen Baum suggerieren, und die Dicke der Äste nimmt mit zunehmendem Level automatisch ab; zudem werden männliche und weibliche Personen durch die Auswahl unterschiedlicher Attribute für ihre Knoten (Form, Füllung) unterschieden; all dies wird bei der Baumspezifikation durchgeführt.

Die Helvet Neuein meinem Beispiel verwendete Schriftart kann heruntergeladen werden vonrebba pocket.

Antwort2

Das neu veröffentlichte Genealogytree-Paket würde Ihnen helfen! In diesem Beitrag wurde zuvor Version 0.10 Alpha erwähnt. Ich musste die aktuelle Version manuell installieren, da die aktuelle Latex-Distribution bis zum neuen Upgrade eingefroren ist.

Ein aktuelles Beispiel, was mit dem Paket alles möglich ist:http://mirrors.ctan.org/macros/latex/contrib/genealogytree/genealogytree-example-2.pdf Beispiel 2

Ich kann das MWE aus diesem Bild nicht hinzufügen, da ich es nicht selbst analysieren kann.

Das Paket findet ihr hier:http://www.ctan.org/pkg/genealogytree

Aus dem Genealogytree-Pakethandbuch für Version 0.90 (22.05.2015):

Stammbaum- und Genealogiebaumdiagramme sind bewährte Werkzeuge zur Visualisierung genetischer und relationaler Verbindungen zwischen Individuen. Die Benennung mathematischer Baumstrukturen mit Elternknoten und Kindknoten ist aus historischen Familiendiagrammen übernommen. Selbst die kleinste Familieneinheit, die aus zwei Eltern und mehreren Kindern besteht, ist jedoch kein mathematischer Baum, sondern ein allgemeineres Diagramm. Das genealogytree-Paket bietet eine Reihe von Werkzeugen zum Setzen solcher Genealogiebäume oder genauer gesagt zum Setzen einer Reihe spezieller Diagramme zur Beschreibung familienähnlicher Strukturen. Das Paket verwendet einen Auto-Layout-Algorithmus, der angepasst werden kann, um beispielsweise bestimmte Pfade zu priorisieren.

Antwort3

Sie könnten verwenden forest, was ich kürzlich für Baumdiagramme gelernt habe. Dieser Code verdankt so ziemlich allesGonzalo Medinas Antwortzu meiner Frage zur Verwendung forestauf diese Weise:

\documentclass[tikz,12pt]{standalone}
\usetikzlibrary{calc,positioning,backgrounds,arrows.meta}
\usepackage{forest}
\pagestyle{empty}

\begin{document}

\begin{forest}
  for tree={
    child anchor=west,
    parent anchor=east,
    grow=east,
    draw,
    anchor=west,
    edge path={
      \noexpand\path[\forestoption{edge}]
        (.child anchor) -| +(-5pt,0) -- +(-5pt,0) |-
        (!u.parent anchor)\forestoption{edge label};
    },
  }
  [Me
    [My Father
      [My Father's Father
      ]
      [My Father's Mother
      ]
    ]
    [My Mother
      [My Mother's Father
      ]
      [My Mother's Mother
      ]
    ]
  ]
\end{forest}

\end{document}

Familienwald

Antwort4

Bildbeschreibung hier eingeben

Eine weitere indirekte Lösung. Vor einigen Jahren habe ich ein Programm namens LifeLines verwendethttp://lifelines.sourceforge.netdas eine GEDCOM-Datei (versuchen Sie es mit Google) liest und verschiedene Berichte und Bäume im LaTeX-Format (und auch in anderen) erstellen kann.

BEARBEITENOben habe ich einen Scan einiger Seiten mit LaTeX-Ausgabe hinzugefügt.

verwandte Informationen