\url 使用变量时需要额外的括号

\url 使用变量时需要额外的括号

在以下示例中使用时\url{},它会在变量周围添加额外的括号。因此,以下代码呈现为:

{google.com} - google.com

  1. 为什么会发生这种情况?我该如何避免?
  2. 有没有更好的方法来完成我在这里尝试做的事情?我想要一个命令(\template),它将在文件中的一个位置或另一个文件中获取一些参数,另一个命令(\render)负责如何显示(呈现)这些参数。我想轻松地从命令中添加/删除参数\template。我希望能够通过指定然后引用传递给的第一个变量来多次使用\template和,例如使用\render\templatetex_url在相同的方式google_url
\documentclass{article}
\usepackage{hyperref}
\usepackage{forarray}

\newcommand{\template}[2]{
\DefineArrayVar{#1}{@}
{|}{URL}
{|}{{#2}}
}

\newcommand{\render}[1]{
  \subheading{\csname #1@URL\endcsname}
}

\newcommand{\subheading}[1]{
    \url{#1} - #1
}

\begin{document}
    \template{google_url}{google.com}
    \render{google_url}
\end{document}

相关内容