Stammbaum erstellen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Stammbaum erstellen

Re: Stammbaum erstellen

von cis » Mo 3. Aug 2020, 03:07

u_fischer hat geschrieben:
So 2. Aug 2020, 15:25

https://ctan.org/pkg/genealogytree

Das ist interessant. Ich hatte etwas mit tcolorbox gemacht und genealogytree ist vom selben Autor.

Er verwendet auch eine inputmethode \genealogytreeinput.
Was ich will, ist eine sehr schlicht gehaltene Eingabe-Textdatei, wie
VIIb, Kaspar Friedrich, 20.9.1735, 9.7.1799, B{"u}rger und Buchmachermeister, Anna Magarete Schacht,
VIIIa, Maria Elisabeth, 25.9.1759, , , ,

Mal schauen, vielleicht mache ich etwas mit genealogytree.

Re: Stammbaum erstellen

von u_fischer » So 2. Aug 2020, 15:25

Re: Stammbaum erstellen

von cis » So 2. Aug 2020, 04:10

Diese Umsetzung, mit kleineren Ergänzungen und Vereinfachungen, orientiert sich stärker an der gezeigten Vorlage im Startpost.
Da die 3. Zeile 16 Spalten enthält, muss in der 2. Zeile (8 Spalten) mit multicolumns gearbeitet werden.

stammbaum02.png
% arara: pdflatex
% arara: pdflatex
% arara: pdflatex

\begin{filecontents}[overwrite]{\jobname-data.tex}
no, name, geb, gest, beruf, verh, sonst
VIIb, Kaspar Friedrich, 20.9.1735, 9.7.1799, B{"u}rger- und Buchmachermeister, Anna Magarete Schacht,   
VIIIa, Maria Elisabeth, 25.9.1759, , , ,
VIIIb, Johan Joachim Friedrich, 10.3.1761, , , ,
VIIIc, Maria Dorothea, 6.12.1764, , , ,
VIIId, Dorothea Elisabeth, 27.4.1767, , , ,
VIIIe, Katharina Maria Regina, , , , ,
VIIIf, Georg Joachim Dietrich, , , , ,
VIIIg, Kaspar Friedrich, 6.8.1773,15.8.1804 , , ,
VIIIh, Johan Joachim, 11.10.1775, 26.10.1847,B{"u}rger und Buchmachermeister, , Hier als Beispiel eines l{"a}ngeren Eintrages. IXa, Johan Gottlieb Friedrich, 6.1.1800, , , ,
IXb, Johan Kaspar Rudolf, 8.5.1802, , , , IXc, Johan Friedrich, 21.8.1804, , , , IXd, Johan Gottlieb Friedrich, 6.1.1800 , , ,{Marie Tuchel; 2. Charlotte Quandt in Pritzwalk. Nachkommen siehe Blatt 6}, IXe, Sophie Dorothea Elisabeth, 6.1.1800, , Nachkommen siehe Blatt 6 , , IXf, Karl Friedrich, 1814, 24.1.1879 , , , IXg, Johan Friedrich Willhelm, 6.1.1800, , , , IXh, Heinrich Gottfried Karl, 6.1.1800, , , , IXi, Charlotte Maria Elisabeth, 6.1.1800, , , , IXk, Willhelmine Maria, 6.1.1800, , , ,{Edelgardt, Tuscherer in Pritzwalk.} IXl, Louis August Willhelm, 6.1.1800, , , , IXm, August Ferdinand, 6.1.1800, , , , IXn, Karl August, 6.1.1800, , ,{Henriette Zick aus Wittstock, {\noexpand\normalfont 27.6.1820} bis {\noexpand\normalfont 15.2.1892}. Nachkommen siehe Blatt 15}, IXo, Ferdinand Gottlieb, 6.1.1800, , , , IXp, Louis Karl, 27.5.1824, {14.9./11. 1824}, , , \end{filecontents} \documentclass[8pt, landscape]{scrartcl} \usepackage[%showframe, margin=2cm, ]{geometry} \usepackage[T1]{fontenc} \usepackage{lmodern} \usepackage{microtype} \usepackage{yfonts} \newcommand\myfont[1]{\textfrak{#1}} \usepackage{bbding} \def\gebsymb{\SixStar} \newcommand\gestsymb{\CrossMaltese} \newcommand\verhsymb{\XSolid} \usepackage{pgfplotstable} \pgfplotsset{compat=1.17} \usepackage{tikz} \usetikzlibrary{decorations.pathreplacing} \usepackage[most]{tcolorbox} \tcbset{ NoGaps/.style={boxsep=3pt, left=0pt, right=0pt, top=0pt, bottom=0pt,}, nwCoord/.style={enhanced, finish={\coordinate[label=] (#1) at (frame.north west);}}, neCoord/.style={enhanced, finish={\coordinate[label=] (#1) at (frame.north east);}}, swCoord/.style={enhanced, finish={\coordinate[label=] (#1) at (frame.south west);}}, seCoord/.style={enhanced, finish={\coordinate[label=] (#1) at (frame.south east);}}, sCoord/.style={enhanced, finish={\coordinate[label=] (#1) at (frame.south);}}, } \usepackage{mwe} \begin{document} \pgfplotstableread[col sep=comma]{\jobname-data.tex}\stammb \pgfplotstablegetrowsof{\stammb} \pgfmathtruncatemacro{\RowsNo}{\pgfplotsretval-1}
%Zeilennummer max.: \RowsNo \newcommand\pers[1]{% \foreach \n in {0,...,\RowsNo}{% \xdef\myNo{#1}% VIIIa VIIb \pgfplotstablegetelem{\n}{no}\of{\stammb}% %\pgfplotsretval \ifx\pgfplotsretval\myNo%
\xdef\row{\n}% \pgfplotstablegetelem{\row}{name}\of{\stammb}% \xdef\Name{\pgfplotsretval}% \pgfplotstablegetelem{\row}{geb}\of{\stammb}% \xdef\Geb{\ifx \pgfplotsretval\empty \else {\noexpand\gebsymb\,\pgfplotsretval}\fi}% \pgfplotstablegetelem{\row}{gest}\of{\stammb}% \xdef\Gest{\ifx \pgfplotsretval\empty \else {\noexpand\myfont{,} \noexpand\gestsymb\,{\pgfplotsretval\noexpand\myfont{.}}}\fi}% \pgfplotstablegetelem{\row}{beruf}\of{\stammb}% \xdef\Beruf{\ifx \pgfplotsretval\empty \else {\pgfplotsretval.}\fi}% \pgfplotstablegetelem{\row}{verh}\of{\stammb}% \xdef\Verh{\ifx \pgfplotsretval\empty \else {\noexpand\verhsymb\,\pgfplotsretval.}\fi}% \pgfplotstablegetelem{\row}{sonst}\of{\stammb}% \xdef\Sonst{\ifx \pgfplotsretval\empty \else {\pgfplotsretval}\fi}% % Output: \myfont{\Name} \\ {\Geb \Gest} \myfont{\Beruf} \myfont{\Verh} \myfont{\Sonst} \else\fi}} % Test: %\gebsymb %\gestsymb %\verhsymb %\pers{VIIIa} %\pers{VIIb} %\textfrak{This: is: Fraktur} \pgfmathsetlengthmacro\RowSep{7mm} \tcbset{sharp corners,} \begin{tcbitemize}[ raster every box/.style={NoGaps,},
colframe=white, % entweder boxrule=0pt, frame hidden, % oder raster columns=16, raster equal height=rows, raster column skip=3mm, raster row skip=\RowSep, colback=white, notitle, halign=center, valign=top, remember, % = tikz[remember picture] %raster row 1/.style={raster row skip=0.5*\RowSep}, % kein Effekt ] \tcbitem[] VII. % ======================= \tcbitem[raster multicolumn=15] \pers{VIIb} \tcbitem[] VIII. % ======================= \tcbitem[raster multicolumn=2, nwCoord=A] \pers{VIIIa} \tcbitem[raster multicolumn=2] \pers{VIIIb} \tcbitem[raster multicolumn=2] \pers{VIIIc} \tcbitem[raster multicolumn=2] \pers{VIIId} \tcbitem[raster multicolumn=1, swCoord=P] \pers{VIIIe} \tcbitem[raster multicolumn=1, seCoord=Q] \pers{VIIIf} \tcbitem[raster multicolumn=2, sCoord=X] \pers{VIIIg} \tcbitem[raster multicolumn=3, neCoord=B] \pers{VIIIh} \\ \rule{0pt}{10mm} \tcbitem[] IX. % ======================= \tcbitem[nwCoord=C] \pers{IXa} \tcbitem[] \pers{IXb} \tcbitem[neCoord=D] \pers{IXc} \tcbitem[nwCoord=E] \pers{IXd} \tcbitem[] \pers{IXe} \tcbitem[] \pers{IXf} \tcbitem[] \pers{IXg} \tcbitem[] \pers{IXh} \tcbitem[] \pers{IXi} \tcbitem[] \pers{IXk} \tcbitem[] \pers{IXl} \tcbitem[] \pers{IXm} \tcbitem[] \pers{IXn} \tcbitem[] \pers{IXo} \tcbitem[neCoord=F] \pers{IXp} \end{tcbitemize} \begin{tikzpicture}[remember picture, overlay, thick, Brace/.style={decorate, decoration={brace, amplitude=10pt}}, ] \draw[Brace] (A) -- (B); \draw[Brace] (C) -- (D) node[midway, above=0.5*\RowSep](Y){}; \draw[Brace,decoration={aspect=0.875}] (E) -- (F); \pgfmathsetlengthmacro\Yshift{2*\RowSep} \draw[Brace] ([yshift=\Yshift]Q) -- ([yshift=\Yshift]P) node[fill=none, midway, below=4mm, anchor=north](X1) {\myfont{Zwillinge, \gebsymb} 26.6.1770}; \draw[] ([yshift=2*\RowSep]X) --([yshift=0.5*\RowSep]X) -| ([yshift=3pt]Y); \end{tikzpicture} \end{document}

Re: Stammbaum erstellen

von cis » Sa 1. Aug 2020, 17:49

Für derlei Annotationen könnte eine TikZ-matrix geeignet sein; allerdings müsste man dabei sehr viel einstellen, daher ist eine tcolorbox-tcbitemize-Umgebung praktisch.

Als Zusatzpunkt ist es hier angenehmer, wenn man nicht alle Daten in die Umgebung schreibt -was auch sehr unübersichtlich werden würde-, sondern anhand einer schlicht aufgebauten Text-Hilfsdatei des Typs

no, name, geb, gest, beruf, verh, sonst
VIIb, Kaspar Friedrich, 20.9.1735, 9.7.1799, Bürger und Buchmachermeister, Anna Magarete Schacht,
VIIIa, Maria Elisabeth, 25.9.1759, , , ,
.....

eingeben kann. Diese Hilfsdatei kann man z.B. mit pgfplotstable (oder auch datatool) auslesen.

stammbaum01.png

€dit: Umlaute ergänzt. Kleinere Verbesserungen.

\begin{filecontents}[overwrite]{\jobname-data.tex}
no, name, geb, gest, beruf, verh, sonst
VIIb, Kaspar Friedrich, 20.9.1735, 9.7.1799, B{"u}rger und Buchmachermeister, Anna Magarete Schacht,   
VIIIa, Maria Elisabeth, 25.9.1759, , , ,
VIIIb, Johan Joachim Friedrich, 10.3.1761, , , ,
VIIIc, Maria Dorothea, 6.12.1764, , , ,
VIIId, Dorothea Elisabeth, 27.4.1767, , , ,
VIIIe, Katharina Maria Regina, , , , ,
VIIIf, Georg Joachim Dietrich, , , , ,
VIIIg, Kaspar Friedrich, 6.8.1773,15.8.1804 , , ,
VIIIh, Johan Joachim, 11.10.1775, 26.10.1847,B{"u}rger und Buchmachermeister, , Hier als Beispiel eines l{"a}ngeren Eintrages. \end{filecontents} \documentclass[a4paper, landscape]{article} \usepackage[%showframe, margin=2cm, ]{geometry} \usepackage[T1]{fontenc} \usepackage{yfonts} \newcommand\myfont[1]{\textfrak{#1}} \usepackage{bbding} \def\gebsymb{\SixStar} \newcommand\gestsymb{\CrossMaltese} \newcommand\verhsymb{\XSolid} \usepackage{pgfplotstable} \pgfplotsset{compat=1.17} \usepackage{tikz} \usetikzlibrary{decorations.pathreplacing} \usepackage[most]{tcolorbox} \tcbset{ NoGaps/.style={boxsep=3pt, left=0pt, right=0pt, top=0pt, bottom=0pt,}, } \usepackage{mwe} \begin{document} \pgfplotstableread[col sep=comma]{\jobname-data.tex}\stammb \pgfplotstablegetrowsof{\stammb} \pgfmathtruncatemacro{\RowsNo}{\pgfplotsretval-1}
%Zeilennummer max.: \RowsNo \newcommand\pers[1]{% \foreach \n in {0,...,\RowsNo}{% \xdef\myNo{#1}% VIIIa VIIb \pgfplotstablegetelem{\n}{no}\of{\stammb}% %\pgfplotsretval \ifx\pgfplotsretval\myNo%
\xdef\row{\n}% \pgfplotstablegetelem{\row}{name}\of{\stammb}% \xdef\Name{\pgfplotsretval}% \pgfplotstablegetelem{\row}{geb}\of{\stammb}% \xdef\Geb{\ifx \pgfplotsretval\empty \else {\noexpand\gebsymb\,\pgfplotsretval}\fi}% \pgfplotstablegetelem{\row}{gest}\of{\stammb}% \xdef\Gest{\ifx \pgfplotsretval\empty \else {\noexpand\myfont{,} \noexpand\gestsymb\,\pgfplotsretval}\fi}% \pgfplotstablegetelem{\row}{beruf}\of{\stammb}% \xdef\Beruf{\ifx \pgfplotsretval\empty \else {, \pgfplotsretval.}\fi}% \pgfplotstablegetelem{\row}{verh}\of{\stammb}% \xdef\Verh{\ifx \pgfplotsretval\empty \else {\noexpand\verhsymb\,\pgfplotsretval.}\fi}% \pgfplotstablegetelem{\row}{sonst}\of{\stammb}% \xdef\Sonst{\ifx \pgfplotsretval\empty \else {\pgfplotsretval}\fi}% % Output: \myfont{\Name} \\ \Geb \Gest \myfont{\Beruf} \myfont{\Verh} \myfont{\Sonst} \else\fi}} % Test: %\gebsymb %\gestsymb %\verhsymb %\pers{VIIIa} %\pers{VIIb} %\textfrak{This: is: Fraktur} \tcbset{sharp corners,} \begin{tcbitemize}[ raster every box/.style={NoGaps,},
colframe=white, % entweder boxrule=0pt, frame hidden, % oder raster columns=9, raster equal height=rows, raster column skip=3mm, raster row skip=5mm, colback=white, notitle, halign=center, valign=top, remember, % = tikz remember picture ] \tcbitem[] VII. % =============================== \tcbitem[raster multicolumn=8] \pers{VIIb} \tcbitem[] VIII. % =============================== \tcbitem[enhanced, finish={\coordinate[label=] (U) at (frame.north west);},] \pers{VIIIa} \tcbitem[] \pers{VIIIb} \tcbitem[] \pers{VIIIc} \tcbitem[] \pers{VIIId} \tcbitem[enhanced, finish={\coordinate[label=] (A) at (frame.south west);},] \pers{VIIIe} % \tcbitem[enhanced, finish={\coordinate[label=] (B) at (frame.south east);},] \pers{VIIIf} % \tcbitem[] \pers{VIIIg} \tcbitem[enhanced, finish={\coordinate[label=] (V) at (frame.north east);},] \pers{VIIIh} \tcbitem[] IX. % =============================== \tcbitem[enhanced, finish={\coordinate[label=] (P) at (frame.north west);},] \pers{VIIIa} \tcbitem[] \pers{VIIIb} \tcbitem[enhanced, finish={\coordinate[label=] (Q) at (frame.north east);},] \pers{VIIIc} \tcbitem[] \pers{VIIId} \tcbitem[] \pers{VIIIe} \tcbitem[] \pers{VIIIf} \tcbitem[] \pers{VIIIg} \tcbitem[] \pers{VIIIg} \end{tcbitemize} \begin{tikzpicture}[remember picture, overlay, thick] \draw[decorate,decoration={brace, amplitude=10pt}] (U) -- (V); \draw[decorate,decoration={brace, amplitude=10pt}] ([yshift=25mm]B) -- ([yshift=25mm]A) node[fill=none, midway, below=4mm, anchor=north](X1) {\myfont{Zwillinge, \gebsymb} 26.6.1770}; %\node[](X){ooo}; \coordinate[] (X) at ([yshift=-5mm]X1.south); \draw[decorate,decoration={brace, amplitude=10pt}] (P) -- (Q) node[midway, above=3mm] (Y) {}; \draw[] (X1) -- (X) -| (Y); \end{tikzpicture} \end{document}

Stammbaum erstellen

von Primorsk » Mo 13. Jan 2020, 20:07

Hallo,

ich bin auf der Suche nach einer Möglichkeit, wie ich meinen eigenen Stammbaum umsetzen kann so wie in den Beispielbildern gezeigt. Also mit den horizontalen geschwungenen Klammern und Erläuterungen zu den Personen, den römischen Zahlen der Generationen an der Seite etc.
Stammbaum Beispiel 2 mit geschweiften, horizontalen Klammern
Stammbaum Beispiel 2 mit geschweiften, horizontalen Klammern
Beispiel 7.png (199.02 KiB) 4227 mal betrachtet
Stammbaum Beispiel 1 mit geschweiften, horizontalen Klammern
Stammbaum Beispiel 1 mit geschweiften, horizontalen Klammern
Beispiel 4.png (93.69 KiB) 4235 mal betrachtet
Ich habe bisher keine gescheite Lösung gefunden und da fiel mit Latex ein, womit ich vor vielen Jahren mal meine Diplomarbeit geschrieben hatte.

Hat jemand eine Idee, wie man so etwas in Latex umsetzen kann? Oder gibts vielleicht sogar schon einen guten Quellcode?

Danke und Grüße!

Nach oben