嵌套 Latex3 数据数组

嵌套 Latex3 数据数组

我尝试使用 Latex3“对象”模拟矩阵之类的东西。看来我可以嵌套prop "objects"进去tl "object"——至少它不会抛出错误。

但是,我不知道如何再次访问它们。

\ExplSyntaxOn

\tl_new:N \l_my_array_tl
\prop_new:N \l_my_dict_prop
\prop_new:N \l_my_dict_two_prop

% define a prop "object"
\prop_set_from_keyval:Nn \l_my_dict_prop {val1=some~value, val2=another~value, val3=a~third~value}

% put prop "objects" into the tl "object"
\tl_put_right:NV \l_my_array_tl \l_my_dict_prop
\tl_put_right:NV \l_my_array_tl \l_my_dict_prop

% now i am lost. How can I access the prop "object" from the tl "object"
% is this even possible? I'd like to save \tl_item:N \l_my_array_tl in \l_my_dict_two_prop

\ExplSyntaxOff

有没有办法实现这样的矩阵模拟?

答案1

事实上,没有出现任何错误是无关紧要的。

除了寄存器之外,TeX 只知道如何在宏中存储材料,并且\l_my_dict_prop它是一个宏,就像这样\l_myarray_tl

如果你\tl_show:N \l_myarray_tl在第一\tl_put_right:NV条指令后添加,你会看到

\l_my_array_tl=\s__prop \__prop_pair:wn val1\s__prop {some
value}\__prop_pair:wn val2\s__prop {another value}\__prop_pair:wn val3\s__prop
{a third value}.

其定义与本质上相同\l_my_dict_prop

属性列表是具有非常特定结构的宏:首先\s__prop声明宏包含的内容(例如,如果使用不当,将引发错误);然后以以下形式显示数据

\__prop_pair:wn <key>\s__prop{value}

但是任何程序员(团队除外)都不应该依赖这种将来可能会改变的特定格式。

如果你倾倒内容地下室里的一些箱子,你不能指望以后能找回它们。

根据您的需要,您可能只需要一个属性列表,只要您以合适的方式使用键来表示各个部分,这基本上就是包的想法starray

相关内容