我正在尝试创建一个带有波浪符号 ( ~
) 的 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
答案4
用来\%7E
替换,之前~
不要忘记。\
%7E
url = {http://lyle.smu.edu/\%7Etspell/jaws/},