Composición tipográfica de árboles genealógicos.

Composición tipográfica de árboles genealógicos.

Estoy buscando una forma sencilla de componer un árbol genealógico en LaTeX.

En particular, me interesa componer el llamado "Ahnentafel", es decir, un árbol que me muestra a mí, a mis padres, a mis abuelos, a mis bisabuelos, etc. En otras palabras, es un árbol jerárquico en el que el número El número de sucursales se duplica en cada nivel.

¿Existe algún paquete que pueda ayudarme? Desafortunadamente,http://www.ctan.org/topic/genealogyesta vacio.

He notado algunas publicaciones recomendando TikZ para dibujar árboles. Nunca he usado TikZ y soy reacio a sumergirme en él solo para este propósito. Pero si debo, debo.

EDITAR:

Aquí hay un ejemplo de lo que quiero crear:

Este es un Ahnentafel de tercera generación.

Este es un Ahnentafel de tercera generación.

Respuesta1

Aquí hay otra opción usandoforestpara ilustrar algunas otras de sus características:

\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}

El resultado:

ingrese la descripción de la imagen aquí

En esta solución, los bordes están curvados para sugerir un árbol y el grosor de las ramas disminuye automáticamente a medida que aumenta el nivel; además, las personas masculinas y femeninas se distinguen por seleccionar diferentes atributos para sus nodos (forma, relleno); Todo esto se hace según la especificación del árbol.

La Helvet Neuefuente utilizada en mi ejemplo se puede descargar desderebba pocket.

Respuesta2

¡El paquete genealogytree recientemente lanzado le ayudará! En esta publicación se mencionó anteriormente la versión 0.10 alfa. Tuve que instalar la versión actual manualmente, porque la distribución actual de Latex está congelada hasta la nueva actualización.

Un ejemplo actual de lo que se puede hacer con el paquete:http://mirrors.ctan.org/macros/latex/contrib/genealogytree/genealogytree-example-2.pdf ejemplo2

No puedo agregar el MWE de esta imagen porque no puedo analizarlo yo mismo.

Puedes encontrar el paquete aquí:http://www.ctan.org/pkg/genealogytree

Del manual del paquete genealogytree para la versión 0.90 (22/05/2015):

Los diagramas de árbol genealógico y genealógico son herramientas comprobadas para visualizar conexiones genéticas y relacionales entre individuos. La denominación de las estructuras de árbol matemático con nodos principales y nodos secundarios se intercambia a partir de diagramas familiares históricos. Sin embargo, incluso la entidad familiar más pequeña formada por dos padres y varios hijos no es un árbol matemático sino un gráfico más general. El paquete genealogytree proporciona un conjunto de herramientas para componer dichos árboles genealógicos o, más precisamente, para componer un conjunto de gráficos especiales para la descripción de estructuras similares a familias. El paquete utiliza un algoritmo de diseño automático que se puede personalizar para, por ejemplo, priorizar determinadas rutas.

Respuesta3

Podrías usar forestel que he estado aprendiendo recientemente para diagramas de árbol. Este código le debe prácticamente todo aLa respuesta de Gonzalo Medina.a mi pregunta sobre el uso forestde esta manera:

\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}

Bosque familiar

Respuesta4

ingrese la descripción de la imagen aquí

Otra solución indirecta. Hace algunos años utilicé un programa llamado LifeLineshttp://lifelines.sourceforge.netque lee un archivo GEDCOM (pruebe a buscar en Google) y puede producir una variedad de informes y árboles en formato LaTeX (y otros también).

EDITARArriba agregué un escaneo de un par de páginas de salida de LaTeX.

información relacionada