使用 URL(href)中子字符串(xstring)的条件输出

使用 URL(href)中子字符串(xstring)的条件输出

无法将子字符串条件的输出传递到 URL:

梅威瑟:

\documentclass{memoir}
\usepackage{xstring}
\usepackage{hyperref}

\newcommand{\substring}{%
  \IfSubStr{%
  Physics,%
  Chemistry,%
  Biology,%
  }{Physics}{https://www.google.com}{}%
}%

\begin{document}

\url{\substring}

\end{document}

输出:

  • 错误:\Hy@tempa 定义中的参数编号非法。[\url{\substring}]

预期输出:

实现预期输出的最佳方法是什么?

答案1

您拥有的是不可扩展的。您可以更改命令以适当地定义宏,或者\href在宏中构建命令。

\documentclass{memoir}
\usepackage{xstring}
\usepackage{hyperref}

\newcommand{\substring}{%
  \IfSubStr{%
  Physics,%
  Chemistry,%
  Biology,%
  }{Physics}{\def\MyUrl{https://www.google.com}}{\def\MyUrl{}}%
}%


\newcommand{\ConditionalURL}[1]{%
  \IfSubStr{%
  Physics,%
  Chemistry,%
  Biology,%
  }{#1}{\url{https://www.google.com}}{}%
}%

\begin{document}
\substring\url{\MyUrl}

\ConditionalURL{Physics}
\end{document}

相关内容