HyperTeX specials

 HyperTeX は、TeXにおいてHTMLの言語を取り入れ、TeXで作成された文書内部、ローカルマシン内部の他のファイル、あるいは、インターネットを通じた外部へのHyper Jumpを実現するものです。

HTMLにおける <a href="..."> ... </a>, <a name="..."> ... </a> に対応するものは、HyperTeX specials
\special{html:<a href="....">} ... \special{html:</a>}
\special{html:<a name="....">} ... \special{html:</a>}

として実現されます。そのためのLaTeX用のスタイルファイル(奥村氏による)を以下に載せます。
-------------------  myhyper.sty  --------------
\def\href<<<<>>>>leavevmode\begingroup \@sanitize \@href}
\def\@href#1{special{html:<a href="#1">}\endgroup \@@href}
\def\@@href#1{#1\special{html:</a>>>>>{<<<<

\def\base{leavevmode\begingroup \@sanitize \@base}
\def\@base#1{special{html:<base href="#1">}\endgroup}

\def\img{leavevmode\begingroup \@sanitize \@img}
\def\@img#1{special{html:<img src="#1">}\endgroup}

\def\name{leavevmode\begingroup \@sanitize \@name}
\def\@name#1{special{html:<a name="#1">}\endgroup \@@name}
\def\@@name#1{#1\special{html:</a>>>>>{<<<<
 -------------------------------------------
HTMLで使われる # などが、TeXでは特殊な意味を持ってしまうので、上のようなスタイルファイルを用意します。
ただ、最後の \name だけは単なる文字列しか引数にとらないはずなので,

\def\name#1#2{leavevmode\special{html:<a name="#1">}#2\special{html:</a>>>>>{<<<<

でもよかったかもしれません。

ちなみに,HyperTeX の仕様は上の4個のマクロに尽きてしまいます。

dviout for Windowsは、<a href=...>, <a name=...>, </a>のHyperTeX specialsをサポートしています。

  \href{#foo}{ここ}をクリックすると
  ......
  \name{foo}{ここ}に飛びます。

  \href{http://akagi.ms.u-tokyo.ac.jp/ftp-j.html#TeX}{こちら}から
  dviout for Windowsの最新版が得られます。


  dvioutでは、表示している文書の存在するディレクトリを基準として
  \href{file:.\hypertex\hyper2.dvi#jump}{他のdviファイル}への移動や
  \href{file:\index.html}{HTMLファイル}の表示、他の資源、たとえば
  \href{file:MyMovie.avi}{AVIファイル}のアクセスに対応しています。

のような具合です。

注意 1. 拡張子 .exe, .com, .cmd, .bat をもつローカルなファイルを実行する場合は、^s に続けて
\special{html:<a href="file:notepad.exe^sreadme.txt">} ... \special{html:</a>}
のように、渡すパラメータを指定できます。

注意 2. dviout special は
\special{html:<a href="dviout:macro">} ... \special{html:</a>}
という形で、HypeTeXにすることができます。