属性列表值作为 \url 参数

属性列表值作为 \url 参数

我想输入\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}

在此处输入图片描述

相关内容