\input{glyphtounicode} 和 \pdfgentounicode=1 会从类似链接的文本创建不需要的超链接

\input{glyphtounicode} 和 \pdfgentounicode=1 会从类似链接的文本创建不需要的超链接

我经常使用\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.comhttp://www.google.com/不会在生成的 PDF 文件中显示为超链接。(我使用 Adob​​e Reader 查看它们。)为什么?我如何防止这些文本字符串产生超链接?

答案1

为什么会产生这些链接?

在这种情况下,Adobe Reader 推断它们是链接。(Ulrike Fischer)但这是取决于观看者:TeXworks 查看器不会生成自动链接,但 Preview 会生成(甚至在没有 的glyphtounicode.tex机制的情况下)。(Joseph Wright)

我怎样才能防止这些文本字符串产生超链接?

对于 Adob​​e Reader XI,可以启用或禁用以下复选框:PreferencesGeneralBasic ToolsCreate 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}

如果没有colonslash,下方文本将只有第二部分显示为链接。如果没有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仍然可以识别。这表明大写字母起了作用,但还有一些细节需要探索。



谢谢乌尔丽克·菲舍尔为该解决方案做出了重大贡献。赫伯特值得赞扬的想法和约瑟夫·赖特埃格尔用于数据点。

相关内容