无法将子字符串条件的输出传递到 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}