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:
- The ‘use strict’ should be employed when not dynamically exporting
variables.
- Put ‘my’ on local declarations.
- The ‘W’ (?)
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.
-_-_-