如何将 expl3 中生成的值列表作为键的单个值传递给诸如 \includepdf 之类的宏?

如何将 expl3 中生成的值列表作为键的单个值传递给诸如 \includepdf 之类的宏?

这应该是显而易见的,但事实并非如此。至少对我来说,现在不是。

我想生成一个值列表(例如页码和空值),然后将该列表作为键的值(例如pages)传递到另一个宏(例如)的参数中\includepdf

我可以使用 expl3 轻松生成我想要的值列表。我可以将列表创建为标记列表或序列。(但在这里我不能使用逗号分隔的列表,因为我需要允许空值。)

但是,我无法弄清楚如何正确地将此列表作为pages另一个宏 ( ) 的参数中的键 ( )的值传递\includepdf。部分问题在于我不确定如何传递带有花括号的列表。(或者,我可以使用类别代码为 12 的括号来执行此操作,但这在这里用处不大。)部分原因可能是我在某些地方没有抓住重点。

MNWE:

\documentclass{article}
\usepackage{expl3,pdfpages}
\begin{document}
\ExplSyntaxOn
\tl_new:N \l_my_fancy_tl
\tl_set:Nn \l_my_fancy_tl { 1 }
\tl_put_right:Nn \l_my_fancy_tl { , 1 }
\cs_new_protected_nopar:Npn \my_includepdf:nn #1 #2
{
  \includepdf[#1]{#2}
}
\cs_generate_variant:Nn \my_includepdf:nn { Vn }
\tl_set:Nn \l_tempa_tl { pages={\l_my_fancy_tl} }
\my_includepdf:Vn \l_tempa_tl {example-image-a4}
\ExplSyntaxOff
\end{document}

为了完整性,这不起作用:

! Missing = inserted for \ifnum.
<to be read again> 
                   ,
l.68 ...cludepdf:Vn \l_tempa_tl {example-image-a4}

? 

我该如何思考我该如何解决这个问题?

答案1

你没有扩大价值\l_my_fancy_tl:改变代码来做

\tl_set:Nx \l_tempa_tl { pages={\l_my_fancy_tl} }

相关内容