URL 无法正常工作,因为 #

URL 无法正常工作,因为 #

\url我似乎无法使用或命令创建指向 GitHub 上文件特定行的超链接\href。以下返回 404 页面:

\documentclass{article}

\usepackage{url}

\begin{document}
    \url{https://github.com/SeSodesa/zeffiro_interface/blob/49fb5f652134e869c93809f05fbd70f0a730bbc4/m/forward_scripts/brain/lead_field_eeg_fem.m#L167}
\end{document}

我将其追溯到这样一个事实:\url和似乎都用其 URL 编码的对应项\href替换了行号符号,但 GitHub 无法理解这种情况发生的上下文。当我在生成的链接中将替换为时,URL 又可以正常工作。#%23%23#

那么我的问题是,我该如何解决这个问题?这个链接相当丑陋,最终超出了页面边界,所以我想用一个简短的描述来替换它,\href但仍然保留一个可用的链接。


编辑:我认为问题可能是链接位于脚注内。代码

\usepackage{url}

\begin{document}
    \footnote{\url{https://github.com/SeSodesa/zeffiro_interface/blob/49fb5f652134e869c93809f05fbd70f0a730bbc4/m/forward_scripts/brain/lead_field_eeg_fem.m#L167}}
\end{document}

产生错误

! Illegal parameter number in definition of \Hy@tempa.
<to be read again>

当数字符号#被转义时,没有错误,但是产生的链接\url不起作用:https://github.com/SeSodesa/zeffiro_interface/blob/49fb5f652134e869c93809f05fbd70f0a730bbc4/m/forward_scripts/brain/lead_field_eeg_fem.m%23L167

由命令 \url 生成的 404 页面。

编辑2:看起来该链接在 Adob​​e Acrobat 中确实有效...我正在使用 Skim 来阅读该文档。

答案1

根据文档\url参数不能包含任何%#、 或,或者如果用于另一个命令的参数中^^则以 结尾。\

也就是说,这对我来说确实有效(苏门答腊 PDF 阅读器):

\documentclass{article}

\usepackage{xurl,hyperref}

\begin{document}
Test\footnote{\url{https://github.com/SeSodesa/zeffiro_interface/blob/49fb5f652134e869c93809f05fbd70f0a730bbc4/m/forward_scripts/brain/lead_field_eeg_fem.m\#L167}}

\end{document}

相关内容