我有两个问题:
起初,我在对齐节点内的文本时遇到了一些困难。我的目标是让名称居中对齐,其余内容左对齐。由于无法将其插入数据库的名称字段,我猜这必须在处理器中完成。
其次,我注意到如果空间不够,节点内容中就会出现换行符(当然)。在我看来,如果日期跨越两行,看起来会很难看,所以我想阻止处理器(至少我猜是处理器)在这个特定位置插入换行符。
我用
\genealogytree[
template=signpost,
database content interpreter,
database format=full,
list separators hang,
edges=rounded]{ input{file} }
制作树。
我希望你们中有人知道如何做到这一点,我已经在互联网上搜索过并试图了解数据库处理器的代码,但我没有找到合适的地方。
编辑:根据要求,此外,还有一个最小工作代码:
\documentclass{standalone} %or standalone
\usepackage[all]{genealogytree}
\gtrset{info separators={\par}{. }{}{}} %no period after comment
\begin{document}
\begin{tikzpicture}
%templates: signpost, database traditional
\genealogytree[
template=signpost,
database content interpreter,
database format=full,
list separators hang,
edges=rounded]{
sandclock{
child{
g[female]{
female,
name = {name \surn{name}},
birth- = {1997-09-20},
}
}
child{
g[male]{
male,
name = {name \surn{name}},
birth- = {2001-05-23},
}
}
}
}
\end{tikzpicture}
\end{document}
答案1
如果您不使用路标模板,它将左对齐。然后以特殊方式处理名称的一种方法是滥用参数,该参数实际上是用于为名称设置特殊字体的。
我在示例中设置了更大的框,以便对齐之间的差异更加清晰。
\documentclass{standalone} %or standalone
\usepackage[all]{genealogytree}
\gtrset{info separators={\par}{. }{}{}} %no period after comment
\gtrset{name font=\hfil}
\begin{document}
\begin{tikzpicture}
% templates: signpost, database traditional
\genealogytree[
%% template=signpost,
node size=5cm,
database content interpreter,
database format=full,
list separators hang,
edges=rounded]{
sandclock{
child{
g[female]{
female,
name = {name \surn{name}},
birth- = {1997-09-20},
}
}
child{
g[male]{
male,
name = {name \surn{name}},
birth- = {2001-05-23},
}
}
}
}
\end{tikzpicture}
\end{document}
至于问题 2,我不确定在您给出的例子中您希望发生什么。