当使用 处理非常大的树时genealogytree
,我想隔离某些部分;不只是突出显示,而是隔离,即排除其他所有内容。树已经编码,因此我宁愿避免将其分成两棵树。
例如,下面是否可以只保留从 Grandpa Doe 到 Charles 和兄弟姐妹的最少信息?这样:
变成:
例如,保留的节点可以通过家族 ID 或节点 ID 来指示。这可能很麻烦,但比注释或删除多余的代码行要容易得多。可能有一个简单的方法可以做到这一点,这就是我在这里要求的。
另一种可能性(可能需要程序包增强)是检测两个节点之间应保留哪些节点。根据两个节点 ID,程序将使用最短路径将它们连接起来,并添加每个缺失的父节点(以及可能的兄弟节点)。
我已经找到了选项options for family
,edges for family
但通过设置微小尺寸或白色来排除节点并不是一个非常合理的方法。
第一棵树的代码:
\documentclass[tikz]{standalone}
\usepackage[all]{genealogytree}
\usepackage{times}
\usepackage{mtpro2}
\begin{document}
\begin{tikzpicture}
\genealogytree[template=signpost,
%options for family={Smith}{box={width=2cm,colback=white}},
%edges for family={Smith}{none},
]
{
parent[id=SmithDoe]{
g[id=Arth2008,male]{Arthur\\\gtrsymBorn\,2008}
c[id=Bert2010,female]{Berta\\\gtrsymBorn\,2010}
c[id=Char2014,male]{Charles\\\gtrsymBorn\,2014}
parent[id=Smith]{
g[id=John1980,male]{John Smith\\\gtrsymBorn\,1980}
p[id=GpSm1949,male]{Grandpa Smith\\\gtrsymBorn\,1949}
p[id=GmSm1952,female]{Grandma Smith\\\gtrsymBorn\,1952}
}
parent[id=Doe]{
g[id=Jane1982,female]{Jane Doe\\\gtrsymBorn\,1982}
c[id=Harr1987,male]{Uncle Harry\\\gtrsymBorn\,1987}
p[id=GpDo1955,male]{Grandpa Doe\\\gtrsymBorn\,1955}
p[id=GmDo1956,female]{Grandma Doe\\\gtrsymBorn\,1956}
}
}
}
\end{tikzpicture}
\end{document}
答案1
这是ignore node
关键,用作
ignore node={GpSm1949,GmSm1952,Harr1987}
id
即它允许您提供想要从树中删除的 s列表。
有多种忽略内容的选项,请参阅第 5.11 节忽略输入在手册中。
\documentclass[tikz,border=5mm]{standalone}
\usepackage[all]{genealogytree}
\begin{document}
\begin{tikzpicture}
\genealogytree[template=signpost,
ignore node={GpSm1949,GmSm1952,Harr1987}
]
{
parent[id=SmithDoe]{
g[id=Arth2008,male]{Arthur\\\gtrsymBorn\,2008}
c[id=Bert2010,female]{Berta\\\gtrsymBorn\,2010}
c[id=Char2014,male]{Charles\\\gtrsymBorn\,2014}
parent[id=Smith]{
g[id=John1980,male]{John Smith\\\gtrsymBorn\,1980}
p[id=GpSm1949,male]{Grandpa Smith\\\gtrsymBorn\,1949}
p[id=GmSm1952,female]{Grandma Smith\\\gtrsymBorn\,1952}
}
parent[id=Doe]{
g[id=Jane1982,female]{Jane Doe\\\gtrsymBorn\,1982}
c[id=Harr1987,male]{Uncle Harry\\\gtrsymBorn\,1987}
p[id=GpDo1955,male]{Grandpa Doe\\\gtrsymBorn\,1955}
p[id=GmDo1956,female]{Grandma Doe\\\gtrsymBorn\,1956}
}
}
}
\end{tikzpicture}
\end{document}