%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% mkht.4ht                              2008-06-28-19:09 %
% Copyright (C) 1997--2008       Eitan M. Gurari         %
%                                                        %
% This work may be distributed and/or modified under the %
% conditions of the LaTeX Project Public License, either %
% version 1.3 of this license or (at your option) any    %
% later version. The latest version of this license is   %
% in                                                     %
%   http://www.latex-project.org/lppl.txt                %
% and version 1.3 or later is part of all distributions  %
% of LaTeX version 2003/12/01 or later.                  %
%                                                        %
% This work has the LPPL maintenance status "maintained".%
%                                                        %
% This Current Maintainer of this work                   %
% is Eitan M. Gurari.                                    %
%                                                        %
% If you modify this program your changing its signature %
% with a directive of the following form will be         %
% appreciated.                                           %
%            \message{signature}                         %
%                                                        %
%                             gurari@cse.ohio-state.edu  %
%                 http://www.cse.ohio-state.edu/~gurari  %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\immediate\write-1{version \ifx \JOBNAME\UnDefined 2008-06-28-19:09\else |version\fi}


\def\exit{\documentclass{article}\begin{document}\end{document}\endinput}
\bgroup
  \def\missing#1{\aftergroup\exit
     \immediate\write16{---------------------------- error
        ----------------------------
        ^^JRequires #1ProTex.sty from
        http://www.cse.ohio-state.edu/\string
       ~gurari/systems.html^^J%
       ---------------------------------------------------------------}}
  \openin15=ProTex.sty \ifeof15 \missing{}\else \closein15 \fi
  \openin15=AlProTex.sty \ifeof15 \missing{Al}\else \closein15 \fi
\egroup

\documentclass{article}

\ifx \HCode\UnDef
  \input tex4ht.sty
  \Preamble{xhtml}
  \input ProTex.sty
  \AlProTex{foo,<<<>>>,|,title,list}
  \begin{document}
  \EndPreamble
\else
  \Configure{ProTex}{foo,<<<>>>,|,title,list,[[]]}
  \begin{document}
\fi

\tableofcontents

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{LaTeX}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\<htlatex ...\><<<
|<unix line|>|<latex|>
        |<latex|>
        |<latex|>
        |<base|>tex4ht |<dir ch|>|<@|>1  |<III|>
        |<base|>t4ht |<dir ch|>|<@|>1 |<IV|>

>>>


\<latex\><<<
latex |<@|>5 |<'|>|<definitions|>|<get parameters|>|empty>>>

\<get parameters\><<<
\HCode |<'|>|<@|>2|<'|>.a.b.c.\input |<'|> |<@|>1>>>


\<definitions\><<<
\makeatletter|<get 2nd arg|>|<2e + 209|>\makeatother>>>

\<get 2nd arg\><<<
\def\HCode{\futurelet\HCode\HChar}\def\HChar{|<double quotes?|>}>>>

\<double quotes?\><<<
\ifx"\HCode|<remove qts|>\expandafter\HCode\else\expandafter\Link\fi>>>

\<remove qts\><<<
\def\HCode"##1"{\Link##1}>>>


\<2e + 209\><<<
\def\Link#1.a.b.c.{|<2e|>|<209|>}>>>

\<2e\><<<
\g@addto@macro\@documentclasshook{|<require package|>}>>>

\<209\><<<
|<save|>\def\documentstyle{|<recall|>|<options|>|<209+tex4ht|>}>>>

\<require package\><<<
\RequirePackage[#1|<II|>|<,html|>]{tex4ht}>>>


\<options\><<<
|<def tex4ht|>{#1|<II|>|<,html|>}>>>


\<209+tex4ht\><<<
|<209+tex4ht+...|>\@ifnextchar[{\HCode}{\documentstyle[tex4ht]}>>>

\<209+tex4ht+...\><<<
\def\HCode####1{\documentstyle[tex4ht,}>>>


\<save\><<<
\let\HCode\documentstyle>>>

\<recall\><<<
\let\documentstyle\HCode>>>



\<htlatex 2e...\><<<
|<unix line|>|<latex2e|>
        |<latex2e|>
        |<latex2e|>
        |<base|>tex4ht |<dir ch|>|<@|>1  |<III|>
        |<base|>t4ht |<dir ch|>|<@|>1 |<IV|>

>>>




\<latex2e\><<<
latex |<@|>5 |<'|>|<definitions2e|>|<get parameters|>|empty>>>

\<definitions2e\><<<
\makeatletter|<get 2nd arg|>|<2e only|>\makeatother>>>


\<2e only\><<<
\def\Link#1.a.b.c.{|<2e|>}>>>





\<htlatex 209...\><<<
|<unix line|>|<latex209|>
        |<latex209|>
        |<latex209|>
        |<base|>tex4ht |<dir ch|>|<@|>1  |<III|>
        |<base|>t4ht |<dir ch|>|<@|>1 |<IV|>

>>>




\<latex209\><<<
latex  |<@|>5 |<'|>|<definitions209|>|<get parameters|>|empty>>>

\<definitions209\><<<
\makeatletter|<get 2nd arg|>|<209 only|>\makeatother>>>


\<209 only\><<<
\def\Link#1.a.b.c.{|<209|>}>>>


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{TeX}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\<httex...\><<<
|<unix line|>|<tex|>
        |<tex|>
        |<tex|>
        |<base|>tex4ht |<dir ch|>|<@|>1 |<III|>
        |<base|>t4ht |<dir ch|>|<@|>1 |<IV|>

>>>

\<tex\><<<
tex  |<@|>5 |<'|>|<tex definitions|>|<get parameters|>|empty>>>


\<tex definitions\><<<
|<set hook|>|<get 2nd arg|>|empty>>>

\<set hook\><<<
\def\Link#1.a.b.c.{|<def tex4ht|>{|<options|>\input tex4ht.sty }}>>>


\<def tex4ht\><<<
\expandafter\def\csname tex4ht\endcsname>>>

%%%%%%%%%%%%%%%%%%%%
\section{TeXinfo}
%%%%%%%%%%%%%%%%%%%%

The loading of tex4ht takes place at the @rm command at the end of the
texinfo.tex file.

\<httexi...\><<<
|<unix line|>|<texinfo|>
        |<texinfo|>
        |<texinfo|>
        |<base|>tex4ht |<dir ch|>|<@|>1 |<III|>
        |<base|>t4ht |<dir ch|>|<@|>1 |<IV|>
|<Rem|>        texindex ?

>>>

\<texinfo\><<<
tex  |<@|>5 |<'|>|<texinfo definitions|>|<get parameters|>|empty>>>


\<texinfo definitions\><<<
|<tex definitions|>\let\svrm=\rm\def\rm{\svrm|<tex4ht into texinfo|>}>>>

\<tex4ht into texinfo\><<<
\ifx\c\comment\def\rm{\let\rm=\svrm|<load into texinfo|>}\expandafter\rm\fi>>>

\<load into texinfo\><<<
|<change cats|>\csname tex4ht\endcsname|<restore cats|>|empty>>>

\<change cats\><<<
\catcode`\@=12\catcode`\\=0 >>>

\<restore cats\><<<
\catcode`\@=0\catcode`\\=13 >>>
%%%%%%%%%%%%%%%
\section{ConTeXt}
%%%%%%%%%%%%%%%


\<context...\><<<
|<unix line|>|<texexec|>
        |<base|>tex4ht |<dir ch|>|<@|>1 |<III|>
        |<base|>t4ht |<dir ch|>|<@|>1 |<IV|>

>>>

\<texexec\><<<
|<ruby call|>texexec --arg="ht-1=|<@|>2" --use=tex4ht --dvi --nobackend |<@|>5 |<@|>1 >>>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{XeTeX}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\<htxetex...\><<<
|<unix line|>|<xetex|>
        |<xetex|>
        |<xetex|>
        |<base|>tex4ht -.xdv |<dir ch|>|<@|>1 |<III|>
        |<base|>t4ht -.xdv |<dir ch|>|<@|>1 |<IV|>

>>>

\<xetex\><<<
xetex -no-pdf |<@|>5 |<'|>|<tex definitions|>|<get parameters|>|empty>>>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{XeLaTeX}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\<htxelatex...\><<<
|<unix line|>|<xelatex|>
        |<xelatex|>
        |<xelatex|>
        |<base|>tex4ht -.xdv |<dir ch|>|<@|>1  |<III|>
        |<base|>t4ht -.xdv |<dir ch|>|<@|>1 |<IV|>

>>>


\<xelatex\><<<
xelatex -no-pdf |<@|>5 |<'|>|<definitions|>|<get parameters|>|empty>>>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{MeX}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\<htmex...\><<<
|<unix line|>|<mex|>
        |<mex|>
        |<mex|>
        |<base|>tex4ht |<dir ch|>|<@|>1 |<III|>
        |<base|>t4ht |<dir ch|>|<@|>1 |<IV|>

>>>

\<mex\><<<
mex |<@|>5 |<'|>|<tex definitions|>|<get parameters|>|empty>>>



%%%%%%%%%%%%%%%%%%%%%%
\section{Script Components}
%%%%%%%%%%%%%%%%%%%%%%

\def\setcats{\catcode`\\=12 \catcode`\%=12 \catcode`\~=12
 \catcode`\_=12
}

\def\Remark{\bgroup \catcode`\#=12 \setcats \Rema}  \def\Rema#1{\egroup\def\Rem{#1}}
\def\Ii{\def\II}
\def\Iii{\bgroup \setcats \Iiicont}  \def\Iiicont#1{\egroup\def\III.##1.{#1}}
\def\Iv{\bgroup \setcats \Ivcont}    \def\Ivcont#1{\egroup\def\IV.##1.{#1}}
\def\Quote{\bgroup \setcats \Qcont}  \def\Qcont#1{\egroup\def\quote{#1}}
\def\Argchar{\bgroup \setcats \Acont}\def\Acont#1{\egroup\def\argchar{#1}}
\def\Dirchar{\bgroup \setcats \Dicont}\def\Dicont#1{\egroup\def\dirchar{#1}}
\def\Rubycall{\bgroup \setcats \Dcont}\def\Dcont#1{\egroup\def\rubyCall{#1}}
\def\Ext{\bgroup \setcats \Econt}    \def\Econt#1{\egroup\def\ext{#1}%
    \def\firstln{unix}\ifx \firstln\ext
           \def\firstln##1endfirstln{##1}%
  \else    \def\firstln##1endfirstln{}\fi
}
\def\Base{\bgroup \setcats \Bcont}   \def\Bcont#1{\egroup\def\base{#1}}
\def\Script{\def\script##1##2}  % #1 -- file    #2 -- extension
\def\Options#1{\ifx \OPTIONS\UnDef \def\OPTIONS{#1}\fi}
\def\Latex#1{\ifx \latex\UnDef \def\latex{#1}\fi}

\let\Rem=\relax
\let\II=\relax
\let\III=\relax
\let\IV=\relax
\let\quote=\relax
\let\argchar=\relax
\let\dirchar=\relax
\let\rubyCall=\relax
\let\ext=\relax
\ifx \script\UnDef \let\script=\relax \fi
\let\base=\relax
\let\firstln=\relax


\<Rem\><<<
|Rem>>>

\<II\><<<
|II>>>

\<III\><<<
|III.|<@|>3.>>>

\<IV\><<<
|IV.|<@|>4.>>>

\<'\><<<
|quote>>>

\<@\><<<
|argchar>>>

\<dir ch\><<<
|dirchar>>>

\<base\><<<
|base>>>

\<ruby call\><<<
|rubyCall>>>

\<unix line\><<<
|firstln#!/bin/sh
endfirstln        >>>

\def\IfExt#1,#2//{\def\next{#1}%
   \ifx \next\ext \def\next{\csname iftrue\endcsname}%
   \else \ifx \next\empty \def\next{\csname iffalse\endcsname}%
   \else \def\next{\IfExt#2,,//}\fi\fi \next}

\begingroup
\catcode`\:=11 \catcode`\^=7    \catcode`\^^M=13%
%
\gdef\make#1{%
  \expandafter\IfExt\OPTIONS,,//%
  %
   \subsection{#1}%
   \def\temp##1{\par{\tt\string##1: \meaning##1}}%
   \temp\quote
   \temp\argchar
   \temp\dirchar
   \temp\rubyCall
   \temp\ext
   \temp\script
   \temp\base
   \temp\firstln
   \temp\latex
   \temp\Rem
   \temp\II
   \temp\III
   \temp\IV
   \def\pref{#1} %
   \<\pref latex\latex.\ext\><<<
   \<htlatex \latex...\>
   >>> %
   \OutputCodE\<\pref latex\latex.\ext\>   \script{\pref latex}{\ext}  %
\expandafter\let\csname\pref latex\latex\endcsname=\UnDef
%
\<\pref tex.\ext\><<<
\<httex...\>
>>> %
%
\OutputCodE\<\pref tex.\ext\>    \script{\pref tex}{\ext}  %
%
\<\pref texi.\ext\><<<
\<httexi...\>
>>> %
%
\OutputCodE\<\pref texi.\ext\>   \script{\pref texi}{\ext}  %
%
\<\pref context.\ext\><<<
\<context...\>
>>> %
%
\OutputCodE\<\pref context.\ext\>   \script{\pref context}{\ext}  %
%
\<\pref xetex.\ext\><<<
\<htxetex...\>
>>> %
%
\OutputCodE\<\pref xetex.\ext\>    \script{\pref xetex}{\ext}  %
%
\<\pref xelatex.\ext\><<<
\<htxelatex...\>
>>> %
%
\OutputCodE\<\pref xelatex.\ext\>    \script{\pref xelatex}{\ext}  %
%
\<\pref mex.\ext\><<<
\<htmex...\>
>>> %
%
\OutputCodE\<\pref mex.\ext\>    \script{\pref mex}{\ext}  %
%
%
  \fi
}                                      %
\endgroup

\ifx \JOBNAME\UnDefined
   \def\one{\Ii}
\def\two{\Iii}
\def\three{\Iv}
\Latex{}             % {}, {2e}, {209}
\def\temp{unix}\ifx\script\temp
   \Options{unix}   % {unix,bat}, {unix}, {bat}
   %%%%%%%%%%
\Ext{unix}
%%%%%%%%%%
\Base{}
\Quote{'}
\Argchar{$}
\Dirchar{-f/}
\Rubycall{}
\Remark{#}

\else
   \def\temp{bat}\ifx\script\temp
      \Options{bat}
      %%%%%%%%%%%%%%%%%%
\Options{bat}
%%%%%%%%%%%%%%%%%%
%%%%%%%%%
\Ext{bat}
%%%%%%%%%
\Base{}
\Quote{}
\Argchar{%}
\Dirchar{}
\Rubycall{call }
\Remark{Rem }

   \else
      \bgroup
         \def\1{\space\space\space}
         \def\2{\space\space\space\space\space\space}
         \catcode`\%=12
         \catcode`\#=12
         \catcode`\~=12
         \catcode`\@=0
         \catcode`\\=12
      @immediate@write16{|-------------------------------------------------------------}
      @immediate@write16{|@2@1 A sample of a scripts generator file }
      @immediate@write16{|}
      @immediate@write16{|@1    Creates a foolatex script for commands}
      @immediate@write16{|}
      @immediate@write16{|@2        foolatex file}
      @immediate@write16{|}
      @immediate@write16{|@1    similar to htlatex for commands}
      @immediate@write16{|}
      @immediate@write16{|@2        htlatex file "html,...1..." " ...2..." "...3..."}
      @immediate@write16{|}
      @immediate@write16{|@1    with the arguments ...1..., ...2..., and ...3... }
      @immediate@write16{|@1    embedded in the new script. General usage}
      @immediate@write16{|}
      @immediate@write16{|@2        foolatex file "..." "..." "..."}
      @immediate@write16{|}
      @immediate@write16{|----------------- sample.tex --------------------------------}
      @immediate@write16{|% latex sample}
      @immediate@write16{|}
      @immediate@write16{| \def\script{bat} }
      @immediate@write16{| % \def\script{unix} }
      @immediate@write16{|}
      @immediate@write16{| \input mkht.4ht }
      @immediate@write16{|}
      @immediate@write16{| \one{,html,...1...}}
      @immediate@write16{| \two{-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1 ...2...}    % bat }
      @immediate@write16{| % \two{-i~/tex4ht/texmf/tex4ht/ht-fonts/#1 ...2...}   % unix }
      @immediate@write16{| \three{#1 ...3...}}
      @immediate@write16{| \make{foo}}
      @immediate@write16{|}
      @immediate@write16{| \end{document} }
      @immediate@write16{-------------------------------------------------------------}
      @egroup
      \def\next{\csname fi\endcsname
                \csname fi\endcsname
                \csname fi\endcsname\end{document}}
\fi \fi

   \expandafter\endinput
\fi

\input \JOBNAME

\end{document}
\endinput

