%% %% LaTeX style to handle hyperlatex files, version 2.8 %% %% This code has GNU copyleft, 1994-2000 Otfried Cheong %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{hyperlatex} [2004/11/12 v2.8 LaTeX2e package for Hyperlatex mode] \typeout{Package: 'hyperlatex' v2.7 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{.} %-- Never allow \Hlx@directory to be empty. See \endimage. \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{\xml}{\Hlx@pass\@html} \def\@html#1{\endgroup} \let\html\xml \newcommand{\xmlsym}[1]{} \newcommand{\htmlrule}{} \newcommand{\htmlmenu}[1]{} \newcommand{\htmlautomenu}[1]{} \newcounter{htmlautomenu} \newcommand{\htmlprintindex}{} \newcommand{\htmlfootnotes}{} \newcommand{\htmlmathitalic}[1]{} \newcommand{\htmlpanelfield}[2]{} \newcommand{\htmlcharset}[1]{} \newcommand{\htmlcss}[1]{} \newcommand{\htmlimg}[2]{} \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\xmlattributes{\@ifstar{\@xmlattributes}{\@xmlattributes}} \def\@xmlattributes{\Hlx@pass\@@xmlattributes} \def\@@xmlattributes#1#2{\endgroup} \let\htmlattributes\xmlattributes %% %% Image environment, %% will generate bitmaps when `\makeimages' is defined %% `\imagetype' will determine the type of images \def\imagetype#1{\def\@imagetype{#1}} \@ifundefined{@imagetype}{\def\@imagetype{png}}{} \newif\if@makeimages \@ifundefined{makeimages}{\@makeimagesfalse}{\@makeimagestrue} \def\image{\@ifnextchar[{\@image}{\@image[b]}} \def\@image[#1]{\@ifnextchar[{\@@image}{\@@image[100]}} \def\@@image[#1]{\gdef\image@resolution{#1}\@ifnextchar[{\@@@image}{\@@@image[300]}} \def\@@@image[#1]#2{\gdef\image@dpi{#1}\gdef\image@name{#2}\@@@@image} \if@makeimages \typeout{******************************************} \typeout{* Making bitmaps from Hyperlatex source! *} \typeout{******************************************} \newwrite\@makeimagecmds \immediate\openout\@makeimagecmds=\jobname.makeimage \newbox\@imagebox \newcount\@imagecount\@imagecount=10000 \def\@@@@image{\setbox\@imagebox=\vbox\bgroup\tex} \def\endimage{\egroup {\global\advance\@imagecount by 1\count0=\@imagecount \immediate\write\@makeimagecmds{dvips\space -f\space -p\space \the\@imagecount\space -n\space 1\space -D\space \image@dpi\space -T\the\wd\@imagebox,\the\ht\@imagebox\space-O-72bp,-72bp\space \jobname.dvi\space>\space\image@name.ps^^J% ps2image\space -res\space \image@resolution\space \image@name.ps% \space \Hlx@directory/\image@name.\@imagetype^^J} \shipout\copy\@imagebox}\unvbox\@imagebox} \else \def\@@@@image{\tex} \def\endimage{} \fi %% For compatibility \def\gif{\imagetype{gif}\image} \def\endgif{\endimage} %% %% 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 %% \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\z@ \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{rawxml}{\comment}{\endcomment} \def\xmlinclude#1{} \newcommand{\Hlx@empty}{} \newcommand{\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 true -> skip \let\endifset\endcomment\let\Hlx@comment\comment \else %% arg false -> ignore begin and end \let\endifset\relax\let\Hlx@comment\relax \fi\Hlx@comment} \def\ifset#1{\Hlx@setclear{#1} \if@Hlx % arg true -> ignore begin and end \let\endifclear\relax\let\Hlx@comment\relax \else % arg false -> 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