![带有多个 # 的链接无法正常工作](https://linux22.com/image/412276/%E5%B8%A6%E6%9C%89%E5%A4%9A%E4%B8%AA%20%23%20%E7%9A%84%E9%93%BE%E6%8E%A5%E6%97%A0%E6%B3%95%E6%AD%A3%E5%B8%B8%E5%B7%A5%E4%BD%9C.png)
我想在文档中引用在线文档的特定部分。以下是链接:
\documentclass{report}
\usepackage{hyperref}
\begin{document}
\href{https://raytracing-docs.nvidia.com/optix_6_0/guide_6_0/index.html\#host\#graph-nodes}{NVidia}
\end{document}
如您所见,有两个#
。如果不对它们进行转义,我会出现此错误:
! Illegal parameter number in definition of \Hy@tempa.
但是如果我逃避两者,第二个链接之后的链接部分将不会被考虑。
我怎样才能使链接正常工作?
答案1
试试这个(希望没有地方有两个连续哈希值的链接)
补充:虽然补丁中的“正确”链接位于 pdf 中,但评论表明并非每个 pdf 查看器都能处理这个问题。因此最好寻找不使用两个哈希的替代链接。
\documentclass{report}
\usepackage{hyperref}
\makeatletter
\begingroup
\catcode`\$=6 %
\catcode`\#=12 %
\gdef\href@$1{\expandafter\href@split$1###\\}%
\gdef\href@split$1#$2##$3\\$4{%
\hyper@@link{$1}{$2}{$4}%
\endgroup
}%
\endgroup
\makeatother
\begin{document}
\makeatother
\href{https://raytracing-docs.nvidia.com/optix_6_0/guide_6_0/index.html#host#graph-nodes}{NVidia}
\end{document}