我经常使用\input{glyphtounicode} \pdfgentounicode=1
它来生成 PDF 文件,其内容使用正确的 Unicode 代码点进行粘贴。然而我注意到,作为这些命令的副作用,创建了一些我没有明确调用的网络链接(例如使用hyperref
)。
\documentclass{article}
% If at least one of the following two lines is omitted,
% the two text strings won't generate weblinks.
\input{glyphtounicode}
\pdfgentounicode=1
\begin{document}
www.google.com
http://www.google.com/
\end{document}
如果省略上述两个相关命令中的任何一个,www.google.com
则http://www.google.com/
不会在生成的 PDF 文件中显示为超链接。(我使用 Adobe Reader 查看它们。)为什么?我如何防止这些文本字符串产生超链接?
答案1
为什么会产生这些链接?
在这种情况下,Adobe Reader 推断它们是链接。(Ulrike Fischer)但这是取决于观看者:TeXworks 查看器不会生成自动链接,但 Preview 会生成(甚至在没有 的glyphtounicode.tex
机制的情况下)。(Joseph Wright)
我怎样才能防止这些文本字符串产生超链接?
对于 Adobe Reader XI,可以启用或禁用以下复选框:Preferences
→ General
→ Basic Tools
→ Create links from URLs
。
为什么链接创建依赖于两个命令\input{glyphtounicode}
和\pdfgentounicode=1
?
读者正在使用名称字形来决定字形序列是否为链接。字形名称的使用取决于这两行关键内容。(改编自 Ulrike Fischer)
其中最重要的部分glyphtounicode.tex
似乎是以下几行:
\pdfglyphtounicode{a}{0061}
\pdfglyphtounicode{b}{0062}
...
\pdfglyphtounicode{z}{007A}
和
\pdfglyphtounicode{colon}{003A}
\pdfglyphtounicode{slash}{002F}
\pdfglyphtounicode{period}{002E}
如果没有colon
或slash
,下方文本将只有第二部分显示为链接。如果没有period
,则只有下方文本被链接,但其全部内容都被链接。
小写字母似乎有重复
\pdfglyphtounicode{Asmall}{0061}
\pdfglyphtounicode{Bsmall}{0062}
...
\pdfglyphtounicode{Zsmall}{007A}
这似乎没有什么区别。
至于大写字母:
\pdfglyphtounicode{A}{0041}
\pdfglyphtounicode{B}{0042}
...
\pdfglyphtounicode{Z}{005A}
和
WWW.GOOGLE.COM
HTTP://WWW.GOOGLE.COM/
下方的文本会被链接,但上方的文本不会被链接。没有大写字母,www.GOOGLE.COM
仍然可以识别。这表明大写字母起了作用,但还有一些细节需要探索。