带有波浪符号的 URL?

带有波浪符号的 URL?

我正在尝试创建一个带有波浪符号 ( ~) 的 URL:

\usepackage{url}
...
\url{http://lyle.smu.edu/~tspell/jaws}

在生成的 PDF 中它看起来正确,但是当单击它时,浏览器会转到错误的 URL:http://lyle.smu.edu/%18tspell/jaws

如果我输入浏览器%7e(' ' 的转义代码~)而不是%18浏览器,则会转到正确的 URL。

知道如何在 PDF 中获取正确的链接吗?

答案1

您应该使用hyperref包(内部使用url但有所改进)。它不仅会格式化链接,还会将真正的超链接放入 PDF 中。url单独使用时,链接只是普通文本,但您的 PDF 查看器可能会将其识别为超链接,但代码错误~。LaTeX 倾向于根据您使用的字体替换这些特殊字符的代码,而不是采用 ASCII 代码。

这对于 Acrobat Reader 来说很有效:

\documentclass{article}
\usepackage{hyperref}
\begin{document}
\url{http://lyle.smu.edu/~tspell/jaws}
\end{document}

有趣的是,这%18是“CAN(取消)”的 ASCII 代码,这没什么意义,也不\char"18是字体中的波浪符号tt。我不明白这个特定代码是如何生成的。

答案2

如果在文本内部或文本内使用该~字符,它将正常工作,因为它们会自动禁用所有 TeX 解析;如 Martin Scharrer 所述。对于其他字符(如和)以及包提供的命令,情况也是如此。\url{}\hyperref{}_\path{}url

如果你的书目文件中有 URL,.bib它将不起作用。解决这个问题的方法是URL 编码字符。波浪符号将被编码为%7E。参考书目条目将如下所示:

@article{Spell.2009,
  author = {Spell, Brett},
  date   = {2009-12-24},
  title  = {Java API for WordNet Searching (JAWS)},
  url    = {http://lyle.smu.edu/%7Etspell/jaws/},
}

这将正确编译,并且 URL 可在生成的 PDF 中点击。您甚至可以将该 URL 复制到浏览器中,它将按预期加载。

答案3

这对我来说是有效的(另外:链接有效!)

\string~

从:https://latex.org/forum/viewtopic.php?t=3663

答案4

用来\%7E替换,之前~不要忘记。\%7E

url    = {http://lyle.smu.edu/\%7Etspell/jaws/},

相关内容