1 TeX Dialects

1.1 LATEX

<..def script..>
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{LaTeX}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 \<htlatex ...\><<<
 |<unix line|>|<windows 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|>|<windows 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|>|<windows 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
 %
 -_-_-

1.2 TEX

<..def script..>+
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{TeX}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 \<httex...\><<<
 |<unix line|>|<windows 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}  %
 %
 -_-_-

1.3 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|>|<windows 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}  %
 %
 -_-_-

1.4 Context

<..def script..>+
 %%%%%%%%%%%%%%%
 \section{ConTeXt}
 %%%%%%%%%%%%%%%
 
 
 \<context...\><<<
 |<unix line|>|<windows 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.” <..add script..>+
 \<\pref context.\ext\><<<
 \<context...\>
 >>> %
 %
 \OutputCodE\<\pref context.\ext\>   \script{\pref context}{\ext}  %
 %
 -_-_-

1.5 XeTeX

<..def script..>+
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{XeTeX}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 
 \<htxetex...\><<<
 |<unix line|>|<windows 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|>|<windows 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}  %
 %
 -_-_-

1.6 Mex

<..def script..>+
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \section{MeX}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 \<htmex...\><<<
 |<unix line|>|<windows 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}  %
 %
 -_-_-

2 Markup Dialects

2.1 HTML: ht

WARNING: Don’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|>|<windows line|>$1 $2
         $1 $2
         $1 $2
         tex4ht $2
         t4ht $2  $3
 >>>
 \OutputCodE\<ht.unix\>     \script{ht}{unix}  %
 -_-_-
<..ms scripts..>+
 \<ht.bat\><<<
 |<windows line|>
         %1 %2
         %1 %2
         %1 %2
         tex4ht %2
         t4ht %2  %3
 >>>
 \OutputCodE\<ht.bat\>    \script{ht}{bat}  %
 -_-_-

2.2 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",
 -_-_-

2.3 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",
 -_-_-

2.4 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",
 -_-_-

2.5 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",
 -_-_-

2.6 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",
 -_-_-

2.7 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",
 -_-_-

2.8 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",
 -_-_-

2.9 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", "",
 -_-_-

2.10 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",
 -_-_-

2.11 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",
 -_-_-

2.12 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", "",
 -_-_-

2.13 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 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.

3 mkht.4ht

<..mkht..>
 % mkht.4ht (2014-07-21-21:46), generated from tex4ht-mkht.tex
 % Copyright (C) 2009-2013 TeX Users Group
 % Copyright (C) 1997-2009 Eitan M. Gurari
 <.TeX4ht copyright.>
 \immediate\write-1{version 2014-07-21-21:46}
 
 \def\exit{\documentclass{article}\begin{document}\end{document}\endinput}
 \bgroup
   \def\missing#1{\aftergroup\exit
      \immediate\write16{---------------------------- error
         ----------------------------
         ^^JRequires #1ProTex.sty from
         http://tug.org/tex4ht^^J%
        ---------------------------------------------------------------}}
   \openin15=ProTex.sty \ifeof15 \missing{}\else \closein15 \fi
   \openin15=AlProTex.sty \ifeof15 \missing{Al}\else \closein15 \fi
 \egroup
 
 \let\ScriptFileName\relax
 \let\AddExtn\relax
 
 \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
 
 \catcode‘\:=11
 \def\OutputCodE\<#1.#2\>{{\xdef\ScriptFileName{#1}
    \:DoName\def{#1}{\<#1.#2\>}
    \OutputCode[#2]\<#1\>}}
 \def\winextn{bat}
 \def\AddExtn{\ifx\ext\winextn .bat\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
 >>>
 
 \<windows line\><<<
 <.MYcopyrightnotice.>
 >>>
 
 
 \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
 -_-_-

4 mkht-scripts.4ht

<..mkht-scripts..>
 % mkht-scripts.4ht (2014-07-21-21:46), generated from tex4ht-mkht.tex
 % Copyright (C) 2009-2013 TeX Users Group
 % Copyright (C) 2000-2009 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 >  /opt/cvr/gurari/tex4ht.dir/bin/solaris/#1"}%
    \Needs{"chmod 700 /opt/cvr/gurari/tex4ht.dir/bin/solaris/#1"}%
    \Needs{"mkdir -p mn.dir/ht-unix"}%
    \Needs{"cp #1.#2  mn.dir/ht-unix/#1"}%
 }}{}
 \Script{%                        #1 -- file    #2 -- extension
    \Needs{"mkdir -p /opt/cvr/gurari/tex4ht.dir/bin/ht"}%
    \Needs{"mkdir -p /opt/cvr/gurari/tex4ht.dir/bin/ht/unix"}%
    \Needs{"mv #1.#2  /opt/cvr/gurari/tex4ht.dir/bin/ht/unix/#1"}%
    \Needs{"chmod 744 /opt/cvr/gurari/tex4ht.dir/bin/ht/unix/#1"}%
 }
 
 <.unix scripts.>
 
 %%%%%%%%%%%%%%%%%%
 \section{MS Window Scripts}
 %%%%%%%%%%%%%%%%%%
 <.ms setup.>
 \ifOption{Needs}{\Script{%
    \Needs{"mkdir -p mn.dir/ht-win32"}%
    \Needs{"cp #1.#2  mn.dir/ht-win32/."}%
 }}{}
 \Script{%                        #1 -- file    #2 -- extension
    \Needs{"mkdir -p /opt/cvr/gurari/tex4ht.dir/bin/ht/win32"}%
    \Needs{"mv #1.#2  /opt/cvr/gurari/tex4ht.dir/bin/ht/win32/#1.#2"}%
    \Needs{"chmod 744 /opt/cvr/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.
        latex  $5 $1  
        latex  $5 $1  
        latex  $5 $1  
        tex4ht -f/$1  -i~/tex4ht.dir/texmf/tex4ht/ht-fonts/$3  
        t4ht -f/$1 $4
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 $1. A path is recognized by determining whether the character immediately after -f is a directory indicator character ‘\’ or ‘/’.

5 Perl Script

5.1 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 (2014-07-21-21:46)\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:

5.2 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; }
 -_-_-

5.3 Commands from Configuration File

A configuration file may contain records of the following kinds.
#
Comment
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.
name.tex = options
Command line options for the compilation under the (la)tex compiler
name.tex4ht = options
Command line options for tex4ht.c
name.t4ht = options
Command line options for t4ht.c
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:
foohlatex         = latex  
foohlatex.tex     = xhtml,uni-html4  
foohlatex.tex4ht += -cunihtf  
foohlatex.t4ht    = -cvalidate  
htlatex.t4ht     += -d./
<..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 = "";
 -_-_-

5.4 Cleaning Temporary files

Requested in the mk4ht.cfg file through records of the following form
clean ext1 ext2 ...
The extension names of the files to be removed.
clean.name ext1 ext2 ...
The ‘name’ refers to the ht*tex like command in use.
Example:
clean             dvi idv  
clean.foohlatex   lg  
clean.htlatex     lg tmp
<..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);
 }  }
 -_-_-

5.5 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";
 -_-_-

6 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.3c 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.3c or later is part of all distributions
 % of LaTeX version 2005/12/01 or later.
 %
 % This work has the LPPL maintenance status "maintained".
 %
 % The Current Maintainer of this work
 % is the TeX4ht Project <http://tug.org/tex4ht>.
 %
 % If you modify this program, changing the
 % version identification would be appreciated.
 %
 \immediate\write-1{version \ifx \JOBNAME\UnDefined 2014-07-21-21:46\else |version\fi}
 -_-_-
<..perl copyright notice..>
 # mk4ht (2014-07-21-21:46), generated from tex4ht-mkht.tex
 # Copyright (C) 2009-2013 TeX Users Group
 # Copyright (C) 2003-2009 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".
 #
 # The Current Maintainer of this work
 # is the TeX4ht Project <http://tug.org/tex4ht>.
 #
 # If you modify this file, changing the
 # version identification be appreciated.
 -_-_-
<..MYcopyrightnotice..>
 |Rem |ScriptFileName|AddExtn (2014-07-21-21:46), generated from tex4ht-mkht.tex
 |Rem Copyright (C) 2009-2013 TeX Users Group
 |Rem Copyright (C) 2003-2009 Eitan M. Gurari
 |Rem
 |Rem This work may be distributed and/or modified under the
 |Rem conditions of the LaTeX Project Public License, either
 |Rem version 1.3 of this license or (at your option) any
 |Rem later version. The latest version of this license is in
 |Rem   http://www.latex-project.org/lppl.txt
 |Rem and version 1.3 or later is part of all distributions
 |Rem of LaTeX version 2003/12/01 or later.
 |Rem
 |Rem This work has the LPPL maintenance status "maintained".
 |Rem
 |Rem The Current Maintainer of this work
 |Rem is the TeX4ht Project <http://tug.org/tex4ht>.
 |Rem
 |Rem If you modify this file, changing the
 |Rem version identification be appreciated.
 -_-_-