\href 中的标签导致错误

\href 中的标签导致错误

我正在创建一个beamer演示文稿。我想添加一个带有井号标签 ( #) 的源链接。当我尝试编译它时,出现错误:

! Illegal parameter number in definition of \test.
<to be read again> 
                   }
l.91 \end{itemize}
                   % ends low level
? x

这是我正在使用的线路:

\href{http://highered.mcgrew-hill.com/classware/ala.do?isbn=0072956208&alaid=ala_1500202&showSelfStudyTree=true#}{source}

有没有解决的办法?

答案1

请小心转义井号#

\href{http://example.com/ala.do?foo=bar&showSelfStudyTree=true\#}{source} % # truncated

我必须承认,在这种情况下(哈希位于链接的最末端),这实现了成功编译,但是从我的 pdf 查看器(evince)打开链接时,哈希字符会丢失。如果哈希位于链接内的某个位置,则会保留它:

\href{http://example.com/ala.do?showSelfStudyTree=true\#&foo=bar}{source} % # perserved

答案2

我创建了一篇普通的文章(不是 Beamer 演示文稿),由于某些原因,无法使用\href哈希(即使使用转义)。LaTeX 论坛建议\url可以改用(对我有用):

\url{http://highered.mcgrew-hill.com/classware/ala.do?blahblah=true#}

答案3

我有一个包含两个符号的 URL #(矩阵服务器链接)。即使转义,第二个符号也会被忽略。对我有用的方法是:用其 urlencoding 值替换第二个出现的符号:

\href{https://example.com/foo\#bar\%23baz}{https://example.com/foo\#bar\#baz}

相关内容