プレーンTeXのハイパーリンク

プレーンTeXのハイパーリンク

(La)TeX ユーザーの皆さん、こんにちは

ここ:

プレーンTeXとdv​​iおよびpdfのさまざまなハイパーリンクスタイル

プレーン TeX でハイパーリンクと相互参照ハイパーリンクを作成する方法に関するマクロがいくつかあります (Alan U. Kennington 著)。私はそれらをテストしましたが、次のようにして 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スペシャルpdfマーク現在はサポートされていないため動作しません。LaTeXのhyperrefパッケージは、LaTeX -> dvi -> dvips -> ps2pdfが使用される場合、hypertext-htmlの特殊文字を使用しません。独自の複雑なソリューションを使用して、より大規模な特殊文字を生成します。pdfマーク言語を直接入力します。

私の推測は、dvi -> PS -> PDF が使用されるときに、誰も hypertex-html スペシャルを使用しないという事実に基づいています。したがって、それらはサポートされていません。もちろん、それらは非常に古い www ページに文書化されており、xdvi プレビューアで動作しています。

現在では PDF を生成するためのより簡単な方法が存在するため、tex -> dvi -> dvips -> PS -> ps2pdf という方法を使用しないことをお勧めします。

編集バグの核心を見つけました。リンクが垂直モードで始まり、水平モードで段落の最初の行で終わる場合 (例のように)、リンクの敏感な長方形配列が消えます。Hey, \LinkHrefText{label}{please click here}のみの代わりにを使用する\LinkHrefText{label}{please click here}か、リンクの前に を付けてみてください\leavevmode

関連情報