T-F-S / genealogytree

pedigree and genealogy tree diagrams
LaTeX Project Public License v1.3c
47 stars 7 forks source link

Turn-Argument (auch Style) wird nicht ausgewertet. #6

Closed ryder1977 closed 7 years ago

ryder1977 commented 7 years ago

Nachdem ich hier eine Weile mitlese möchte ich folgenden möglichen Bug melden.

Ich habe festgestellt, dass node={turn} und level x/.style teilweise nicht ausgewertet werden, wenn es sich um eine "child"-Familie handelte. Wenn ich alles in eine "parent"-Familie umgebastelt habe, dann wurde es korrekt umgesetzt.

T-F-S commented 7 years ago

Könnten Sie dafür ein Minimalbeispiel angeben, damit ich das Problem nachvollziehen kann?

ryder1977 commented 7 years ago

Natürlich. Hier kommt das Beispiel. Ich möchte nur anmerken, dass es im Original mit XeLaTeX läuft, weil die Schriftart auch angepasst wird und noch so ein paar Kleinigkeiten, aber das Grundproblem bleibt bestehen. Mit Parent-Familien funktioniert es ... bei Child-Familien nicht, weder als style-Definition noch einzeln bei den Nodes mit "turn".

\documentclass[12pt,paper=216mm:216mm]{scrbook} \usepackage{graphicx} \usepackage{wrapfig} \usepackage{tikz} \usepackage{wasysym} \usepackage[all]{genealogytree} \begin{document} \begin{center}
\begin{tikzpicture} \genealogytree[ processing=fit, timeflow=up, label={\raisebox{20mm}{\Large\gtrsymMarried}}, edges={rounded, foreground={line width=0.2mm,,Stealth-}}, box={blanker,halign=center,valign=center}, level 0/.style={level size=1cm, level distance=10mm, node size= 2.5cm}, level 1/.style={level size=1cm, level distance=10mm, node size= 2.8cm}, level 2/.style={level size=2cm, level distance=10mm, node={turn}},node size= 1.5cm] {child{ g{AAAAA} c{BBBBB} child{ g{CCCC} c{DDDD} child[family label={\raisebox{25mm}{\Large\gtrsymMarried}}]{ g{EEEE} c{FFFF}} p{GGGG} p{HHHH} } child{ g{KKKKK} c{LLLLL} child[family label={\raisebox{25mm}{\Large\gtrsymMarried}}]{ g{MMMM} c{NNNN}} child[family label={\raisebox{25mm}{\Large\gtrsymMarried}}]{ g{PPPP} c{QQQQ}} } } } \end{tikzpicture} \end{center} \newpage \begin{center}
\begin{tikzpicture} \genealogytree[ processing=fit, timeflow=up, label={\raisebox{20mm}{\Large\gtrsymMarried}}, edges={rounded, foreground={line width=0.2mm,,Stealth-}}, box={blanker,halign=center,valign=center}, level 0/.style={level size=1cm, level distance=10mm, node size= 2.5cm}, level 1/.style={level size=1cm, level distance=10mm, node size= 2.8cm}, level 2/.style={level size=2cm, level distance=10mm, node={turn}},node size= 1.5cm] {parent{ g{AAAAA} c{BBBBB} parent{ g{CCCC} c{DDDD} parent[family label={\raisebox{25mm}{\Large\gtrsymMarried}}]{ g{EEEE} c{FFFF}} p{GGGG} p{HHHH} } parent{ g{KKKKK} c{LLLLL} parent[family label={\raisebox{25mm}{\Large\gtrsymMarried}}]{ g{MMMM} c{NNNN}} parent[family label={\raisebox{25mm}{\Large\gtrsymMarried}}]{ g{PPPP} c{QQQQ}} } } } \end{tikzpicture} \end{center}

\end{document}

ryder1977 commented 7 years ago

Das ist leider kein sehr schönes Beispiel und vermutlich kann ich Ihr Paket auch nur schlecht bedienen, aber ich hoffe Sie können es damit nachvollziehen, was gemeint ist :)

T-F-S commented 7 years ago

Ihr Beispiel genügt, um das Problem zu sehen.

Es handelt sich nicht um einen Fehler des Paketes, sondern es werden einfach die falschen Levelnummern verwendet. Am einfachsten sieht man die Levelnummer durch Kompilierung mit show level. Bei child-Familien wachsen die Levelnummern in negative Richtung.

In Ihrem Beispiel ist

level 0/.style={level size=1cm, level distance=10mm, node size= 2.5cm},
level 1/.style={level size=1cm, level distance=10mm, node size= 2.8cm},
level 2/.style={level size=2cm, level distance=10mm, node={turn}},node size= 1.5cm

zu ersetzen durch

level -1/.style={level size=1cm, level distance=10mm, node size= 2.5cm},
level -2/.style={level size=1cm, level distance=10mm, node size= 2.8cm},
level -3/.style={level size=2cm, level distance=10mm, node={turn}},node size= 1.5cm

Ingesamt:

\documentclass[12pt,paper=216mm:216mm]{scrbook}
\usepackage{graphicx}
\usepackage{wrapfig}
\usepackage{tikz}
\usepackage{wasysym}
\usepackage[all]{genealogytree}
\begin{document}
\begin{center}
\begin{tikzpicture}
\genealogytree[
%show level, <----------------------------- 
processing=fit,
timeflow=up,
label={\raisebox{20mm}{\Large\gtrsymMarried}},
edges={rounded, foreground={line width=0.2mm,,Stealth-}},
box={blanker,halign=center,valign=center},
level -1/.style={level size=1cm, level distance=10mm, node size= 2.5cm},
level -2/.style={level size=1cm, level distance=10mm, node size= 2.8cm},
level -3/.style={level size=2cm, level distance=10mm, node={turn}},node size= 1.5cm]
{child{
g{AAAAA}
c{BBBBB}
child{
g{CCCC}
c{DDDD}
child[family label={\raisebox{25mm}{\Large\gtrsymMarried}}]{ g{EEEE} c{FFFF}}
p{GGGG}
p{HHHH}
}
child{
g{KKKKK}
c{LLLLL}
child[family label={\raisebox{25mm}{\Large\gtrsymMarried}}]{ g{MMMM} c{NNNN}}
child[family label={\raisebox{25mm}{\Large\gtrsymMarried}}]{ g{PPPP} c{QQQQ}}
}
}
}
\end{tikzpicture}
\end{center}
\newpage
\begin{center}
\begin{tikzpicture}
\genealogytree[
processing=fit,
timeflow=up,
label={\raisebox{20mm}{\Large\gtrsymMarried}},
edges={rounded, foreground={line width=0.2mm,,Stealth-}},
box={blanker,halign=center,valign=center},
level 0/.style={level size=1cm, level distance=10mm, node size= 2.5cm},
level 1/.style={level size=1cm, level distance=10mm, node size= 2.8cm},
level 2/.style={level size=2cm, level distance=10mm, node={turn}},node size= 1.5cm]
{parent{
g{AAAAA}
c{BBBBB}
parent{
g{CCCC}
c{DDDD}
parent[family label={\raisebox{25mm}{\Large\gtrsymMarried}}]{ g{EEEE} c{FFFF}}
p{GGGG}
p{HHHH}
}
parent{
g{KKKKK}
c{LLLLL}
parent[family label={\raisebox{25mm}{\Large\gtrsymMarried}}]{ g{MMMM} c{NNNN}}
parent[family label={\raisebox{25mm}{\Large\gtrsymMarried}}]{ g{PPPP} c{QQQQ}}
}
}
}
\end{tikzpicture}
\end{center}

\end{document}

Die Symbole müssten hier noch richtig positioniert werden, aber ich denke, Sie sehen den Effekt.

ryder1977 commented 7 years ago

Alles klar, danke. Na da muss man auch erstmal drauf kommen ... :)