
Ich versuche, es einfach zu halten. Angesichts des Folgenden: Was ist falsch an dem auskommentierten Code (leider funktioniert keiner von beiden) und wie kann man das auf alternative Weise tun? „Das“ ist der Zugriff auf eine Eigenschaftenliste über einen Schlüssel, der erweitert werden muss.
\documentclass{article}
\usepackage{expl3}
\begin{document}
\ExplSyntaxOn
\tl_new:N \templist
\prop_new:N \tablestart
\prop_put:Nnn \tablestart {u}{tablestart 1}
\prop_put:Nnn \tablestart {u}{tablestart 2}
\prop_put:Nnn \tablestart {u}{tablestart 3}
\tl_new:N \tablebody
\seq_new:N \entryuvw
\seq_put_right:Nn \entryuvw {u}
\seq_put_right:Nn \entryuvw {v}
\seq_put_right:Nn \entryuvw {w}
\cs_new_protected:Nn \make_entry:n {
\int_step_inline:nnnn { 1 } { 1 } { 3 } {
\tl_set:Nx \templist {\seq_item:Nn \entryuvw {##1}}
\templist
%\prop_get:NxN \tablestart {\tl_use:N \templist} \tablebody
%\prop_get:NVN \tablestart \templist \tablebody
}
\tablebody
}
\make_entry:n {}
\ExplSyntaxOff
needs an output line
\end{document}
Antwort1
Du solltest benutzen
\prop_get:NVN \tablestart \templist \tablebody
Das ist gleichbedeutend mit
\prop_get:NnN \tablestart {<contents of \templist>} \tablebody
Ihre Benennung der Variablen ist leider falsch, halten Sie sich expl3
diesbezüglich bitte an die Konventionen.
\documentclass{article}
\usepackage{expl3,xparse}
\ExplSyntaxOn
\tl_new:N \l_bob_templist_tl
\tl_new:N \l_bob_tablebody_tl
\prop_new:N \l_bob_tablestart_prop
\seq_new:N \l_bob_entryuvw_seq
\prop_put:Nnn \l_bob_tablestart_prop {u}{tablestart 1}
\prop_put:Nnn \l_bob_tablestart_prop {v}{tablestart 2}
\prop_put:Nnn \l_bob_tablestart_prop {w}{tablestart 3}
\seq_put_right:Nn \l_bob_entryuvw_seq {u}
\seq_put_right:Nn \l_bob_entryuvw_seq {v}
\seq_put_right:Nn \l_bob_entryuvw_seq {w}
\cs_new_protected:Nn \make_entry:
{
\int_step_inline:nnnn { 1 } { 1 } { 3 }
{
\tl_set:Nx \l_bob_templist_tl {\seq_item:Nn \l_bob_entryuvw_seq {##1}}
\l_bob_templist_tl
\prop_get:NVN \l_bob_tablestart_prop \l_bob_templist_tl \l_bob_tablebody_tl
\l_bob_tablebody_tl
}
}
\NewDocumentCommand{\makeentry}{}{\make_entry:}
\ExplSyntaxOff
\begin{document}
\makeentry
\end{document}
Ich habe das Makro erstellt, um den Inhalt der beiden Token-Listenvariablen auszudrucken und so zu überprüfen, ob das Ergebnis dem Erwartungen entspricht.