純 TeX 中的超鏈接

純 TeX 中的超鏈接

向所有 (La)TeX 人問好

這裡:

Plain TeX 以及 dvi 和 pdf 中的不同超連結樣式

有一些巨集(由 Alan U. Kennington 編寫)關於如何在純 TeX 中產生超連結和交叉引用超連結。我測試了它們,但對我來說,當我使用以下命令將 dvi 格式轉換為 pdf 時,連結消失了:dvips -z file.dvi然後ps2pdf 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 -> dvi -> dvips -> ps2pdf 的方式時,LaTeX 的 hyperref 套件不使用 hypertext-html 特殊項。它使用自己的複雜解決方案,具有更多和更大的特色:它們生成pdfmark直接語言。

我的假設是基於以下事實:當使用 dvi -> PS -> PDF 方式時,沒有人使用 hypertex-html 特殊選項,因此它們不受支援。當然,它們記錄在一個非常古老的 www 頁面上,它們正在 xdvi 預覽器中工作。

我建議不要使用 tex -> dvi -> dvips -> PS -> ps2pdf 方式,因為今天我們有更簡單的方法來產生 PDF。

編輯我已經找到這個bug的核心了。如果連結以垂直模式開始並以水平模式結束於段落的第一行(如您的範例中),則連結的敏感矩形數組就會消失。嘗試使用Hey, \LinkHrefText{label}{please click here}而不是僅使用\LinkHrefText{label}{please click here}.或為您的連結加上前綴\leavevmode.

相關內容