这应该是显而易见的,但事实并非如此。至少对我来说,现在不是。
我想生成一个值列表(例如页码和空值),然后将该列表作为键的值(例如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} }