Drzewo genealogiczne w LaTeX-u
22.03.2011 22:37
Na stronie głównej dobrychprogramów pojawiła się dziś informacja o nowej wersji stabilnej programu Drzewo Genealogiczne II. Zainspirowało mnie to do krótkiej notatki, wpisującej się w konwencję tego blogu.
W tym wpisie przedstawię w jaki sposób dodać proste drzewo genealogiczne do dokumentu napisanego w LaTeX-u. Jako przykład posłuży klan Pawlaków i Kargulów ze znanej komediowej trylogii Sylwestra Chęcińskiego.
Każdy dokument w LaTeX-u zaczynamy tradycyjnie od podania rodzaju dokumentu i kodownia znaków.
\documentclass{article} \usepackage[cp1250]{inputenc}
Jeśli zależy nam na obsłudze języka polskiego dodajemy następujące linie:
\usepackage[T1]{fontenc} \usepackage[polish]{babel}
W dalszej części preambuły dołączamy pakiety niezbędne do wykonania drzewa genealogicznego.
\usepackage{pstricks, pstcol, pst-node, pst-tree}
Następnie dodajemy wpisy odpowiedzialne za formatowanie drzewa:
\renewcommand\psedge{\nccurve} \psset{nodesep=1pt, angleA=90, angleB=-90}
Do drzewa dodawać będziemy imiona osób rodzaju żeńskiego (oznacznone tutaj jako Female) zapisane pochyłą czcionką \emph i znajdujące się na jasnoszarych (linecolor=lightgray) gałęziach oraz osoby rodzaju męskiego (Male) znajdujące się na czarnych (linecolor=black) gałęziach. Jest to najbardziej skomplikowana część tego opisu, ale można ją przyjąć bez wnikania w szczegóły.
\newcommand{\Female}[2][]{{\psset{linecolor=lightgray}\TR[#1]{\emph{#2}}}} \newcommand{\Male}[2][]{{\psset{linecolor=black}\TR[#1]{#2}}}
Następnie dodajemy imiona i/lub nazwiska do drzewa w podany sposób:
\begin{document} \pstree[treemode=U]{\Male{\bfseries Ania}}{% \pstree{\Male{Witia}}{% \pstree{\Male{Kazimierz}}{\Male{Kacper}\Female{Leonia}} \pstree{\Female{Mania}}{}} \pstree{\Female{Jadwiga}}{% \pstree{\Male{Władysław}}{} \pstree{\Female{Aniela}}{}}} \end{document}
Po skompilowaniu otrzymujemy następujące drzewo
Dokument zawierający opis i drzewo genealogiczne może wyglądać tak (plik PDF), a plik źródłowy można pobrać stąd.
Ps Opis fabuły filmu skopiowano z Wikipedii.
Uwaga: Aby skompilować dokument wykonujemy kolejno latex -> dvips -> ps2pdf. Dokument korzystający z pstricks nie da się skompilować bezpośrednio przy użyciu pdflatex.