双方都有多次婚姻的家谱

双方都有多次婚姻的家谱

假设 A 和 B 生了孩子 X,和 C 生了孩子 Y。我知道union可以这样做:

\begin{tikzpicture}
\genealogytree[template=formal graph,
]
{child{
        g[id=a, tikz={xshift=9mm,yshift=0mm}]{A}
        union{
            p[id=b, tikz={xshift=-9mm,yshift=0mm}]{B}
            c[id=x]{X}
        }
        union{
            p[id=c]{C}
            c[id=y]{Y}
        }
    }
}
\end{tikzpicture}

(换班是为了防止交叉路口)

但是如果 B 也有孩子 Z 和 D 怎么办?我现在正在做的是add parent

\documentclass[a4paper,landscape]{article}
\usepackage[top=4.5cm, bottom=4.5cm, left=1cm, right=1cm]{geometry}
\usepackage[all]{genealogytree}
\begin{document}
\begin{tikzpicture}
\genealogytree[template=formal graph,
add parent = b to fam_B
]
{child[id=fam_A]{
        g[id=a, tikz={xshift=9mm,yshift=0mm}]{A}
        union{
            p[id=b, tikz={xshift=-9mm,yshift=0mm}]{B}
            c[id=x]{X}
        }
        union{
            p[id=c]{C}
            c[id=y]{Y}
        }
    }
child[id=fam_B, edges up = 1 of 4]{
    g[id=d, tikz={xshift=-15mm,yshift=0mm}] {D}
    c[id=z, tikz={xshift=-9mm,yshift=0mm}] {Z}}
}

\end{tikzpicture}
\end{document}

这产生了

在此处输入图片描述

这很好,只是边缘只在一个点从 B 出来(相比之下,从 A 出来有两条边缘)。我似乎找不到调整边缘起点的方法,只能调整中心节点。

有没有办法很好地做到这一点?我希望有一种方法可以推广到双方超过两次婚姻(有大量的转变)。

答案1

一种方法是给每个节点着色,并用绿色突出显示妻子2和后代 - 并将妻子3和后代涂成蓝色 - 追踪更容易 - 当然也可以根据颜色区分边缘

在此处输入图片描述

\documentclass[a4paper,landscape]{article}
\usepackage[top=4.5cm, bottom=4.5cm, left=1cm, right=1cm]{geometry}
\usepackage[all]{genealogytree}
\begin{document}
    \begin{tikzpicture}
        \genealogytree[template=formal graph,
        % add parent = b to fam_B
        options for node={wife2, childw2}{box={colback=green!20!white}},
        options for node={wife3, childw3}{box={colback=blue!20!white}},
        ]{
        
        child{
                g[male]{Husband}
                p[female]{Wife1}
                    c[female]{childw1}
                    % c[male]{a_4}
                    % c[female]{a_5}
                    union[id=fam_2]{
                                    p[id=wife2,female]{Wife2}
                                        c[id=childw2,female]{childw2}
                                        % c[id=nd3,male]{d_3}
                                        % c[id=nd4,male]{d_4}
                                    }

                    union[id=fam_3]{
                                    p[id=wife3,female]{Wife3}
                                        c[id=childw3,female]{childw3}
                                        % c[id=nd3,male]{d_3}
                                        % c[id=nd4,male]{d_4}
                                    }
                }
}
\end{tikzpicture}
\end{document}

具有自定义边缘

\documentclass[a4paper,landscape]{article}
\usepackage[top=4.5cm, bottom=4.5cm, left=1cm, right=1cm]{geometry}
\usepackage[all]{genealogytree}
\begin{document}
    \begin{tikzpicture}
        \genealogytree[template=formal graph,
        % add parent = b to fam_B
        options for node={wife2, childw2}{box={colback=green!20!white}},
        options for node={wife3, childw3}{box={colback=blue!20!white}},
        ]{
        
        child{
                g[male]{Husband}
                p[female]{Wife1}
                    c[female]{childw1}
                    union[id=fam_2, family={edges={foreground={green!30}}}]{
                                    p[id=wife2,female, ]{Wife2}
                                        c[id=childw2,female]{childw2}
                                    }

                    union[id=fam_3, family={edges={foreground={blue!30,}}}]{
                                    p[id=wife3,female,]{Wife3}
                                        c[id=childw3,female]{childw3}
                                    }
                }
}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容