계보 조판

계보 조판

LaTeX에서 계보를 조판하는 간단한 방법을 찾고 있습니다.

특히, 나와 내 부모, 조부모, 증조부모 등을 보여주는 트리인 소위 "Ahnentafel"을 조판하는 데 관심이 있습니다. 가지의 수는 각 수준에서 두 배로 늘어납니다.

나에게 도움이 될 수 있는 패키지가 있나요? 슬프게도,http://www.ctan.org/topic/genealogy비었다.

나는 나무 그리기를 위해 TikZ를 추천하는 몇 가지 게시물을 언급했습니다. 저는 TikZ를 사용해 본 적이 없으며 단지 이러한 목적으로 TikZ를 사용하는 것을 꺼려합니다. 하지만 해야 한다면 해야 합니다.

편집하다:

내가 만들고 싶은 것의 예는 다음과 같습니다.

3세대 아넨타펠입니다.

아넨타펠 3세대 입니다

답변1

다음을 사용하는 또 다른 옵션이 있습니다.forest다른 기능을 설명하기 위해:

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

결과:

여기에 이미지 설명을 입력하세요

이 솔루션에서는 나무를 연상시키기 위해 가장자리가 구부러져 있으며 레벨이 증가함에 따라 가지의 두께가 자동으로 감소합니다. 또한 남성과 여성은 노드에 대해 서로 다른 속성(모양, 채우기)을 선택하여 구별됩니다. 이 모든 것은 트리 사양에서 수행됩니다.

Helvet Neue예제에 사용된 글꼴은 다음에서 다운로드할 수 있습니다 .rebba pocket.

답변2

새로 출시된 계보나무 패키지가 도움이 될 것입니다! 이 게시물은 이전에 버전 0.10 알파를 언급했습니다. 새 업그레이드까지 현재 Latex 배포판이 동결되어 있기 때문에 현재 버전을 수동으로 설치해야 했습니다.

패키지로 수행할 수 있는 작업의 현재 예는 다음과 같습니다.http://mirrors.ctan.org/macros/latex/contrib/genealogytree/genealogytree-example-2.pdf 예2

내가 직접 구문 분석할 수 없기 때문에 이 그림에서 MWE를 추가할 수 없습니다.

패키지는 여기에서 찾을 수 있습니다:http://www.ctan.org/pkg/genealogytree

버전 0.90(2015/05/22)용 genealogytree 패키지 매뉴얼에서:

가계도 및 계보도는 개인 간의 유전적 관계 연결을 시각화하는 입증된 도구입니다. 상위 노드와 하위 노드가 있는 수학적 트리 구조의 이름은 역사적인 패밀리 다이어그램에서 교환됩니다. 그러나 두 부모와 여러 자녀로 구성된 가장 작은 가족 실체라도 수학적 나무가 아니라 보다 일반적인 그래프입니다. genealogytree 패키지는 계보 나무를 조판하거나 ​​더 정확하게는 가족과 같은 구조를 설명하기 위한 특수 그래프 세트를 조판하는 도구 세트를 제공합니다. 패키지는 특정 경로의 우선순위를 지정하도록 사용자 정의할 수 있는 자동 레이아웃 알고리즘을 사용합니다.

답변3

forest제가 최근에 트리 다이어그램에 사용하는 법을 배운 것을 사용할 수 있습니다 . 이 코드는 거의 모든 것을 담고 있습니다.곤잘로 메디나의 답변forest이런 식으로 사용하는 것에 대한 내 질문에 :

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

가족의 숲

답변4

여기에 이미지 설명을 입력하세요

또 다른 간접적인 해결책. 몇 년 전에 저는 LifeLines라는 프로그램을 사용했습니다.http://lifelines.sourceforge.netGEDCOM(구글링 시도) 파일을 읽고 LaTeX 형식(및 기타 형식)으로 다양한 보고서와 트리를 생성할 수 있습니다.

편집하다위에서는 LaTeX 출력의 두 페이지 스캔을 추가했습니다.

관련 정보