
これをシンプルにしようとしています。以下を考慮すると、コメント アウトされたコードのどこが間違っているのでしょうか (残念ながらどちらも機能しません)。また、それを実行する別の方法は何でしょうか。「それ」とは、拡張する必要があるキーを介してプロパティ リストにアクセスすることです。
\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}
答え1
使用すべき
\prop_get:NVN \tablestart \templist \tablebody
これは次の式と同等である。
\prop_get:NnN \tablestart {<contents of \templist>} \tablebody
残念ながら、変数の命名が間違っています。expl3
この点に関しては規則に従ってください。
\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}
結果が期待どおりであるかどうかを確認するために、2 つのトークン リスト変数の内容を印刷するマクロを作成しました。