% (1)  latex tex4ht-mkht      
% (2)  perl -c mk4ht.perl                (checking correctness)
% (3)  latex mkht-scripts.4ht
%
% or
%
% (1) xhlatex tex4ht-mkht "html,3" 
% (2) perl -c mk4ht.perl
% (3) xhlatex mkht-scripts.4ht "html,3"

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% tex4ht-mkht.tex                                        %
% Copyright (C) 1997--           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.                                    %
%                                                        %
%                             gurari@cse.ohio-state.edu  %
%                 http://www.cse.ohio-state.edu/~gurari  %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\documentclass{article}
   \usepackage{url}
\def\CodeDel{{<<<-}{->>>}}
\ifx \HCode\UnDef
   \input tex4ht.sty
   \Preamble{xhtml}
   \input ProTex.sty     
   \AlProTex{4ht,<<<>>>,?,title,list}
\else
   \Configure{ProTex}{4ht,<<<>>>,?,title,list,[[]]}
\fi

\begin{document}

%%%%%%%%%%%%%%%%%%%%% definitions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\newcount\tmpcnt  \tmpcnt\time  \divide\tmpcnt  60
\edef\temp{\the\tmpcnt}
\multiply\tmpcnt  -60 \advance\tmpcnt  \time

\edef\version{\the\year-\ifnum \month<10 0\fi
  \the\month-\ifnum \day<10 0\fi\the\day
   -\ifnum \temp<10 0\fi \temp
   :\ifnum \tmpcnt<10 0\fi\the\tmpcnt}

\def\CopyYear.#1.{%
   \ifnum #1=\year #1\space\space\space\space\space\space
    \else          #1--\the\year\fi
}

\def\mkhtNote{

}
\newtoks\toks
\expandafter\toks\expandafter{\mkhtNote}

%%%%%%%%%%%%%%%%%%%%% end definitions %%%%%%%%%%%%%%%%%%%%%%%%%



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



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{\LaTeX}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



\<def script\><<<-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\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|>}>>>

->>>


\<add script\><<<-
\OutputCodE\<\pref latex\latex.\ext\>   \script{\pref latex}{\ext}  %
\expandafter\let\csname\pref latex\latex\endcsname=\UnDef
%
->>>


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{\TeX}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



\<def script\><<<-

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\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>>>

->>>


\<add script\><<<-
\<\pref tex.\ext\><<<
\<httex...\>
>>> %
%
\OutputCodE\<\pref tex.\ext\>    \script{\pref tex}{\ext}  %
%
->>>

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Texinfo}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\<def script\><<<-
%%%%%%%%%%%%%%%%%%%%
\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 >>>
->>>


\<add script\><<<-
\<\pref texi.\ext\><<<
\<httexi...\>
>>> %
%
\OutputCodE\<\pref texi.\ext\>   \script{\pref texi}{\ext}  %
%
->>>


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Context}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\<def script\><<<-
%%%%%%%%%%%%%%%
\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 >>>
->>>


``In the latest ConTeXt, texexec for Windows is realized 
as a batch file from which texmfstart.exe ---> ruby script 
is called.'' 

\immediate\write16{...............................fix......}
\immediate\write16{%
perl /home/4/gurari/main.dir/try.dir/context.dir/context/perltk/texexec.pl%
}
\immediate\write16{........................................}


\<add script\><<<-
\<\pref context.\ext\><<<
\<context...\>
>>> %
%
\OutputCodE\<\pref context.\ext\>   \script{\pref context}{\ext}  %
%
->>>




%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{XeTeX}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\<def script\><<<-

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\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>>>
->>>


\<add script\><<<-
\<\pref xetex.\ext\><<<
\<htxetex...\>
>>> %
%
\OutputCodE\<\pref xetex.\ext\>    \script{\pref xetex}{\ext}  %
%
->>>



\<def script\><<<-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\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>>>
->>>

\<add script\><<<-
\<\pref xelatex.\ext\><<<
\<htxelatex...\>
>>> %
%
\OutputCodE\<\pref xelatex.\ext\>    \script{\pref xelatex}{\ext}  %
%
->>>


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Mex}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


\<def script\><<<-

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\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>>>

->>>


\<add script\><<<-
\<\pref mex.\ext\><<<
\<htmex...\>
>>> %
%
\OutputCodE\<\pref mex.\ext\>    \script{\pref mex}{\ext}  %
%
->>>

% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \subsection{Mex}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 
% 
% \<def script\><<<-
% 
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \subsection{MeX il2-pl}
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 
% \<htmex-pl...\><<<
%         |<unix line|>|<mex-pl|>
%         |<mex-pl|>
%         |<mex-pl|>
%         |<base|>tex4ht |<dir ch|>|<@|>1 |<III|>
%         |<base|>t4ht |<dir ch|>|<@|>1 |<IV|>
% 
% >>>
% 
% \<mex-pl\><<<
% mex-pl -translate-file=il2-pl |<'|>|<tex definitions|>|<get parameters|>|empty>>>
% 
% ->>>
% 
% 
% \<add script\><<<-
% \<\pref mex-pl.\ext\><<<
% \<htmex-pl...\>
% >>> %
% %
% \OutputCodE\<\pref mex-pl.\ext\>    \script{\pref mex-pl}{\ext}  %
% %
% ->>>



%%%%%%%%%%%%%%%%%%
\section{Markup Dialects}
%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%
\subsection{HTML: ht}
%%%%%%%%%%%%%


WARNING: Do't include `-cvalidatehtml' in the htlatex script as it will
be required by every script called with mk4ht.  For instance, `mk4ht
dblatex file'.

\<unix scripts\><<<-
\Ii{,html}
\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1}
\Iv{#1   ## -d~/WWW/temp/ -m644  }

\make{ht}
->>>

\<ms scripts\><<<-
\Ii{,html}
\Iii{-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1 
     -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env}
\Iv{#1 -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env  }

\make{ht}
->>>

The first line is for `ht ...  ...' scripts.

\<perl options\><<<-
 "",     "ht",        "",         "", "", "-cvalidatehtml",
 "ht",   "htlatex",   "latex",    "", "", "-cvalidatehtml",
 "ht",   "httex",     "tex",      "", "", "-cvalidatehtml",
 "ht",   "httexi",    "texi",     "", "", "-cvalidatehtml",
 "ht",   "htcontext", "context",  "", "", "-cvalidatehtml",
 "ht",   "htxetex",   "xetex",    "", "", "-cvalidatehtml",
 "ht",   "htxelatex", "xelatex",  "", "", "-cvalidatehtml",
->>>


\<unix scripts\><<<-
\<ht.unix\><<<
|<unix line|>$1 $2 
        $1 $2 
        $1 $2 
        tex4ht $2 
        t4ht $2  $3 
>>>
\OutputCodE\<ht.unix\>     \script{ht}{unix}  %
->>>


\<ms scripts\><<<-
\<ht.bat\><<<
        %1 %2  
        %1 %2  
        %1 %2  
        tex4ht %2  
        t4ht %2  %3  
>>>
\OutputCodE\<ht.bat\>    \script{ht}{bat}  %
->>>


%%%%%%%%%%%%%
\subsection{XHTML: xh}
%%%%%%%%%%%%%

\<unix scripts\><<<-
\Ii{,xhtml}
\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1}
\Iv{#1  -cvalidate   ## -d~/WWW/temp/ -m644 }
\make{xh}
->>>

\<ms scripts\><<<-
\Ii{,xhtml}
\Iii{-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1 
     -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env}
\Iv{#1 -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -cvalidate }
\make{xh}
->>>



\<perl options\><<<-
 "xh", "xhlatex",  "latex",   "xhtml", "", "-cvalidate",
 "xh", "xhtex",    "tex",     "xhtml", "", "-cvalidate",
 "xh", "xhtexi",   "texi",    "xhtml", "", "-cvalidate",
 "xh", "xhcontext","context", "xhtml", "", "-cvalidat",
 "xh", "xhxelatex", "xelatex", "xhtml", "", "-cvalidate",
 "xh", "xhxetex",  "xetex",   "xhtml", "", "-cvalidate",
->>>



%%%%%%%%%%%%%
\subsection{Unicode XHTML: uxh}
%%%%%%%%%%%%%

\<unix scripts\><<<-
\Ii{,xhtml,uni-html4}
\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cunihtf}
\Iv{#1 -cvalidate  ## -d~/WWW/temp/ -m644 }
\make{uxh}
->>>

\<ms scripts\><<<-
\Ii{,xhtml,uni-html4}
\Iii{-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1 
     -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env
      -cunihtf}
\Iv{#1 -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -cvalidate }
\make{uxh}
->>>

\<perl options\><<<-
 "uxh", "uxhlatex",  "latex",   "xhtml,uni-html4", " -cunihtf", "-cvalidate",
 "uxh", "uxhtex",    "tex",     "xhtml,uni-html4", " -cunihtf", "-cvalidate",
 "uxh", "uxhtexi",   "texi",    "xhtml,uni-html4", " -cunihtf", "-cvalidate",
 "uxh", "uxhcontext","context",  "xhtml,uni-html4", " -cunihtf", "-cvalidate",
 "uxh", "uxhxelatex",  "xelatex",   "xhtml,uni-html4", " -cunihtf", "-cvalidate",
 "uxh", "uxhxetex",    "xetex",     "xhtml,uni-html4", " -cunihtf", "-cvalidate",
->>>

%%%%%%%%%%%%%
\subsection{XHTML+MathML: xhm}
%%%%%%%%%%%%%

\<unix scripts\><<<-
\Ii{,xhtml,mathml}
\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cunihtf}
\Iv{#1 -cvalidate   ## -d~/WWW/temp/ -m644 }
\make{xhm}
->>>

\<ms scripts\><<<-
\Ii{,xhtml,mathml}
\Iii{-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1
     -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -cunihtf}
\Iv{#1 -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -cvalidate }
\make{xhm}
->>>


\<perl options\><<<-
 "xhm", "xhmlatex", "latex",  "xhtml,mathml", " -cunihtf", "-cvalidate",
 "xhm", "xhmtex",   "tex",    "xhtml,mathml", " -cunihtf", "-cvalidate",
 "xhm", "xhmtexi",  "texi",   "xhtml,mathml", " -cunihtf", "-cvalidate",
 "xhm", "xhmcontext","context", "xhtml,mathml", " -cunihtf", "-cvalidate",
 "xhm", "xhmxelatex", "xelatex",  "xhtml,mathml", " -cunihtf", "-cvalidate",
 "xhm", "xhmxetex",   "xetex",    "xhtml,mathml", " -cunihtf", "-cvalidate",
->>>


%%%%%%%%%%%%%
\subsection{Mozilla XHTML+MathML: mz}
%%%%%%%%%%%%%

\<unix scripts\><<<-
\Ii{,xhtml,mozilla}
\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cmozhtf}
\Iv{#1 -cvalidate   ## -d~/WWW/temp/ -m644 }
\make{mz}
->>>

\<ms scripts\><<<-
\Ii{,xhtml,mozilla}
\Iii{-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1
     -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env  -cmozhtf}
\Iv{#1 -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -cvalidate }
\make{mz}
->>>


\<perl options\><<<-
 "mz", "mzlatex",   "latex",   "xhtml,mozilla", " -cmozhtf",  "-cvalidate",
 "mz", "mztex",     "tex",     "xhtml,mozilla", " -cmozhtf",  "-cvalidate",
 "mz", "mztexi",    "texi",    "xhtml,mozilla", " -cmozhtf",  "-cvalidate",
 "mz", "mzcontext", "context", "xhtml,mozilla", " -cmozhtf",  "-cvalidate",
 "mz", "mzxelatex", "xelatex",   "xhtml,mozilla", " -cmozhtf",  "-cvalidate",
 "mz", "mzxetex",   "xetex",     "xhtml,mozilla", " -cmozhtf",  "-cvalidate",
->>>


%%%%%%%%%%%%%
\subsection{OpenOffice: oo}
%%%%%%%%%%%%%

\<unix scripts\><<<-
\Ii{,xhtml,ooffice}
\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cmozhtf}
\Iv{#1 -cooxtpipes -coo }
\make{oo}
->>>

\<ms scripts\><<<-
\Ii{,xhtml,ooffice}
\Iii{-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1
     -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -cmozhtf}
\Iv{#1 -cooxtpipes -coo -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -cvalidate }
\make{oo}
->>>


\<perl options\><<<-
 "oo", "oolatex",   "latex",   "xhtml,ooffice", "ooffice/\! -cmozhtf",  "-cooxtpipes -coo",
 "oo", "ootex",     "tex",     "xhtml,ooffice", "ooffice/\! -cmozhtf",  "-cooxtpipes -coo",
 "oo", "ootexi",    "texi",    "xhtml,ooffice", "ooffice/\! -cmozhtf",  "-cooxtpipes -coo",
 "oo", "oocontext", "context", "xhtml,ooffice", "ooffice/\! -cmozhtf",  "-cooxtpipes -coo",
 "oo", "ooxelatex",   "xelatex",   "xhtml,ooffice", "ooffice/\! -cmozhtf",  "-cooxtpipes -coo",
 "oo", "ooxetex",     "xetex",     "xhtml,ooffice", "ooffice/\! -cmozhtf",  "-cooxtpipes -coo",
->>>





%%%%%%%%%%%%%
\subsection{EmacSpeak: es}
%%%%%%%%%%%%%

\<unix scripts\><<<-
\Ii{,xhtml,emspk}
\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cemspkhtf -s4es}
\Iv{#1 -cemspk   ## -d~/WWW/temp/ -m644 }
\make{es}
->>>

\<ms scripts\><<<-
\Ii{,xhtml,emspk}
\Iii{-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1
     -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env  -cemspkhtf -s4es}
\Iv{#1 -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -cemspk }
\make{es}
->>>


\<perl options\><<<-
 "es", "eslatex",   "latex",   "xhtml,emspk", " -cemspkhtf -s4es",  "-cemspk",
 "es", "estex",     "tex",     "xhtml,emspk", " -cemspkhtf -s4es",  "-cemspk",
 "es", "estexi",    "texi",    "xhtml,emspk", " -cemspkhtf -s4es",  "-cemspk",
 "es", "escontext", "context", "xhtml,emspk", " -cemspkhtf -s4es",  "-cemspk",
 "es", "esxelatex",   "xelatex",   "xhtml,emspk", " -cemspkhtf -s4es",  "-cemspk",
 "es", "esxetex",     "xetex",     "xhtml,emspk", " -cemspkhtf -s4es",  "-cemspk",
->>>





%%%%%%%%%%%%%
\subsection{JSML: js}
%%%%%%%%%%%%%

\<unix scripts\><<<-
\Ii{,xhtml,jsml}
\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cjsmlhtf }
\Iv{#1 -cjsml   ## -d~/WWW/temp/ -m644 }
\make{js}
->>>

\<ms scripts\><<<-
\Ii{,xhtml,jsml}
\Iii{-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1
     -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env  -cjsmlhtf }
\Iv{#1 -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -cjsml }
\make{js}
->>>


\<perl options\><<<-
 "js", "jslatex",   "latex",   "xhtml,jsml", " -cjsmlhtf",  "-cjsml",
 "js", "jstex",     "tex",     "xhtml,jsml", " -cjsmlhtf",  "-cjsml",
 "js", "jstexi",    "texi",    "xhtml,jsml", " -cjsmlhtf",  "-cjsml",
 "js", "jscontext", "context", "xhtml,jsml", " -cjsmlhtf",  "-cjsml",
 "js", "jsxelatex",   "xelatex",   "xhtml,jsml", " -cjsmlhtf",  "-cjsml",
 "js", "jsxetex",     "xetex",     "xhtml,jsml", " -cjsmlhtf",  "-cjsml",
->>>





%%%%%%%%%%%%%
\subsection{jsMath: jm}
%%%%%%%%%%%%%

\<unix scripts\><<<-
\Ii{,xhtml,jsmath}
\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cmozhtf }
\Iv{#1 ## -d~/WWW/temp/ -m644 }
\make{jm}
->>>

\<ms scripts\><<<-
\Ii{,xhtml,jsmath}
\Iii{-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1
     -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env  -cmozhtf }
\Iv{#1 -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env  }
\make{jm}
->>>


\<perl options\><<<-
 "jm", "jmlatex",   "latex",   "xhtml,jsmath", " -cmozhtf", "",
 "jm", "jmtex",     "tex",     "xhtml,jsmath", " -cmozhtf", "",
 "jm", "jmtexi",    "texi",    "xhtml,jsmath", " -cmozhtf", "",
 "jm", "jmcontext", "context", "xhtml,jsmath", " -cmozhtf", "",
 "jm", "jmxelatex",   "xelatex",   "xhtml,jsmath", " -cmozhtf", "",
 "jm", "jmxetex",     "xetex",     "xhtml,jsmath", " -cmozhtf", "",
->>>








%%%%%%%%%%%%%
\subsection{TEI: tei, teim}
%%%%%%%%%%%%%

\<unix scripts\><<<-
\Ii{,xhtml,tei}
\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cunihtf}
\Iv{#1 -cvalidate   ## -d~/WWW/temp/ -m644 }
\make{tei}

\Ii{,xhtml,tei-mml}
\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cunihtf}
\Iv{#1 -cvalidate   ## -d~/WWW/temp/ -m644 }
\make{teim}
->>>

\<ms scripts\><<<-
\Ii{,xhtml,tei}
\Iii{-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1
     -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -cunihtf}
\Iv{#1 -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -cvalidate }
\make{tei}

\Ii{,xhtml,tei-mml}
\Iii{-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1 
     -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -cunihtf}
\Iv{#1 -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -cvalidate }
\make{teim}
->>>


\<perl options\><<<-
 "tei",  "teilatex",  "latex",   "xhtml,tei",    " -cunihtf",  "-cvalidate",
 "tei",  "teitex",    "tex",     "xhtml,tei",    " -cunihtf",  "-cvalidate",
 "tei",  "teitexi",   "texi",    "xhtml,tei",    " -cunihtf",  "-cvalidate",
 "tei",  "teicontext","context", "xhtml,tei",    " -cunihtf",  "-cvalidate",
 "teim", "teimlatex", "latex",   "xhtml,tei-mml"," -cunihtf",  "-cvalidate",
 "teim", "teimtex",   "tex",     "xhtml,tei-mml"," -cunihtf",  "-cvalidate",
 "teim", "teimtexi",  "texi",    "xhtml,tei-mml"," -cunihtf",  "-cvalidate",
 "teim", "teimcontext","context","xhtml,tei-mml"," -cunihtf",  "-cvalidate",
 "tei",  "teixelatex",  "xelatex",   "xhtml,tei",    " -cunihtf",  "-cvalidate",
 "tei",  "teixetex",    "xetex",     "xhtml,tei",    " -cunihtf",  "-cvalidate",
->>>


%%%%%%%%%%%%%
\subsection{DocBook: db, dbm}
%%%%%%%%%%%%%

\<unix scripts\><<<-
\Ii{,xhtml,docbook}
\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cunihtf}
\Iv{#1    -cvalidate -cdocbk  ## -d~/WWW/temp/ -m644  }
\make{db}

\Ii{,xhtml,docbook-mml}
\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cunihtf}
\Iv{#1  -cdocbk  ## -d~/WWW/temp/ -m644 }
\make{dbm}
->>>

\<ms scripts\><<<-
\Ii{,xhtml,docbook}
\Iii{-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1
     -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -cunihtf}
\Iv{#1 -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -cvalidate -cdocbk }
\make{db}

\Ii{,xhtml,docbook-mml}
\Iii{-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1
     -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -cunihtf}
\Iv{#1 -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -cvalidate -cdocbk }
\make{dbm}
->>>



\<perl options\><<<-
 "db",  "dblatex",   "latex",   "xhtml,docbook",     " -cunihtf",  "-cvalidate -cdocbk",
 "db",  "dbtex",     "tex",     "xhtml,docbook",     " -cunihtf",  "-cvalidate -cdocbk",
 "db",  "dbtexi",    "texi",    "xhtml,docbook",     " -cunihtf",  "-cvalidate -cdocbk",
 "db",  "dbcontext", "context", "xhtml,docbook",     " -cunihtf",  "-cvalidate -cdocbk",
 "dbm", "dbmlatex",  "latex",   "xhtml,docbook-mml", " -cunihtf",  "-cdocbk",
 "dbm", "dbmtex",    "tex",     "xhtml,docbook-mml", " -cunihtf",  "-cdocbk",
 "dbm", "dbmtexi",   "texi",    "xhtml,docbook-mml", " -cunihtf",  "-cdocbk",
 "dbm", "dbmcontext","context", "xhtml,docbook-mml", " -cunihtf",  "-cdocbk",
 "db",  "dbxelatex",   "xelatex",   "xhtml,docbook",     " -cunihtf",  "-cvalidate -cdocbk",
 "db",  "dbxetex",     "xetex",     "xhtml,docbook",     " -cunihtf",  "-cvalidate -cdocbk",
->>>



%%%%%%%%%%%%%
\subsection{MS Word HTML: w}
%%%%%%%%%%%%%


\<unix scripts\><<<-
\Ii{,xhtml,word}
\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1  -csymhtf}
\Iv{#1    -cvalidate ## -d~/WWW/temp/ -m644 }
\make{w}
->>>

\<ms scripts\><<<-
\Ii{,xhtml,word}
\Iii{-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1 
     -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env  -csymhtf}
\Iv{#1 -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -cvalidate }
\make{w}
->>>




\<perl options\><<<-
 "w", "wlatex",   "latex",   "xhtml,word", " -csymhtf", "",
 "w", "wtex",     "tex",     "xhtml,word", " -csymhtf", "",
 "w", "wtexi",    "texi",    "xhtml,word", " -csymhtf", "",
 "w", "wcontext", "context", "xhtml,word", " -csymhtf", "",
 "w", "wxelatex",   "xelatex",   "xhtml,word", " -csymhtf", "",
 "w", "wxetex",     "xetex",     "xhtml,word", " -csymhtf", "",
->>>




%%%%%%%%%%%%%
\subsection{JavaHelp: jh}
%%%%%%%%%%%%%

\<unix scripts\><<<-
\Ii{,html,javahelp,xml,3.2,unicode}
\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cmozhtf -u10}
\Iv{#1 -d$1-doc/   -cjavahelp -cvalidatehtml  -m644}
\make{jh}
->>>

\<ms scripts\><<<-
\Ii{,html,javahelp,xml,3.2,unicode}
\Iii{-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1 
     -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env
      -cmozhtf -u10}
\Iv{#1 -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -d%1-doc\ -cjavahelp }
\make{jh}
->>>


\<perl options\><<<-
 "jh", "jhlatex",  "latex",  "html,javahelp,xml,3.2,unicode", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp -cvalidatehtml",
 "jh", "jhtex",    "tex",    "html,javahelp,xml,3.2,unicode", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp -cvalidatehtml",
 "jh", "jhtexi",   "texi",   "html,javahelp,xml,3.2,unicode", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp -cvalidatehtml",
 "jh", "jhcontext","context", "html,javahelp,xml,3.2,unicode", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp -cvalidatehtml",
 "jh", "jhxelatex",  "xelatex",  "html,javahelp,xml,3.2,unicode", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp -cvalidatehtml",
 "jh", "jhxetex",    "xetex",    "html,javahelp,xml,3.2,unicode", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp -cvalidatehtml",
->>>


\<unix scripts\><<<-
\Ii{,html,javahelp,xml,3.2,unicode,jh1.0}
\Iii{-i~/tex4ht.dir/texmf/tex4ht/ht-fonts/#1 -cmozhtf -u10}
\Iv{#1 -d$texFile-doc/  -cjavahelp1 -m644  }
\make{jh1}
->>>

\<ms scripts\><<<-
\Ii{,html,javahelp,xml,3.2,unicode,jh1.0}
\Iii{-ic:\tex4ht\texmf\tex4ht\ht-fonts\#1 
     -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env
      -cmozhtf -u10}
\Iv{#1 -ec:\tex4ht\texmf\tex4ht\base\win32\tex4ht.env -d%1-doc\ -cjavahelp1 }
\make{jh1}
->>>


\<perl options\><<<-
 "jh1", "jh1latex",  "latex",  "html,javahelp,xml,3.2,unicode,jh1.0", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp",
 "jh1", "jh1tex",    "tex",    "html,javahelp,xml,3.2,unicode,jh1.0", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp",
 "jh1", "jh1texi",   "texi",   "html,javahelp,xml,3.2,unicode,jh1.0", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp",
 "jh1", "jh1context","context", "html,javahelp,xml,3.2,unicode,jh1.0", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp",
 "jh1", "jh1xelatex",  "xelatex",  "html,javahelp,xml,3.2,unicode,jh1.0", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp",
 "jh1", "jh1xetex",    "xetex",    "html,javahelp,xml,3.2,unicode,jh1.0", " -cmozhtf -u10", " -d$texFile-doc/ -cjavahelp",
->>>



The xml declaration at
\url{http://java.sun.com/products/javahelp/toc_1_0.dtd}
doesn't start at row/col=1 make it impossible to validate
against that file.


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{mkht.4ht}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



\<mkht\><<<-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% mkht.4ht                              ?version %
% Copyright (C) ?CopyYear.1997.       Eitan M. Gurari         %
?<TeX4ht copyright?>

\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

?<def script?>

%%%%%%%%%%%%%%%%%%%%%%
\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}%
  ?<unix shebang line?>}
\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...\>
   >>> %
   ?<add script?>%
  \fi
}                                      %
\endgroup

\ifx \JOBNAME\UnDefined
   ?<user's made scripts?>
   \expandafter\endinput
\fi

\input \JOBNAME

\end{document}
\endinput
->>>

\<user's made scripts\><<<-
\def\one{\Ii}
\def\two{\Iii}
\def\three{\Iv}
\Latex{}             % {}, {2e}, {209}
\def\temp{unix}\ifx\script\temp
   \Options{unix}   % {unix,bat}, {unix}, {bat}
   ?<unix setup?>
\else
   \def\temp{bat}\ifx\script\temp
      \Options{bat}
      ?<ms setup?>
   \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
->>>

The script should have an explicit shebang (\#!/bin/sh) line for the
systems where csh-like shells are the foundation. If there is no
shebang line, the defaul shell (which can be anything) is used.


\<unix shebang line\><<<-
  \def\firstln{unix}\ifx \firstln\ext
           \def\firstln##1endfirstln{##1}%
  \else    \def\firstln##1endfirstln{}\fi
->>>





%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{mkht-scripts.4ht}
%%%%%%%%%%%%%%%%%%%%%%%%%%%




\<mkht-scripts\><<<-
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% mkht-scripts.4ht                      ?version %
% Copyright (C) ?CopyYear.2000.       Eitan M. Gurari         %
?<TeX4ht copyright?>

\ifx \JOBNAME\UnDef
   \def\JOBNAME{mkht-scripts.4ht}
   \def\next{\input mkht.4ht  \endinput}
   \expandafter\next
\fi

\Options{unix,bat}   % {unix,bat}, {unix}, {bat}
\Latex{}             % {}, {2e}, {209}

%%%%%%%%%%%%%%%%%%
\section{Unix Scripts}
%%%%%%%%%%%%%%%%%%
?<unix setup?>
\ifOption{Needs}{%
\Script{%                        #1 -- file    #2 -- extension
   \Needs{"sed -e 's/\#\# -d/ -d/g' < #1.#2 >  /home/4/gurari/tex4ht.dir/bin/solaris/#1"}%
   \Needs{"chmod 700 /home/4/gurari/tex4ht.dir/bin/solaris/#1"}%
   \Needs{"mkdir  mn.dir/ht-unix"}%
   \Needs{"cp #1.#2  mn.dir/ht-unix/#1"}%
}}{}
\Script{%                        #1 -- file    #2 -- extension
   \Needs{"mkdir  /home/4/gurari/tex4ht.dir/bin/ht"}%
   \Needs{"mkdir  /home/4/gurari/tex4ht.dir/bin/ht/unix"}%
   \Needs{"mv #1.#2  /home/4/gurari/tex4ht.dir/bin/ht/unix/#1"}%
   \Needs{"chmod 744 /home/4/gurari/tex4ht.dir/bin/ht/unix/#1"}%
}

?<unix scripts?>

%%%%%%%%%%%%%%%%%%
\section{MS Window Scripts}
%%%%%%%%%%%%%%%%%%
?<ms setup?>
\ifOption{Needs}{\Script{%
   \Needs{"mkdir  mn.dir/ht-win32"}%
   \Needs{"cp #1.#2  mn.dir/ht-win32/."}%
}}{}
\Script{%                        #1 -- file    #2 -- extension
   \Needs{"mkdir  /home/4/gurari/tex4ht.dir/bin/ht/win32"}%
   \Needs{"mv #1.#2  /home/4/gurari/tex4ht.dir/bin/ht/win32/#1.#2"}%
   \Needs{"chmod 744 /home/4/gurari/tex4ht.dir/bin/ht/win32/#1.#2"}%
}

?<ms scripts?>
?<mkht note?>

\end{document}
->>>

\<unix setup\><<<-
%%%%%%%%%%
\Ext{unix}
%%%%%%%%%%
\Base{}
\Quote{'}
\Argchar{$}
\Dirchar{-f/}
\Rubycall{}
\Remark{#}
->>>

\<ms setup\><<<-
%%%%%%%%%%%%%%%%%%
\Options{bat}
%%%%%%%%%%%%%%%%%%
%%%%%%%%%
\Ext{bat}
%%%%%%%%%
\Base{}
\Quote{}
\Argchar{%}
\Dirchar{}
\Rubycall{call }
\Remark{Rem }
->>>



The htlatex-oriented scripts have the following outline.

\begin{verbatim}
        latex  $5 $1
        latex  $5 $1
        latex  $5 $1   
        tex4ht -f/$1  -i~/tex4ht.dir/texmf/tex4ht/ht-fonts/$3  
        t4ht -f/$1 $4 
\end{verbatim}

The latex command may be introduced with a filename residing out of
the work directory. However, it produces the dvi code in the work
directory. Consequently, when activated by htlatex-oriented scripts,
the tex4ht.c and t4ht.c utilities need to look for the dvi code in the
work directory.  The -f prefix asks these utilities to ignore the
paths possibly appearing in \verb!$1!. A path is recognized by
determining whether the character immediately after \verb'-f' is a
directory indicator character `\verb+\+' or `\verb+/+'.


 



%%%%%%%%%%%%%%%%%%
\section{Perl Script}
%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%
\subsection{Core}
%%%%%%%%%%%%%



\<mk4ht.perl\><<<-
#!/usr/bin/env perl
?<perl copyright notice?>
use strict;
$^W=1; # turn warning on
my $texFile = ''; 
if( @ARGV  ){ 
  my(@array) = split('\.',@ARGV[1]); 
  $texFile = @array[0]; 
} 
?<available options?>
?<help info?>
print "mk4ht (?version)\n";
if(  !@ARGV  ){
  print "improper command\n";
  showInstrucions(); exit(1);
}
my @command=("","","","","");
my $i=0;
my $j=0;
my $param;
?<mk4ht.cfg vars?>
foreach $param (@ARGV) {
  if( $i == 0 ){
    ?<load mk4ht.cfg?>
    for( $j=1; $j<$#options; $j+=6 ){
      if( $param eq $options[$j] ){
         if( $name ){
            ?<use cfg command?>            
         } else {
            ?<use cfg+built in command?>
         }
         ?<insert cfg extras?>
         last;
    } }
    if( $j>$#options ){ 
      if( $name ){ ?<use cfg command?> }
      else {
          print "improper command: $param \n";
          showInstrucions(); exit(1); 
    } }
  } elsif ( $i== 1 ) {
    $command[1] = $param;
  } elsif ( $i== 2 ) {
    if( $command[2] eq "" ){
      $command[2] = $param;
    } else {
      $command[2] = $param. "," . $command[2];
    }
  } elsif ( $i== 3 ) {
    $command[3] = $param . $command[3];
  } else {
    $command[4] = $param. " " .$command[4];
  }
  $i++;
}
my $cmd;
?<cmd = search command with kpsewhich?>
my $commando = $cmd . " "    . $command[1] . " \"".
            $command[2] . "\" \"". $command[3] . "\" \"" .
            $command[4] . "\"";
print "$commando\n";
my $rtrn;
if( $rtrn = system($commando) ){
   print "--- error --- failed to execute command\n";
} else {
   ?<clean files?>   
}
exit( $rtrn ); 
->>>


\<ensure initialized command[*]MOPE\><<<-
if( !$command[1] ){ $command[1] = ""; } 
if( !$command[2] ){ $command[2] = ""; } 
if( !$command[3] ){ $command[3] = ""; } 
if( !$command[4] ){ $command[4] = ""; } 
->>>



\<cmd = search command with kpsewhich\><<<-
open (KPSEA, "kpsewhich " . $command[0] . " |");
if ($cmd = <KPSEA>){ 
  $cmd =~ s/\s+$//; 
} else {
  $cmd = $command[0];
}
close KPSEA;
->>>


\<available options\><<<-
my @options = (
?<perl options?>
);
->>>


Safety guards:

\begin{itemize}
\item The `use strict'  should be employed when not
   dynamically exporting variables. 
\item Put `my' on local declarations.
\item The `W'  (?)

\end{itemize}


%%%%%%%%%%%%%
\subsection{Load Command}
%%%%%%%%%%%%%


\<use cfg command\><<<-
$command[0] = "ht".$compiler;
if( $tex    ){ $command[2] = $tex;    } else { $command[2] = ""; }
if( $tex4ht ){ $command[3] = $tex4ht; } else { $command[3] = ""; }
if( $t4ht   ){ $command[4] = $t4ht;   } else { $command[4] = ""; }
->>>


\<use cfg+built in command\><<<-
if( $options[$j-1] eq "" ){
  $command[0] = $options[$j];
} else {
  $command[0] = "ht".$options[$j+1];
}
if( $tex    ){ $command[2] = $tex;    } else { $command[2] = $options[$j+2]; }
if( $tex4ht ){ $command[3] = $tex4ht; } else { $command[3] = $options[$j+3]; }
if( $t4ht   ){ $command[4] = $t4ht;   } else { $command[4] = $options[$j+4]; }
->>>



\<insert cfg extras\><<<-
if( $texp   ){ $command[2] = $command[2] . "," . $texp; } 
if( $tex4htp){ $command[3] = $command[3] . " " . $tex4htp; } 
if( $t4htp  ){ $command[4] = $command[4] . " " . $t4htp; } 
->>>


%%%%%%%%%%%%%
\subsection{Commands from Configuration File}
%%%%%%%%%%%%%


A configuration file may contain records of the following kinds.

\begin{description}
\item[\#] Comment
\item[name = type]  Defines a ht*tex like command, and assocites to it 
the TeX compiler of the specified type.  Examples of TeX types: latex, tex,
texi, and context.
\item[name.tex = options]  Command line options for the compilation under 
   the (la)tex compiler  
\item[name.tex4ht = options]  Command line options for  tex4ht.c
\item[name.t4ht = options]  Command line options for  t4ht.c
\end{description}


Each record should appear in a different line.
The variants `name.tex += options', `name.tex4ht += options',
`name.t4ht += options' ask to add the listed options to the base
values.





Example:


\begin{verbatim}
foohlatex         = latex
foohlatex.tex     = xhtml,uni-html4
foohlatex.tex4ht += -cunihtf
foohlatex.t4ht    = -cvalidate
htlatex.t4ht     += -d./
\end{verbatim}




\<load mk4ht.cfg\><<<-
?<inf = cfg handler?>
if( $inf ){
   print "(mk4ht cfg)\n"; 
   while(<$inf>) { 
     my($line) = $_; 
     chomp($line);      # remove eoln char 
     if ($line =~ m|\s*#.*|) {} 
     elsif($line =~ m|^\s*(\S*)\.(\S*)\s*\+=\s*(.*\S)\s*$|) { 
         if( ($param."tex4ht") eq ($1.$2) ){ 
              $tex4htp = $tex4htp . " " . $3; 
         } 
         elsif( ($param."t4ht") eq ($1.$2) ){ 
              $t4htp = $t4htp . " " . $3; 
         } 
         elsif( ($param."tex") eq ($1.$2) ){ 
              $texp = $texp . "," . $3; 
         } 
     } 
     elsif($line =~ m|^\s*(\S*)\.(\S*)\s*=\s*(.*\S)\s*$|) { 
         if( ($param."tex4ht") eq ($1.$2) ){ 
              $tex4ht = $3 . " "; 
              $tex4htp = ""; 
         } 
         elsif( ($param."t4ht") eq ($1.$2) ){ 
              $t4ht = $3 . " ";
              $t4htp = "";  
         } 
         elsif( ($param."tex") eq ($1.$2) ){ 
              $tex = $3 . ",";
              $texp = "";  
         } 
     }  
     elsif($line =~ m|^\s*(\S*)\s*=\s*(.*\S)\s*$|) { 
         if( $param eq $1 ){ 
              $name = $1; 
              $compiler = $2; 
         } 
     }
     ?<elsif get ext?>
     elsif ($line) { print "--- Error --- " . $line . "\n"; } 
   } 
   close $inf; 
}
->>>


\<inf = cfg handler\><<<-
my $inf; 
open $inf, "<mk4ht.cfg"  
or  
(  open $inf, "<.mk4ht"  
   or   
  ( 
     open $inf, "<" . $ENV{HOME} . "/mk4ht.cfg"  
     or  
     ( 
        open $inf, "<" . $ENV{HOME} . "/.mk4ht"  
        or $inf = "" 
) )  ) 
; 
->>>

\<mk4ht.cfg vars\><<<-
my $name;
my $compiler;
my $tex;
my $tex4ht;
my $t4ht;
my $texp;
my $tex4htp = "";
my $t4htp = "";
->>>




%%%%%%%%%%%%%
\subsection{Cleaning Temporary files}
%%%%%%%%%%%%%

Requested in the mk4ht.cfg file through records of the following form

\begin{description}
\item[clean ext1 ext2 ...]
The extension names of the files to be removed.

\item[clean.name ext1 ext2 ...]

The `name' refers to the ht*tex like command in use.

\end{description}






Example:


\begin{verbatim}
clean             dvi idv
clean.foohlatex   lg 
clean.htlatex     lg tmp
\end{verbatim}



\<mk4ht.cfg vars\><<<-
my @ext;
->>>

\<clean files\><<<-
my $file;
my $ext;
opendir(DIR,".") ;
while ($file = readdir(DIR) ){
  if(index($file,$texFile) == 0 ){
    foreach $ext(@ext){
    if (index($file,$ext,length($file)-length($ext)) != -1){
      if( stat($file)){
         unlink($file);
         print  "Deleted: ". $file . "\n";
} } } } }
closedir(DIR);
->>>




\<elsif get ext\><<<-
elsif($line =~ m|^\s*clean\s+(.+)|){
   my(@array) = split(' ',$1);
   push(@ext,@array);
} elsif($line =~ m|^\s*clean\.(\S+)\s+(.+)|){
   if( $1 eq @ARGV[0] ){
      my(@array) = split(' ',$2);
      push(@ext,@array);
}  }
->>>



   
%%%%%%%%%%%%%
\subsection{Info}
%%%%%%%%%%%%%




\<help info\><<<-
sub showInstrucions(){
  print " option1:  mk4ht #1 \"#2\" \"#3\" \"#4\" \"#5\"\n";
  print " \n";
  print "    #1: htlatex, xhlatex, mzlatex, oolatex, dblatex, dbmlatex,\n";
  print "        jhlatex, eslatex, teilatex, teimlatex, uxhlatex,  \n";
  print "        wlatex, xhmlatex\n";
  print " \n";
  print "        also 'tex', 'texi', 'context', 'xetex', and 'xelatex'\n";
  print "        instead of 'latex'\n";
  print " \n";
  print "    #2: file name\n";
  print "    #3: optional arguments for latex/tex/... \n";
  print "    #4: optional arguments for tex4ht.c\n";
  print "    #5: optional arguments for t4ht.c\n";
  print " \n";
  print " option2:  mk4ht ht #2 #3 \"#4\" \"#5\"\n";
  print " \n";
  print "    #1: ht\n";
  print "    #2: latex, tex\n";
  print "    #3: file name\n";
  print "    #4: optional arguments for tex4ht.c\n";
  print "    #5: optional arguments for t4ht.c\n";
  print " \n";
  print " Within the program, in column three of the options\n";
  print " variable, the  requests for the commands \"latex\",\n";
  print " \"tex\", etc. can be replaced with other equivalent\n";
  print " commands (e.g., \"tex -fmt=latex\").\n";

  ?<help cfg info?>

  ?<clean info?>
}
->>>






\<help cfg info\><<<-
print "--------------------------------------------------------------------------\n";
print "           Private configuration file: mk4ht.cfg\n";
print "--------------------------------------------------------------------------\n";
print "\n";
print "A private configuration file mk4ht.cfg or .mk4ht may be placed at the\n";
print "work or home directory, to update existing commands and introduce new\n";
print "ones. The configuration file may contain records of the following\n";
print "kinds.\n";
print "\n";
print "   #  Comment\n";
print "    \n";
print "   name = type\n";
print "          Defines a ht*tex like command, and assocites to it the \n";
print "          TeX compiler of the specified type. Examples of TeX \n";
print "          types: latex, tex, texi, context, xetex, and xelatex.\n";
print "    \n";
print "   name.tex = options\n";
print "          Command line options for the compilation under\n";
print "          the (la)tex compiler\n";
print "      \n";
print "   name.tex4ht = options\n";
print "          Command line options for tex4ht.c \n";
print "    \n";
print "   name.t4ht = options\n";
print "          Command line options for t4ht.c\n";
print "    \n";
print "Each record should appear in a different line.  Variants\n";
print "`name.tex += options', `name.tex4ht += options',\n";
print "`name.t4ht += options' of the above records are also allowed.\n";
print "They append the listed options to the base values.\n";
print "\n";
print "Example:\n";
print "\n";
print "   foohlatex         = latex\n";
print "   foohlatex.tex     = xhtml,uni-html4\n";
print "   foohlatex.tex4ht += -cunihtf\n";
print "   foohlatex.t4ht    = -cvalidate\n";
print "   htlatex.t4ht     += -d./\n";
->>>




\<clean info\><<<-
print "--------------------------------------------------------------------------\n";
print "           Deleting files\n";
print "--------------------------------------------------------------------------\n";
print "\n";
print "The configuration file mk4ht.cfg may also contain requests for\n";
print "removing files created in the work directory during the compilation.\n";
print "The requests are to be made through records of the following forms.\n";
print "\n";
print "   clean ext1 ext2 ...\n";
print "     The extensions of the file name to be removed.\n";
print "   \n";
print "   clean.name ext1 ext2 ...\n";
print "     Conditional request. The `name' refers to the ht*tex \n";
print "     like command in use.\n";
print "\n";
print "Example:\n";
print "  clean             dvi idv\n";
print "  clean.foohlatex   lg \n";
print "  clean.htlatex     lg tmp\n";
->>>





%%%%%%%%%%%%%%%%%%
\section{Info}
%%%%%%%%%%%%%%%%%%



\<mkht note\><<<-
\immediate\write16{--------------------------------------------------------}
\immediate\write16{* Compile mkht-scripts.4ht with latex to get the 
                                                              full scripts.}
\immediate\write16{* For shorter latex2e scripts, compile a file whose 
                                                                content is:}
\immediate\write16{\space\space\space\space\def\string\latex{2e}
                                      \string\input\space mkht-scripts.4ht }
\immediate\write16{* For shorter latex209 scripts, compile a file whose 
                                                                content is:}
\immediate\write16{\space\space\space\space\def\string\latex{209}
                                      \string\input\space mkht-scripts.4ht }
\immediate\write16{* Remove the extension .unix from the file names        }
\immediate\write16{--------------------------------------------------------}
->>>

\<TeX4ht copyright\><<<-
%                                                        %
% 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 ?version\else |version\fi}
->>>

\<perl copyright notice\><<<-
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# mk4ht                                 ?version %
# Copyright (C) ?CopyYear.2003.               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.                                    %
#                                                        %
#                             gurari@cse.ohio-state.edu  %
#                 http://www.cse.ohio-state.edu/~gurari  %
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
->>>













%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\OutputCode\<mkht\>
\OutputCode\<mkht-scripts\>

\OutputCodE\<mk4ht.perl\>
%"mv mk4ht.perl mk4ht"


   \Needs{"mkdir         /home/4/gurari/tex4ht.dir/bin/ht/perl"}%
   \Needs{"cp mk4ht.perl /home/4/gurari/tex4ht.dir/bin/ht/perl/mk4ht.perl"}%
   \Needs{"chmod 744     /home/4/gurari/tex4ht.dir/bin/ht/perl/mk4ht.perl"}%


\immediate\write16{--------------------------------------------------------}
\immediate\write16{Compile mkht-scripts.4ht with latex to get the 
                                                              full scripts.}
\immediate\write16{Use the option `Needs' to automatically move the
    files to private directories.}
\immediate\write16{--------------------------------------------------------}

\end{document}
\endinput










