# 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にすることができます。