我想输入\url
属性列表的值
\documentclass{article}
\usepackage{hyperref}
\begin{document}
\ExplSyntaxOn
\prop_set_from_keyval:Nn \l_tmpa_prop {
mail=user@domain,
}
\prop_get:NnN \l_tmpa_prop { mail } \l_tmpa_tl
\url{\l_tmpa_tl}
\end{document}
我得到的是\unhbox\voidb@x\bgroup\@xxxiil\egroup_tmpa_tl
。我怎样才能获得user@domain
呢?
答案1
您想将值传递给\url
,而不是变量。
\documentclass{article}
\usepackage{hyperref}
\begin{document}
\ExplSyntaxOn
\prop_set_from_keyval:Nn \l_tmpa_prop {
mail=user@domain,
}
\prop_get:NnN \l_tmpa_prop { mail } \l_tmpa_tl
\exp_args:NV \url \l_tmpa_tl
\ExplSyntaxOff
\end{document}
这里\exp_args:NV
因为而跳过第一个标记N
并提供了V
括号中变量的值。
答案2
你 必须 扩展\l_tmpa_tl
, 我 做到 了\expandafter\url\expandafter{\l_tmpa_tl}
.
\documentclass{article}
\usepackage{hyperref}
\begin{document}
\ExplSyntaxOn
\prop_set_from_keyval:Nn \l_tmpa_prop {
mail=user@domain,
}
\prop_get:NnN \l_tmpa_prop { mail } \l_tmpa_tl
\expandafter\url\expandafter{\l_tmpa_tl}
\end{document}