%%
%% LaTeX style to handle hyperlatex files, version 2.3
%%
%% $Modified: Fri May 9 13:40:27 1997 by otfried $
%%
%% This code has GNU copyleft, 1994-1998 Otfried Cheong
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{hyperlatex}
[1998/09/08 v2.3 LaTeX2e package for Hyperlatex mode]
\typeout{Package: 'hyperlatex' v2.3 Otfried Cheong}
\RequirePackage{verbatim}
\chardef\other=12
%%
%% Comments,
%%
{\obeylines\gdef\Hlx@W#1^^M{\endgroup\ignorespaces}}
\def\W{\begingroup\obeylines\catcode`\{=\other\catcode`\}=\other\Hlx@W}
\newcommand{\htmlonly}[1]{}
\newcommand{\texorhtml}[2]{#1}
\newenvironment{iftex}{}{}
\newenvironment{latexonly}{}{}
\newcommand{\texonly}[1]{#1}
\newcommand{\T}{}
%%
%% Treatment of special characters
%%
\def\Hlx@nonspecials{}
\def\NotSpecial{\def\Hlx@nonspecials}
\def\Hlx@turnon{\let\do=\@makeother\Hlx@nonspecials}
\AtBeginDocument{\Hlx@turnon}
\let\htmltab=&
%%
%% \begin{tex} ... \end{tex} escapes into raw Tex temporarily.
%% you can write {\tex .....} as well, if already escaped from Html
%%
\newenvironment{tex}{\catcode `\$=3 \catcode `\&=4 \catcode `\#=6
\catcode `\^=7 \catcode `\_=8 \catcode `\%=14}{}
%%
%% \back
%%
\newcommand{\back}{{\tt\char`\\}}
%%
%% \math
%%
\def\math{\@ifnextchar [{\@math}{\@math[]}}
\def\@math[#1]{\begingroup\tex\@@math}
\def\@@math#1{$#1$\endgroup}
%%
%% Commands that don't do anything interesting in Latex
%%
\def\Hlx@pass{\begingroup\let\protect\@unexpandable@noexpand\@sanitize}
\def\Hlx@directory{.}
\newcommand{\htmldirectory}[1]{\gdef\Hlx@directory{#1}}
\newcommand{\htmlname}[1]{}
\newcommand{\htmldepth}[1]{}
\newcommand{\htmltopname}[1]{}
\newcounter{htmldepth}
\newcommand{\htmltitle}[1]{}
\newcommand{\htmladdress}[1]{}
\newcommand{\html}{\Hlx@pass\@html}
\def\@html#1{\endgroup}
\newcommand{\htmlsym}[1]{}
\def\htmlrule{\@ifnextchar [{\@htmlrule}{\@htmlrule[]}}
\def\@htmlrule{\Hlx@pass\@@htmlrule}
\def\@@htmlrule[#1]{\endgroup}
\newcommand{\htmllevel}[1]{}
\newcommand{\htmlmenu}[1]{}
\newcommand{\htmlautomenu}[1]{}
\newcounter{htmlautomenu}
\newcommand{\htmlprintindex}{}
\newcommand{\htmlfootnotes}{}
\newcommand{\htmlmathitalic}[1]{}
\def\htmlimage{\@ifnextchar [{\@htmlimage}{\@htmlimage[]}}
\def\@htmlimage{\Hlx@pass\@@htmlimage}
\def\@@htmlimage[#1]#2{\endgroup}
\newcommand{\xname}{\Hlx@pass\Hlx@ignore}
\def\Hlx@ignore#1{\endgroup}
\newcommand{\htmlpanel}[1]{}
\newcommand{\htmlheading}{\@ifnextchar[{\@htmlheading}{\@htmlheading[]}}
\def\@htmlheading[#1]#2{}
\newcommand{\htmlcaption}[1]{}
\def\htmlattributes{\@ifstar{\@htmlattributes}{\@htmlattributes}}
\def\@htmlattributes{\Hlx@pass\@@htmlattributes}
\def\@@htmlattributes#1#2{\endgroup}
%%
%% GIF environment,
%% will generate bitmaps when `\makegifs' is defined
%%
\newif\if@makegifs
\@ifundefined{makegifs}{\@makegifsfalse}{\@makegifstrue}
\def\gif{\@ifnextchar[{\@gif}{\@gif[b]}}
\def\@gif[#1]{\@ifnextchar[{\@@gif}{\@@gif[100]}}
\def\@@gif[#1]{\gdef\gif@resolution{#1}\@ifnextchar[{\@@@gif}{\@@@gif[300]}}
\def\@@@gif[#1]#2{\gdef\gif@dpi{#1}\gdef\gif@name{#2}\@@@@gif}
\if@makegifs
\typeout{**********************************************}
\typeout{* Making GIF bitmaps from Hyperlatex source! *}
\typeout{**********************************************}
\newwrite\@makegifcmds
\immediate\openout\@makegifcmds=\jobname.makegif
\newbox\@gifbox
\newcount\@gifcount\@gifcount=10000
\def\@@@@gif{\setbox\@gifbox=\vbox\bgroup\tex}
\def\endgif{\egroup
{\global\advance\@gifcount by 1\count0=\@gifcount
\immediate\write\@makegifcmds{dvips\space -f\space -p\space
\the\@gifcount\space -n\space 1\space -E\space -D\space \gif@dpi\space
\jobname.dvi\space>\space\gif@name.ps^^J%
ps2gif\space -res\space \gif@resolution\space \gif@name.ps^^J%
mv\space \gif@name.gif\space \Hlx@directory^^J}
\shipout\copy\@gifbox}\unvbox\@gifbox}
\else
\def\@@@@gif{\tex}
\def\endgif{}
\fi
%%
%% Font style definitions
%%
\let\cit=\textit
\let\code=\texttt
\let\kbd=\texttt
\let\samp=\texttt
\let\strong=\textbf
\let\var=\textsl
\let\dfn=\textit
\let\file=\textit
%%
%% \begin{example} ... \end{example} obeys spaces and lines
%%
%% the indent can be controlled by \exampleindent
%%
\newdimen\exampleindent
\setlength{\exampleindent}{7mm}
\def\Hlx@example{\do\$\do\&\do\#\do\^\do\_\do\~}
{\obeyspaces
\gdef\turnon@spaces{\let =\ \obeyspaces\catcode``=\active\@noligs}}
{\obeylines%
\gdef\turnon@lines{\obeylines\def^^M{\par\def^^M{\leavevmode\par}}}}
\def\example{\list{}{\leftmargin\exampleindent
\itemindent\z@ \rightmargin\z@ \parsep \z@ plus\p@}\item[]\tt
\turnon@spaces\turnon@lines\let\do\@makeother\Hlx@example}
\let\endexample=\endlist
%%
%% font problem: math in example environment seems to need this:
%%
\DeclareFontFamily{OMS}{cmtt}{}
\DeclareFontShape{OMS}{cmtt}{m}{n}{ <-> ssub * cmsy/m/n }{}
\newenvironment{menu}{\list{$\bullet$}{\itemsep0pt\parsep0pt}}{\endlist}
\newenvironment{ifhtml}{\comment}{\endcomment}
\newenvironment{rawhtml}{\comment}{\endcomment}
\def\htmlinclude#1{}
\def\Hlx@empty{}
\def\Hlx@zero{0}
\newif\if@Hlx
\def\Hlx@setclear#1{\@ifundefined{#1}{\@Hlxfalse}{%
\expandafter\ifx\csname#1\endcsname\Hlx@empty\@Hlxfalse
\else\expandafter\ifx\csname#1\endcsname\Hlx@zero\@Hlxfalse
\else\@Hlxtrue\fi\fi}}
\def\ifclear#1{\Hlx@setclear{#1}
\if@Hlx
%% arg empty -> skip
\let\endifset\endcomment\let\Hlx@comment\comment
\else
%% arg set -> ignore begin and end
\let\endifset\relax\let\Hlx@comment\relax
\fi\Hlx@comment}
\def\ifset#1{\Hlx@setclear{#1}
\if@Hlx
% arg empty -> ignore begin and end
\let\endifclear\relax\let\Hlx@comment\relax
\else
% arg set -> skip environment
\let\endifclear\endcomment\let\Hlx@comment\comment
\fi\Hlx@comment}
%%
%% Define \link and \xlink macros
%%
\newcommand{\Hlx@label}{}
\newcommand{\Ref}{\ref{\Hlx@label}}
\newcommand{\Pageref}{\pageref{\Hlx@label}}
\newcommand{\Cite}{\cite{\Hlx@label}}
\newenvironment{Label}[1]{\def\Hlx@Label@label{\label{#1}}\ignorespaces}%
{\Hlx@Label@label\ignorespaces}
\newcommand{\htmlcite}[1]{\cite{#1}}
\def\link{\@ifstar{\@star@link}{\@@link}}
\def\@@link#1{#1\@@@link}
\def\@star@link#1{\@@@link}
\def\@@@link{\@ifnextchar [{\@link}% ] balance
{\@link[]}}
\def\@link[#1]#2{\gdef\Hlx@label{#2}#1}
\def\xlink{\@ifstar{\@star@xlink}{\@@xlink}}
\def\@@xlink#1{\@@@xlink{#1}}
\def\@star@xlink#1{\@@@xlink{}}
\def\@@@xlink#1{\@ifnextchar [{\@xlink{#1}}{\@xlink{#1}[]}}
\def\@xlink#1[#2]#3{\formatxlink{#1#2}{#3}}
\newcommand{\formatxlink}[2]{#1}
%
% index from latex.tex, and changed to include optional argument
%
\def\cindex{\@bsphack\begingroup
\let\protect\@unexpandable@noexpand
\@sanitize
\@ifnextchar [{\Hlx@argwrindex}% balance ]
{\@wrindex}}
\def\Hlx@argwrindex[#1]#2{\@wrindex{#1@#2}}
%% end of hyperlatex.sty