使用家谱树隐藏树的部分内容

使用家谱树隐藏树的部分内容

当使用 处理非常大的树时genealogytree,我想隔离某些部分;不只是突出显示,而是隔离,即排除其他所有内容。树已经编码,因此我宁愿避免将其分成两棵树。

例如,下面是否可以只保留从 Grandpa Doe 到 Charles 和兄弟姐妹的最少信息?这样:

在此处输入图片描述

变成:

在此处输入图片描述

例如,保留的节点可以通过家族 ID 或节点 ID 来指示。这可能很麻烦,但比注释或删除多余的代码行要容易得多。可能有一个简单的方法可以做到这一点,这就是我在这里要求的。

另一种可能性(可能需要程序包增强)是检测两个节点之间应保留哪些节点。根据两个节点 ID,程序将使用最短路径将它们连接起来,并添加每个缺失的父节点(以及可能的兄弟节点)。

我已经找到了选项options for familyedges 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}

相关内容