使用 genealogytree 数据库条目作为 l3prop 属性列表中的键

使用 genealogytree 数据库条目作为 l3prop 属性列表中的键

我正在尝试在 l3prop 属性列表中查找家谱树中的某些数据,并根据其中的内容执行特殊操作。

在这个 MWE 中,它被精简为一些不太有用的东西,但希望它能清楚地表明我想要实现的目标。人们的“uuid”值用于在他们的名字前面放置一些东西。在“测试”部分,我使用字符串和存储在那里的值进行明确测试bertachild在树中,我不明白如何使用 \gtrDBuuid` 的值进行类似的查找。我只得到“Not”,表示没有找到它。我尝试了不同的签名,但我对 L3 非常不习惯,没有成功。

\documentclass{article}
\usepackage[all]{genealogytree}

\begin{document}

\ExplSyntaxOn
\prop_new:N \my_properties
\int_new:N \my_counter
\prop_put:NnV \my_properties { berta } \my_counter
\int_incr:N \my_counter
\prop_put:NnV \my_properties { child } \my_counter

% Testing:
\prop_if_in:NnTF \my_properties {berta} {Found} {Not}

\tl_new:N \thisval
\prop_get:NnN \my_properties {child} \thisval
\par Child~has~\thisval


\newcommand\testsomething{%
  \prop_if_in:NnTF \my_properties {\gtrDBuuid} {There} {Not}
}
\ExplSyntaxOff

\bigskip

\begin{genealogypicture}
  [
  template=database portrait,
  name code={\testsomething\quad \gtrDBname},
  ]
  child{
    g{male,name=Hans Test,
      uuid=hans,
    }
    p{female,name=Berta,
      uuid=berta,
    }
    c{name=Unknown,
      uuid=child,
    }
  }
\end{genealogypicture}

\end{document}

在此处输入图片描述

答案1

\prop_if_in:NnTF \my_properties {\gtrDBuuid} {There} {Not}

您正在属性列表中查找字符串\gtrDBuuid。相反,您想查找当前存储在的值\gtrDBuuid

\prop_if_in:NVTF \my_properties \gtrDBuuid {There} {Not}

相关内容