問題

問題

問題

ファイル間のハイパーリンクは常に別のファイルの最初のページに移動しますが、リンクはターゲット ファイル内の正確なラベル位置 (またはテキスト) に移動するものと期待しています。

再生手順

環境:

  1. TeX バージョン: バージョン 3.141592653 (TeX Live 2022/Debian)
  2. オペレーティング システム: Linux ディストリビューション、Debian 12 bookworm x86_64。

始める:

one.texハイパーリンク ラベル/ターゲットを含むファイルがあるとします。

Links to label
{\catcode`\#=11
 \special{html:<a href="#one">}one\special{html:</a>}}
{\catcode`\#=11
 \special{html:<a href="#two">}two\special{html:</a>}}
{\catcode`\#=11
 \special{html:<a href="#three">}three\special{html:</a>}}

Label
{\catcode`\#=11
 \special{html:<a name="one">}one\special{html:</a>}}

\vfil \break
Label
{\catcode`\#=11
 \special{html:<a name="two">}two\special{html:</a>}}

\vfil \break
Label
{\catcode`\#=11
 \special{html:<a name="three">}three\special{html:</a>}}

\bye

$ tex one.tex; dvipdfm one.dviまたはでコンパイルした後$ xetex one.tex、 で開きますmupdf one.pdf。上部のファイル内リンクは正常に機能します。

ここで、別のファイルからこれらのラベルにリンクしたいとしますtwo.tex

Link to label
{\catcode`\#=11
 \special{html:<a href="one.pdf#one">}one\special{html:</a>}}
{\catcode`\#=11
 \special{html:<a href="one.pdf#two">}two\special{html:</a>}}
{\catcode`\#=11
 \special{html:<a href="one.pdf#three">}three\special{html:</a>}}

\bye

上記と同じ手順でコンパイルし、 で開いた後mupdf、リンクをクリックすると常に の最初のページに移動しますone.pdf。リンク 2 をクリックすると、 のページ 2/ラベル 2 に移動すると予想されますone.pdf。リンク 3 についても同様です。(ファイル間リンクが失敗します)

Plain TeX で目的を達成する方法はありますか? それとも、特定の PDF 拡張機能に頼らなければなりませんか? よろしくお願いします!

非解決策

これらを読みましたが、これらはこの問題の解決策ではありません:

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

ラテックス:

  1. 異なる PDF 内の場所へのハイパーリンクを設定できますか?
  2. 別の PDF ファイルの特定のページへのリンクを作成する

関連情報