l3prop

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

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

我正在尝试在 l3prop 属性列表中查找家谱树中的某些数据,并根据其中的内容执行特殊操作。 在这个 MWE 中,它被精简为一些不太有用的东西,但希望它能清楚地表明我想要实现的目标。人们的“uuid”值用于在他们的名字前面放置一些东西。在“测试”部分,我使用字符串和存储在那里的值进行明确测试berta。child在树中,我不明白如何使用 \gtrDBuuid` 的值进行类似的查找。我只得到“Not”,表示没有找到它。我尝试了不同的签名,但我对 L3 非常不习惯,没有成功。 \documentclass{article} \usepackage[all]{ge...

Admin

prop 与 clist : prop_get 返回 clist,而 prop_map_inline 不返回?
l3prop

prop 与 clist : prop_get 返回 clist,而 prop_map_inline 不返回?

我确信我遗漏了一些琐碎的东西(仍在学习 LaTeX3),但这看起来很奇怪:prop_map_inline 不会将值返回为 clist,即使它们是? \documentclass{article} \begin{document} \ExplSyntaxOn \prop_new:N \someProp % put some data into prop: \clist_set:Nn \l_tmpa_cl {a,b,c} \clist_use:Nn \l_tmpa_cl {\ ---\ } \prop_put:NnV \someProp {keyA} {\...

Admin

按键对属性列表 (`l3prop`) 进行排序
l3prop

按键对属性列表 (`l3prop`) 进行排序

如何按键对属性列表进行排序? 有,\clist_sort但是没有\prop_sort功能。 clist我的解决方法是使用属性列表的键创建一个,对排序clist,然后创建一个新的属性列表,按照排序的顺序添加原始属性列表的项目clist。然后将排序后的属性列表放回到原始属性列表中prop_set_eq 此解决方法是否遵循了以下概念expl3? 这里的最佳实践是什么? 代码按预期工作(就我所知)。只有一步prop_set_eq会导致问题:它挂起(见下面的代码)。 \documentclass{article} \begin{document} \ExplSyn...

Admin

从 l3prop 键展开列表
l3prop

从 l3prop 键展开列表

我有一个键,它以逗号分隔的列表作为其值,其中的条目来自属性列表的键。我希望“默认”(未指定值)将键应用于属性列表的每个键。我不知道如何将属性键转换为可以传递给的扩展列表\clist_map_inline:nn。这是一个最小的非工作示例: \documentclass{article} \ExplSyntaxOn \prop_new:N \g_mymodule_prop \prop_set_from_keyval:Nn \g_mymodule_prop { A=1, B=2, C=3, D=4 } \keys_define:nn { mymodule }...

Admin

Latex3 从属性列表中获取多个键的值
l3prop

Latex3 从属性列表中获取多个键的值

下面的代码可以正常工作。 \ExplSyntaxOn \prop_const_from_keyval:Nn \argsDic{r=\vec{r}, e=E, t=t} \NewDocumentCommand{\args}{m} { \prop_get:NnN \argsDic {#1} \tl_var (\tl_var) } \ExplSyntaxOff 但问题是该函数\prop_get只返回与一个键关联的值。我想知道是否有一个函数可以接受键列表并返回其关联值的列表。像这样 ... \prop_get_multiple:NnN ⟨property list...

Admin

为什么我的 expl3 \prop_item 会增加我的 \stepcounter?
l3prop

为什么我的 expl3 \prop_item 会增加我的 \stepcounter?

我正在尝试做什么 我想创建一个自定义交叉引用标签,读者可以点击该标签并查看我引用的文本行。但是,我希望标签的编号能够自动进行,这样我就可以在文本中添加和删除项目,而无需手动重新编号。 为了实现这一点,我目前正在拼凑一个expl3 \prop_行为类似于 Pythondict或 C 类的map函数,这很常见。我在命令中设置并调用我的自定义标签并进行测试。但是,似乎我\prop_item的计数器以我意想不到的方式增加。 平均能量损失 \documentclass{article} \usepackage{hyperref} \usepackage{xparse...

Admin

尝试理解 l3prop 的代码片段
l3prop

尝试理解 l3prop 的代码片段

查看 l3prop 的实现代码,我对以下部分(在 \prop_remove:Nn 的定义中)感到困惑: \cs_new_protected:Npn \__prop_split:NnTF #1#2 { \exp_args:NNo \__prop_split_aux:NnTF #1 { \tl_to_str:n {#2} } } \cs_new_protected:Npn \__prop_split_aux:NnTF #1#2#3#4 { \cs_set:Npn \__prop_split_aux:w ##1 \__prop_pa...

Admin

属性列表值作为 \url 参数
l3prop

属性列表值作为 \url 参数

我想输入\url属性列表的值 \documentclass{article} \usepackage{hyperref} \begin{document} \ExplSyntaxOn \prop_set_from_keyval:Nn \l_tmpa_prop { mail=user@domain, } \prop_get:NnN \l_tmpa_prop { mail } \l_tmpa_tl \url{\l_tmpa_tl} \end{document} 我得到的是\unhbox\voidb@x\bgroup\@xxxiil\egroup_tmpa_...

Admin

将 l3prop 存储在 l3seq 中
l3prop

将 l3prop 存储在 l3seq 中

在一个.sty文件中,我定义以下内容: \seq_new:N \g__test_seq \NewDocumentCommand \TestAdd {m} { \prop_clear_new:N \l__test_prop \prop_set_from_keyval:Nn \l__test_prop { key1 = {#1}, % other keys omitted } \seq_gpush:Nn \g__test_seq { \l__test_prop } ...

Admin

属性列表键的 LaTeX 等效于 \str_if_eq:nnTF 吗?
l3prop

属性列表键的 LaTeX 等效于 \str_if_eq:nnTF 吗?

这是一个纯 l3 代码:我创建一个属性列表,其中包含 2 个键a和条目b。然后我循环遍历这些条目并中断键a排版“YES”。 \documentclass{article} \begin{document} \ExplSyntaxOn \prop_new:N \myProp \prop_set_from_keyval:Nn \myProp { a=A, b=B, } \prop_map_inline:Nn \myProp { \str_if_eq:nnTF{#1}{a} {\prop_map_break:n {YES}} {NO} ...

Admin

获取以键为变量的项目
l3prop

获取以键为变量的项目

我正在尝试检索存储在变量中的指定键的值。通常我们会使用 Nx 来扩展变量,但\prop_item:Nx会引发错误。如果键是变量,我该如何检索值? ! Undefined control sequence. l.23 Value: \prop_item:Nx \l__dict_prop {\tl_use:N \l__key_str} ! Undefined control sequence. <argument> \LaTeX3 error: ...

Admin

以保留 catcode 的方式将键值对保存在 `l3prop` 中
l3prop

以保留 catcode 的方式将键值对保存在 `l3prop` 中

这是这个帖子。最初的问题是将某些函数的选项存储在某个容器中。此类函数的示例:\includepdf、 或\newwatermark。如果选项很多且\function[options]需要重复使用,这种方法会很有用。如果选项直接存储在 中l3seq(第一种方法),则可以正常工作。但我想将选项存储在 中,l3prop因为它可以处理重复项(例如,如果我在扩展点更新选项)。因此,在扩展点需要一个额外的步骤:将选项从 转移到l3prop,l3seq然后使用 进行扩展\seq_use:Nn。这定义了第二种方法。它适用于\includepdf,但不适用于\newwater...

Admin

两个看似相同的 l3seq 导致传递给函数的行为不同
l3prop

两个看似相同的 l3seq 导致传递给函数的行为不同

我有两个seq,一个由 构成clist,另一个由 构成prop,它们的扩展(,项目之间有 )看起来相同。它们应该包含 的选项\newwatermark。使用prop是为了确保选项(和其他要求)中没有重复。第一个按预期工作,第二个编译失败。为什么,如何修复?我用 代替 时没有出现此includepdf错误newwatermark。 PS:这是这个帖子。 \documentclass{article} \usepackage{mwe} \usepackage{pdfpages} \usepackage{xparse} \usepackage{xwaterma...

Admin

是否可以将序列(l3seq)作为属性列表(l3prop)中的值?
l3prop

是否可以将序列(l3seq)作为属性列表(l3prop)中的值?

这与expl3:是否可以将属性列表(l3prop)作为属性列表中的值? 相反,我想要的是 \pushmetadata{author}{author1} \pushmetadata{author}{author2} \pushmetadata{title}{title1} \pushmetadata{title}{title2} ... 和 \getmetadata{author}{1} 取回序列中的值。 同时,还有一种迭代/获取某些序列的方法。 ...

Admin

expl3 具有参数化名称的属性列表序列:虚假空间
l3prop

expl3 具有参数化名称的属性列表序列:虚假空间

编辑(上下文) 对于我正在研究的一个课程myclass,我希望用户能够指定他所属的学院、下属学院、下属学院等(的特征)。由于(下属(下属(...)))学院的数量不可预测,我希望用户能够通过单个命令指定这些特征,例如\setinstitute使用⟨key⟩ = ⟨value⟩语法: \setinstitute{ name = ⟨name⟩, url = ⟨url⟩, logo file = ⟨logo file⟩, } 可以根据需要多次使用。 对于⟨key⟩ = ⟨value⟩语法,我使用l3keys模块及其良好的.prop...

Admin