我想在 genealogytree 包中模拟表亲之间的婚姻。以下 MWE 说明了这种情况。左树的代码类似。
\documentclass{article}
\usepackage[all]{genealogytree}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{graphicx}
\usepackage{yfonts}
\usepackage{suetterl}
\usepackage{txfonts}
\usepackage{pgfornament}
\usepackage{tikz}
\usepackage{calligra}
\usepackage{pagecolor}
\usepackage[pages=some]{background}
\begin{document}
\begin{tikzpicture}
\genealogytree[id suffix=@a, timeflow = down,
child distance in parent graph=1mm,
child distance in child graph=1mm
]{
child{
g[male]{A'}
p[female]{B'}
child{
g[male]{C'}
p[female]{D'}
child{
g[male]{E'}
}
}
}
}
\end{tikzpicture}
\end{document}
我想将两个家族的两端连接起来,用亮线表示。使用 set id 选项可以轻松将一端的两棵家谱树(即包括丈夫/妻子的祖先)连接起来。例如,使用 set id 选项可以轻松建模从 E 和 E' 的交点向上到 E 和 E' 的独立树的树。但我如何在顶部再次连接树,即让 A 和 A' 共享相同的父母,但属于不同的 genealogytree{ ...} 命令?
编辑:
在回答完薛定谔的猫之后,我想重新表述一下这个问题。我不想画线,而是想在 genealogytree 的选项中添加一棵树,以整合上面描述的关系。让我尽可能详细地说明给出的内容和我的意图。我在这里看到三棵独立的家谱树:
1) 我有一组父母 0M 和 0F,他们没有在图中显示,也有祖先。0M 和 0F 有一个孩子 A,孩子 A 有一个孙子 E。我想将其建模为树 1。
2) E 有自己的孩子、孙子等。我称之为树 2. E 的祖先,即 0M 和 0F 以及他们的祖先,通过家谱树中的“设置位置 id”选项添加到树 2 中。
现在困难出现在第三个三。
3) 0M 和 0F 的另一个儿子 A' 也有一个孙子 E'。A' 的树应称为树 3。他的孙子现在嫁给了树 1 的 E,他是他的二表兄。我想解决的问题是如何将树 3 定位在树 1 的上半部分 0M 和 0F 处,将树 2 定位在下半部分。我该怎么做?
答案1
这基本上是重复@cfr 对你上一个问题的回答。为节点指定 ID,然后使用它们。这里的新内容是范围和库的使用calc
。
\documentclass{article}
\usepackage[all]{genealogytree}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\begin{scope}[xshift=-7cm]
\genealogytree[id suffix=@a', timeflow = down,
child distance in parent graph=1mm,
child distance in child graph=1mm
]{
child{
g[male,id=A]{A'}
p[female]{B'}
child{
g[male]{C'}
p[female]{D'}
child{
g[male,id=E]{E'}
}
}
}
}
\end{scope}
%
\genealogytree[id suffix=@a, timeflow = down,
child distance in parent graph=1mm,
child distance in child graph=1mm
]{
child{
g[male,id=A]{A}
p[female]{B}
child{
g[male]{C}
p[female]{D}
child{
g[male,id=E]{E}
}
}
}
}
%
\begin{scope}[thick]
\draw (A@a'.north) -- ($(A@a'.north)!0.8!([email protected] west)+(0,1.5)$) --
([xshift=1mm][email protected] west);
\draw (E@a') -- ($(E@a'.south)!0.6!([email protected])+(0,-1.5)$) -- (E@a);
\end{scope}
\end{tikzpicture}
\end{document}
请注意,截至目前,该图对于基本文章类别来说有点太宽,但我认为您会像我们大多数人一样,使用该geometry
包将页面做得更宽一些。