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.
% 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}
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.
[attachment=0]stammbaum02.png[/attachment]
[code]% 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}[/code]