使用 Google Chrome 打开带有波浪符号链接的 PDF URL

使用 Google Chrome 打开带有波浪符号链接的 PDF URL

我正在使用 hyperref在 pdf 文档中创建带有波浪符号链接的 url,如下所示:

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

使用 Acrobat Reader 单击它可以在 Firefox 和 IE 中正常运行,但不适用于 Google Chrome。

而是出现在 Google Chrome 的地址栏/行中lyle.smu.edu/%257Etspell/jaws

如果我手动将 URL 从 Acrobat Reader 复制并粘贴到 Google Chrome 的地址栏中,该 URL 可以正确显示,但它无法打开。只有当我直接在地址栏中输入 URL 时,它才会在 Google Chrome 中打开。

当导航器询问时,我选择打开 Google Chrome 作为我的预定导航器。

有什么帮助可以让它同时在 Google Chrome 和其他浏览器上运行吗?

答案1

以下文档生成一些带有和不带有百分比编码的 URL:

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

\href{http://lyle.smu.edu/\%7Etspell/jaws}{%
  \nolinkurl{http://lyle.smu.edu/~tspell/jaws}%
}

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

\end{document}

PDF 文件包含:

3 0 obj <<
/Type /Annot
/Border[0 0 1]/H/I/C[0 1 1]
/Rect [147.716 654.025 317.079 665.15]
/Subtype/Link/A<</Type/Action/S/URI/URI(http://lyle.smu.edu/~tspell/jaws)>>
>> endobj
4 0 obj <<
/Type /Annot
/Border[0 0 1]/H/I/C[0 1 1]
/Rect [147.716 642.07 317.079 653.195]
/Subtype/Link/A<</Type/Action/S/URI/URI(http://lyle.smu.edu/%7Etspell/jaws)>>
>> endobj
5 0 obj <<
/Type /Annot
/Border[0 0 1]/H/I/C[0 1 1]
/Rect [147.716 630.115 327.54 641.24]
/Subtype/Link/A<</Type/Action/S/URI/URI(http://lyle.smu.edu/%7Etspell/jaws)>>
>> endobj

波浪号~是非保留字符 (RFC 3986) 不需要百分号编码。因此第二和第三个 URL 仅用于测试。

以下 PDF 查看器可以使用这些 URL(使用正确的 URL 打开 Firefox):

  • pdf 3.00
  • AR5/Linux
  • AR7/Linux
  • AR8/Linux
  • 福祉阅读器 5.4
  • PDF XChange 查看器 2.5
  • 证据 2.32
  • Google Chrome 24(内部 PDF 查看器)

但是,AR11/Win 似乎将波浪号转换为百分号编码%7E,并再次应用百分号编码,导致错误的%257E。因此,这看起来像是 AR11/Win 中的一个错误。由于百分号编码的 URL 也不起作用,除了使用类似微小的网址避免~(或其他有问题的字符)。

相关内容