纯 TeX 中的超链接

纯 TeX 中的超链接

向所有 (La)TeX 人问好

这里:

纯 TeX 和 dvi 和 pdf 中的不同超链接样式

有一些宏(由 Alan U. Kennington 编写)关于如何在纯 TeX 中生成超链接和交叉引用超链接。我测试了它们,但当我使用以下命令将 dvi 格式转换为 pdf 时,链接消失了:然后dvips -z file.dvips2pdf file.ps这是我的简单示例:

% first Alan U. Kennington's macros:
%
% This \PreHatch macro to prefix a text string with a hatch character.
{\catcode`\^=6 \catcode`\#=12 \gdef\PreHatch^1{#^1}}

% Anchor points for cross-reference hyperlinks.
\def\LinkNameText#1#2{%
 \special{html:<a name="#1">}#2\special{html:</a>}}
\def\LinkNamePRE#1{\special{html:<a name="#1">}}
\def\LinkNamePOST{\special{html:</a>}}
\def\LinkName#1{\LinkNameText{#1}{}}

% Cross-reference hyperlinks to defined anchor points.
\def\LinkHrefText#1#2{%
 \special{html:<a href="\PreHatch{#1}">}#2\special{html:</a>}}

% Pre-text and post-text macros.
\def\LinkHrefPRE#1{\special{html:<a href="\PreHatch{#1}">}}
\def\LinkHrefPOST{\special{html:</a>}}

% External hyperlinks.
\def\LinkHrefExtText#1#2{%
 \special{html:<a href="#1">}#2\special{html:</a>}}
\def\LinkHrefExt#1{\LinkHrefExtText{#1}{#1}}
\def\LinkHrefExtTT#1{\LinkHrefExtText{#1}{{\tt#1}}}


% then my simple test:
%
hallo\LinkName{label}

\LinkHrefText{label}{please click here}

\end

只需进行处理即可tex file。链接在 dvi 格式下工作正常,但正如我所说,转换后就不存在了dvips -z -> ps2pdf

请帮助任何能帮助的人。

答案1

我不确定,但恕我直言,dvips -z转换的方式超文本html特价pdfmark不起作用,因为它现在不受支持。LaTeX 的 hyperref 包在使用 LaTeX -> dvi -> dvips -> ps2pdf 的方式时不使用 hypertext-html 特殊项。它使用自己的复杂解决方案,其中包含更多和更大的特殊项:它们生成pdfmark直接使用语言。

我的假设是基于这样一个事实:在使用 dvi -> PS -> PDF 的方式时,没有人使用 hypertex-html 特效,因此它们不受支持。当然,它们在一个非常古老的 www 页面上有记录,并且它们在 xdvi 预览器中有效。

我建议不要使用 tex -> dvi -> dvips -> PS -> ps2pdf 方法,因为今天我们有更多简单的方法来生成 PDF。

编辑我找到了错误的核心。如果链接以垂直模式开始,并以水平模式结束于段落的第一行(如您的示例所示),则链接的敏感矩形阵列会消失。尝试使用Hey, \LinkHrefText{label}{please click here}而不是仅使用\LinkHrefText{label}{please click here}。或者在链接前加上\leavevmode

相关内容