xstring 和 hyperref 中的 StrSubstitute 问题

xstring 和 hyperref 中的 StrSubstitute 问题

我正在尝试用带有空格的字符串定义标签,以便与 hyperref 一起使用。但我收到错误。如果取消注释了两行注释,下面的示例将无法编译。有办法解决吗?

\documentclass{article}
\usepackage{xstring}
\usepackage{color}
\usepackage{hyperref}

\def\animal{zebra with stripes}
\def\mylabel{\StrSubstitute{\animal}{ }{}}
\def\thelabel{zebrawithstripes}

\begin{document}
\hypertarget{\thelabel}{\noindent Here is a zebra.} \\
Go to \hyperlink{\thelabel}{\textcolor{blue}{\animal}}.\\

%\hypertarget{\mylabel}{\noindent Here is a zebra.} \\
%Go to \hyperlink{\mylabel}{\textcolor{blue}{\animal}}.\\

\mylabel

\end{document}

答案1

包的不可扩展宏xstring通常有一个包含结果的命令的尾部可选参数:

\StrSubstitute{\animal}{ }{}[\mylabel]

相关内容