% $Id: tex4ht-html0.tex 414 2018-06-12 23:04:41Z karl $
% latex tex4ht-html0
% or xhlatex tex4ht-html0 "html,3,sections+"
%
% Copyright 2009-2018 TeX Users Group
% Copyright 1996-2009 Eitan M. Gurari
% Released under LPPL 1.3c+.
% See tex4ht-cpright.tex for license text.
\ifx \HTML\UnDef
\def\HTML{html0}
\def\CONFIG{\jobname}
\def\MAKETITLE{\author{Eitan M. Gurari}}
\def\next{\input mktex4ht.4ht \endinput}
\expandafter\next
\fi
\input{common-code}
\input{common}
\input{tex4ht-cpright}
\def\.{\string\a:mathml:\space}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{The Calling Tree for 4ht Files}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\<0,32,4 tex4ht\><<<
\if:latex |<Hinclude latex|>
\else |<Hinclude plain|> \fi
>>>
\<0,32,4 plain\><<<
|<Hinclude plain lib|>
|<Hinclude plain + latex lib|>
>>>
\<0,32,4 latex\><<<
|<Hinclude latex lib|>
|<Hinclude plain + latex lib|>
>>>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{HTML4 and XHTML}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\<0,32,4 preambles\><<<
|<date utility|>
|<cascade style sheets|>
\Configure{Preamble}
{|<default cascade style sheets|>} {}
>>>
\<default cascade style sheets\><<<
{\ifdim \lastskip>\z@ \unskip\fi \IgnorePar\parindent\z@
\leavevmode}%
\writesixteen{--- file \aa:CssFile\space ---}%
\ht:special{t4ht>\aa:CssFile}\ht:special{t4ht=\Hnewline /* css.sty */}%
\ht:special{t4ht<\aa:CssFile}%
>>>
\verb'\special' are like \verb'\hbox', and they so they may introduve empty lines in
vertical mode. That might be a problem if we don't want empty lines at
the start of the files. Hence, in latex we give them special treatment.
\<cascade style sheets\><<<
\ScriptCommand{\CssFile}{%
\writesixteen{--- file \aa:CssFile\space ---}%
\def\FontSize##1##2{\:Context{##1}\ht:special{t4ht;\%##2}\%}%
\def\FontName##1{\:Context{##1}\ht:special{t4ht;=}}%
\def\:Context##1{\ht:special{t4ht>\jobname.tmp}##1\ht:special
{t4ht>\aa:CssFile}}%
\ht:special{t4ht>\jobname.tmp}\ht:special{t4ht>\aa:CssFile}\bb:CssFile
\hfil\break\NoFonts}{\EndNoFonts
\ht:special{t4ht<\aa:CssFile}\ht:special{t4ht<\jobname.tmp}}
\let\Css:File|=\CssFile
\def\CssFile{\futurelet\:temp\Css:Fl}
\def\Css:Fl{\ifx [\:temp \expandafter\Css:fl
\else \expand:after{\Css:File \space}\fi}
\def\Css:fl[#1]{\Css:File\space \css:files #1,,|<par del|>}
\def\css:files#1,#2|<par del|>{\def\:temp{#1}\ifx \:temp\empty
\else \def\:temp{\in:css#1.|<par del|>\css:files#2,,|<par del|>}\fi
\:temp }
\def\in:css#1.#2|<par del|>{\def\:temp{#2}\ifx \:temp\empty \input #1.css
\else \inc:ss#1.#2|<par del|>\fi}
\def\inc:ss#1.|<par del|>{\input #1 }
\NewConfigure{CssFile}[2]{\def\aa:CssFile{#1}\def\bb:CssFile{#2}}
>>>
\verb'\CssFile[file-name,filename.ext,..]...\EndCssFile'.
Default file, just in case the user doesn't provide one. If
the user does, the following file will be overwritten.
Can't use below \verb'\a:CssFile' and \verb'\b:CssFile', because
\verb'\ScriptFile{\CssFile}' also needs them.
\verb'\Css' changes its definition upon reachin \verb'\CssFile'. The
first definition is needed within the sty files, and the info is
sent to the lg file (where else it can be sent?).
\<cascade style sheets\><<<
\def\Css#1{{\def\:temp{\Configure{Needs}}%
\expandafter\:temp\expandafter{\aa:Css}\Needs{#1}}}
\let\send:css|=\Css
\ScriptCommand{\Css}{\HCode{<style
type="text/css">\Hnewline\NoFonts}}{\EndNoFonts\HCode{</style>}}
\let\loc:css|=\Css
\def\Css{\futurelet\:temp\:Css}
\def\:Css{\ifx \:temp\bgroup \expandafter\send:css
\else \expandafter\loc:css\fi}
>>>
\<date utility\><<<
\tmp:cnt|=\time \divide\tmp:cnt |by 60
\edef\:temp{\the\tmp:cnt}
\multiply\tmp:cnt |by -60 \advance\tmp:cnt |by \time
\edef\:today{\the\year-\ifnum \month<10 0\fi
\the\month-\ifnum \day<10 0\fi\the\day
\space\ifnum \:temp<10 0\fi \:temp
:\ifnum \tmp:cnt<10 0\fi\the\tmp:cnt :00}
>>>
\<date utility\><<<
\:CheckOption{hooks++} \if:Option
\else \:CheckOption{hooks+}
\if:Option \else \:CheckOption{hooks}\fi
\fi
\if:Option
\Configure{hooks}
{\HCode{<strong class="hooks"><}}{\HCode{></strong>}}{}{}
\fi
>>>
\<xhtml.4ht\><<<
\:CheckOption{0.0}\if:Option
\else \:CheckOption{core} \fi
\if:Option \else \ifx \a:DOCTYPE\relax
\Configure{DOCTYPE}{|<xhtml dtd|>}
\fi\fi
>>>
\<xhtml dtd\><<<
\IgnorePar\HCode{\Hnewline
<?xml version="1.1"?>\Hnewline
<!DOCTYPE html SYSTEM "xhtml.dtd">\Hnewline}\Hnewline
<!--
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd-->
>>>
The following provides a faster version
than \verb'\LinkCommand\Link{a,href,name,}' for the \verb'\Link'
command
\section{article}
\<configure html0 Preamble\><<<
\Configure{PROLOG}{}
>>>
\section{latex.ltx}
\<latex options 1, 2, 3\><<<
|<options for cutoff points|>
\:CheckOption{4} \if:Option
\expandafter\ifx \csname @chapter\endcsname\relax
\:tempa \:tempc \:tempd
\else \:tempa \:tempb \:tempc \:tempd \fi
\else\:CheckOption{3} \if:Option
\expandafter\ifx \csname @chapter\endcsname\relax
\:tempa \:tempc \:tempd
\else \:tempa \:tempb \:tempc \fi
\else\:CheckOption{2} \if:Option
\expandafter\ifx \csname @chapter\endcsname\relax \:tempa \:tempc
\else \:tempa \:tempb \fi
\else\:CheckOption{1} \if:Option
\:tempa
\fi \fi \fi \fi
>>>
\<options for cutoff points\><<<
\def\:tempa{
\CutAt{part}
\CutAt{likepart}
\Configure{tableofcontents*}
{part,likepart,chapter,likechapter,appendix}
}
\def\:tempb{
\TocAt*{part,/likepart,chapter,likechapter,appendix,%
section,likesection}
\TocAt*{likepart,/part,chapter,likechapter,appendix,%
section,likesection}
\CutAt{chapter,likechapter,appendix,part}
\CutAt{likechapter,appendix,part}
\CutAt{appendix,chapter,likechapter,part}
\Configure{tableofcontents*}{part,likepart,chapter,likechapter,appendix,%
section,likesection\expandafter\ifx \csname @chapter\endcsname\relax
,subsection,likesubsection\fi
}
}
\def\:tempc{
\TocAt*{chapter,/likechapter,/appendix,/part,%
section,likesection,subsection,likesubsection}
\TocAt*{likechapter,/appendix,/chapter,/part,%
section,likesection,subsection,likesubsection}
\TocAt*{appendix,/chapter,/likechapter,/part,%
section,likesection,subsection,likesubsection}
\CutAt{section,likesection,chapter,likechapter,appendix,part}
\CutAt{likesection,chapter,likechapter,appendix,part}
\Configure{tableofcontents*}{part,likepart,chapter,likechapter,%
appendix,section,%
likesection\expandafter\ifx \csname @chapter\endcsname\relax
,subsection,likesubsection\fi}
}
\def\:tempd{
\TocAt*{section,/likesection,/chapter,/likechapter,/appendix,/part,%
subsection,likesubsection,subsubsection,likesubsubsection}
\TocAt*{likesection,/section,/chapter,/likechapter,/appendix,/part,%
subsection,likesubsection,subsubsection,likesubsubsection}
\CutAt{subsection,section,likesection,%
chapter,likechapter,appendix,part}
\CutAt{likesubsection,section,likesection,%
chapter,likechapter,appendix,part}
\Configure{tableofcontents*}{part,likepart,chapter,likechapter,%
appendix,section,likesection,likesubsection,subsection}
}
>>>
%%%%%%%%%%%%%%%%%%%%%%%
% ltoutenc.dtx
%%%%%%%%%%%%%%%%%%%%%%%
\<0,32,4 plain,latex accents\><<<
\:CheckOption{new-accents} \if:Option
|<new accents|>
\else
|<old accents|>
\fi
\let\^^_|=\v
>>>
\<0,32,4 latex\><<<
|<0,32,4 plain,latex accents|>
\let\@acci|=\' \let\@accii|=\` \let\@acciii|=\=
>>>
\<0,32,4 plain\><<<
|<0,32,4 plain,latex accents|>
>>>
\<new accents\><<<
\:CheckOption{accent-} \if:Option
\Configure{HAccent}\acute{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\bar{}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\breve{}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\check{}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\ddot{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\dot{}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\grave{AEIOUaeiou{}}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\hat{AEIOUaeiou{}}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\tilde{AOaoNn{}}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\vec{}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\widehat{}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\widetilde{}{\Picture+{}}{\EndPicture}
\fi
\:CheckOption{mathaccent-} \if:Option
\Configure{HAccent}\"{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\'{AEIOUYaeiouy{}}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\.{}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\={}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\H{}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\^{AEIOUaeiou{}}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\`{AEIOUaeiou{}}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\b{}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\c{Cc{}}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\d{}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\t{}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\u{}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\v{}{\Picture+{}}{\EndPicture}
\Configure{HAccent}\~{AOaoNn{}}{\Picture+{}}{\EndPicture}
\fi
>>>
\<new accents\><<<
\Configure{accent}{*}
{<!--tex4ht:accent\Hnewline font="}{" char="}{" type="}{"-->}
{<!--tex4ht:end accent-->}
\Configure{mathaccent}{*}
{<!--tex4ht:mathaccent\Hnewline font="}{" char="}{" type="}{"-->}
{<!--tex4ht:end mathaccent-->}
\Configure{accented}{*}
{<!--tex4ht:accented\Hnewline font="}{" char="}{" type="}{"-->}
{<!--tex4ht:end accented-->}
\Configure{accenting}{*}
{<!--tex4ht:accenting\Hnewline-->}
{<!--tex4ht:end accenting-->}
>>>
\<old accents\><<<
\Configure{accent}\`\grave{A{A}E{E}I{I}O{O}U{U}%
a{a}e{e}i{i}\i{i}o{o}u{u}{}{}}
{\a:accents{grave}{#1}} {\b:accents{grave}{#1}{#2}}
\Configure{accent}\'\acute{A{A}E{E}I{I}O{O}U{U}Y%
{Y}a{a}e{e}i{i}\i{i}o{o}u{u}y{y}{}{}}
{\a:accents{acute}{#1}} {\b:accents{acute}{#1}{#2}}
\Configure{accent}\^\hat{A{A}E{E}I{I}O{O}U{U}a{a}%
e{e}i{i}\i{i}o{o}u{u}{}{}}
{\a:accents{circ}{#1}} {\b:accents{hat}{#1}{#2}}
\Configure{accent}\~\tilde{A{A}O{O}a{a}o{o}N{N}n{n}{}{}}
{\a:accents{tilde}{#1}} {\b:accents{tilde}{#1}{#2}}
\Configure{accent}\"\ddot{A{A}E{E}I{I}O{O}U{U}Y%
{Y}a{a}e{e}i{i}\i{i}o{o}u{u}y{y}{}{34}}
{\a:accents{uml}{#1}} {\b:accents{uml}{#1}{#2}}
>>>
The following are also placed under accents configuration.
\<old accents\><<<
\Configure{accent}\c\c{C{C}c{c}{}{}}
{\a:accents{cedil}{#1}} {\b:accents{cedil}{#1}{#2}}
\Configure{accent}\t\t{{}{}}
{\a:accents{udot}{#1}} {\b:accents{udot}{#1}{#2}}
\Configure{accent}\H\H{{}{}} {}{\b:accents{Huml}{#1}{#2}}
>>>
The following originally have been defined to be parameter-less.
\<old accents\><<<
\Configure{accent}\.\dot{{}{}} {}{\b:accents{dot}{#1}{#2}}
\Configure{accent}\u\breve{{}{}}{}{\b:accents{breve}{#1}{#2}}
\Configure{accent}\vec\vec{{}{}}{}{\b:accents{vec}{#1}{#2}}
\Configure{accent}\v\check{{}{}}{}{\b:accents{check}{#1}{#2}}
\Configure{accent}\=\bar{{}{}} {}{\b:accents{bar}{#1}{#2}}
>>>
% \= macron
\<old accents\><<<
\Configure{accent}\widetilde\widetilde{{}{}}
{}{\b:accents{widetilde}{#1}{#2}}
\Configure{accent}\widehat\widehat{{}{}}
{}{\b:accents{widehat}{#1}{#2}}
>>>
\verb'\vec', \verb'\widetilde', and \verb'\widehat' are for math mode.
\verb'\b', \verb'\c', \verb'\d', \verb'\t', and \verb'\H' are for text mode.
%%%%%%%%%%%%%%%%%%%%%%%
% ltfssini.dtx
%%%%%%%%%%%%%%%%%%%%%%%
\subsection{tt Font}
\<0,32,4 latex\><<<
\ifx \ttfamily\:UnDef \else \Configure{tt}{\ttfamily} \fi
>>>
%%%%%%%%%%%%%%%%%%%%%%%
% ltmath.dtx
%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Math Setup}
\<PIC eqnarray Config\><<<
\ConfigureEnv{eqnarray}
{\IgnorePar\EndP\Tg<div class="pic-eqnarray">\Picture*{}}
{\EndPicture\Tg</div>}{}{}
\Css{div.pic-eqnarray {text-align:center;}}
\ConfigureEnv{eqnarray*}
{\IgnorePar\EndP\Tg<div class="pic-eqnarray-star">\Picture*{}}
{\EndPicture\Tg</div>}{}{}
\Css{div.pic-eqnarray-star {text-align:center;}}
>>>
%%%%%%%%%%%%%%%%%%%%%%%
% lttab.dtx
%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Tabbing, Tabular and Array Environments}
\<vspace body for array/tabular\><<<
\append:def\vspc:s{\h:HBorder}%
\def\:tempb{\ifnum \tmp:cnt<\ar:cnt
\advance\tmp:cnt by 1 \append:def\vspc:s{\i:HBorder}%
\expandafter\:tempb
\fi }
\tmp:cnt|=0 \:tempb
\append:def\vspc:s{\j:HBorder}\global\let\vspc:s|=\vspc:s
>>>
\<0,32,4 latex\><<<
\Configure{hline}{\ifx \ar:cnt\:UnDef
\else\o:noalign:{|<hline body for array/tabular|>}\fi}
\Configure{//[]}{\ifx \ar:cnt\:UnDef
\else\o:noalign:{|<vspace body for array/tabular|>}\fi}
>>>
\<hline body for array/tabular\><<<
\append:def\hline:s{\a:HBorder}%
\def\:tempb{\ifnum \tmp:cnt<\ar:cnt
\advance\tmp:cnt by 1 \append:def\hline:s{\b:HBorder}%
\expandafter\:tempb
\fi }
\tmp:cnt|=0 \:tempb
\append:def\hline:s{\c:HBorder}\global\let\hline:s|=\hline:s
>>>
\<configure clear noalign\><<<
\Configure{noalign}{}{}
>>>
\<configure tabular noalign\><<<
\Configure{noalign}%
{\f:tabular\d:tabular \HCode{<tr><td colspan="\ar:cnt">}}
{\HCode{</td></tr>}\pend:def\TableNo{0}\c:tabular\e:tabular}%
>>>
\verb'\AllColMargins' Return a binary string in which 1 represents
a column, and 0 represents a `@'. \verb'\ColMargins' retrieves the
zeros before the 1's that represent the current and following 1's.
\subsection{The option @()}
\<configuring @()\><<<
\Configure{@{}}{}
>>>
We force border around the full table whenever a vertical line is
requested, because it makes the tables better looking within the
existing capabilities.
Currently, we either have empty \verb'\VBorder', or one defined to
\verb'\def\VBorder{border="1"}'.
When \verb'\putVBorder' is call in \verb'\VBorder'
we have a sequence of the form
\verb'<COLGROUP><COL ...">...</COLGROUP>...' with the last
tag possibly missing.
%%%%%%%%%%%%%%%%%%%%%% to be placed %%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{to be placed}
%%%%%%%%%%%%%%%%%%%
\<0,32,4 plain,latex\><<<
\Configure{ }{\:nbsp}
>>>
\<0,32,4 latex\><<<
\Configure{framebox}
{\Picture+[]{ \a:@Picture{framebox}}} {\EndPicture}
\Configure{InsertTitle}{\let\label|=\lb:l
\let\ref|=\o:ref \Configure{ref}{}{}{}}
\Configure{AfterTitle}{\let\index|=\:index
\let\ref|=\:ref \let\label|=\lb:l }
\Configure{NoSection}
{\let\sv:index|=\index \let\sv:label|=\label \let\sv:ref|=\ref
\let\sv:newline|=\newline \def\newline{ }%
\let\sv:setfontsize|=\@setfontsize \let\@setfontsize|=\:gobbleIII
\let\index|=\@gobble \let\label|=\@gobble \let\ref|=\@gobble
}
{\let\index|=\sv:index \let\label|=\sv:label \let\ref|=\sv:ref
\let\newline|=\sv:newline \let\@setfontsize|=\sv:setfontsize
}
\Configure{oalign}{\Picture+{ \a:@Picture{oalign}}}{\EndPicture}
\Configure{TocLink}
{\Link{#2}{#3}{\Configure{ref}{}{}{}\Configure{cite}{}{}{}{}#4}\EndLink}
>>>
\<0,32,4 latex\><<<
\Configure{picture}
{\Picture+[PICT]{}}
{\EndPicture}
>>>
\<config book-report-article 0.0\><<<
\Configure{section}{}{}{\thesection\space}{}
\Configure{likesection}{}{}{}{}
>>>
\<latex shared div config\><<<
\Configure{endsection}
{likesection,chapter,likechapter,appendix,part,likepart}
\Configure{endlikesection}
{section,chapter,likechapter,appendix,part,likepart}
>>>
\<config book-report-article 0.0\><<<
\Configure{subsection}{}{}{\thesubsection\space}{}
\Configure{likesubsection}{}{}{}{}
>>>
\<latex shared div config\><<<
\Configure{endsubsection}
{likesubsection,section,likesection,chapter,%
likechapter,appendix,part,likpart}
\Configure{endlikesubsection}
{subsection,section,likesection,chapter,%
likechapter,appendix,part,likpart}
>>>
\<latex shared div config\><<<
\Configure{subsubsection}{}{}{\thesubsubsection\space}{}
>>>
\<latex shared div config\><<<
\Configure{endsubsubsection}
{likesubsubsection,subsection,likesubsection,section,%
likesection,chapter,likechapter,appendix,part,likpart}
\Configure{endlikesubsubsection}
{subsubsection,subsection,likesubsection,section,%
likesection,chapter,likechapter,appendix,part,likpart}
>>>
\<latex shared div config\><<<
\ConfigureEnv{thebibliography}{\IgnorePar}{\IgnorePar\par}{}{}
\Configure{endparagraph}
{likeparagraph,subsubsection,likesubsubsection,subsection,%
likesubsection,section,%
likesection,chapter,likechapter,appendix,part,likpart}
\Configure{endlikeparagraph}
{paragraph,subsubsection,likesubsubsection,subsection,%
likesubsection,section,%
likesection,chapter,likechapter,appendix,part,likpart}
\Configure{endsubparagraph}
{likesubparagraph,likeparagraph,subsubsection,likesubsubsection,%
subsection,likesubsection,section,%
likesection,chapter,likechapter,appendix,part,likpart}
\Configure{endlikesubparagraph}
{subparagraph,likeparagraph,subsubsection,likesubsubsection,%
subsection,likesubsection,section,%
likesection,chapter,likechapter,appendix,part,likpart}
\ifx \part\:UnDef \else
|<latex shared part config|>
\fi
>>>
\<latex shared part config\><<<
\Configure{endpart}{likepart}
\Configure{endlikepart}{endpart}
>>>
\<latex shared part config\><<<
\Configure{part}{}{}
{\IgnorePar \IgnorePar\HCode{<h1 class="partHead">}%
\partname \ \thepart\HCode{<br\xml:empty>}}
{\HCode{</h1>}\IgnoreIndent}
\Configure{likepart}{}{}
{\IgnorePar\IgnorePar\HCode{<h1 class="likepartHead">}}
{\HCode{</h1>}\IgnoreIndent}
\Configure{partTITLE+}{\thepart\space #1}
>>>
It is better to put the LI in the third field to avoid extra space
to the following text.
\<save configure tableofcontents\><<<
\let\sv:atoc|=\a:tableofcontents
\let\sv:btoc|=\b:tableofcontents
\let\sv:ctoc|=\c:tableofcontents
\let\sv:dtoc|=\d:tableofcontents
\let\sv:etoc|=\e:tableofcontents
>>>
\<recall configure tableofcontents\><<<
\let\a:tableofcontents|=\sv:atoc
\let\b:tableofcontents|=\sv:btoc
\let\c:tableofcontents|=\sv:ctoc
\let\d:tableofcontents|=\sv:dtoc
\let\e:tableofcontents|=\sv:etoc
>>>
Earlier we had
\verb'\:CheckOption{no-halign} \if:Option \else |<pic array|> \fi',
and the same for pic tabular. Why?
The \verb'<TABLE>' is needed as a grouping mechanism for \verb'<CENTER>'.
\section{Shared}
\<0,32,4 article,report,book\><<<
|<latex options 1, 2, 3|>
>>>
\<description 4\><<<
\ConfigureList{description}%
{\EndP\HCode{<dl class="description">}\let\end:itm=\empty}
{\EndP\HCode{</dd></dl>}\ShowPar}
{\end:itm\def\end:itm{\EndP\Tg</dd>}\HCode{<dt
class="description">}\bgroup \bf}
{\egroup\EndP\HCode{</dt><dd\Hnewline class="description">}}
>>>
\<thebib 4\><<<
\ConfigureList{thebibliography}%
{\:xhtml{\IgnorePar\EndP}\HCode{<div
class="thebibliography">}\let\en:bib=\empty}
{\en:bib\HCode{</div>}}
{\en:bib\def\en:bib{\HCode{</p>}}\HCode{<p class="bibitem">}} {~~~}
\Css{p.bibitem { text-indent: -2em; margin-left: 2em; }}
|<latex config div 4.0t|>
>>>
\<0,32,4 article,report,book\><<<
|<latex shared div config|>
>>>
\<maketitle 4\><<<
\Configure{maketitle}
{|<title for TITLE|>%
\HCode{<div align="center" class="maketitle">}}
{\HCode{</div>}}
{\NoFonts\IgnorePar\HCode{<h2 class="titleHead">}\IgnorePar}
{\HCode{</h2>}\IgnoreIndent\EndNoFonts}
\Configure{thanks author date and}{}{}
{\HCode{<div class="author" align="center">}}{\HCode{</div>}}
{\HCode{<div class="date" align="center">}}{\HCode{</div>}}
{\SPAN:{and}\:nbsp\:nbsp\:nbsp\EndSPAN:}
{\HCode{<br\xml:empty>}}
\Css{h2.titleHead{text-align:center;}}
\Css{div.maketitle{ margin-bottom: 2em; }}
>>>
\<maketitle amsart 4\><<<
\Configure{maketitle}
{\HCode{<div class="maketitle">}}
{\HCode{</div>}}
{\NoFonts\IgnorePar\HCode{<h2 class="titleHead">}\IgnorePar}
{\HCode{</h2>}\IgnoreIndent\EndNoFonts}
\Css{div.maketitle{text-align:center;}}
>>>
\section{amsart.cls}
\section{aa}
\subsection{Sizes of Fonts}
pages should honor the base font sizes the
readers choose for their browsers. Hence, under this assumption, all
tex4ht should do is just assure appropriate relative dimensions for
fonts of other sizes. To meet this end, I modified latex.4ht to
automatically include
\verb'{\Configure{Needs}{Font\string_Size: #1}\Needs{1...}}'
when options 11pt and 12pt are listed in \verb'\documentclass'.
\<ams art,proc,book 32\><<<
|<base font size|>
>>>>
\<base font size\><<<
{\Configure{Needs}{Font\string_Size: #1}\ifcase \@ptsize
\or \Needs{11}\or \Needs{12}\else \fi}
>>>
\<configure aa 3.2/4.0t\><<<
\Configure{subtitle institute}
{\HCode{<br\xml:empty><span class="subtitle">}}{\HCode{</span>}}
{\HCode{<div class="institute">}}{\HCode{</div>}}
{\Tg<sup>}{\Tg</sup>}
{\HCode{<br\xml:empty>}}
\Configure{maketitle}
{\HCode{<div align="center" class="maketitle">}}
{\HCode{</div>}}
{\NoFonts\IgnorePar\HCode{<h2 class="maketitleHead">}\IgnorePar}
{\HCode{</h2>}\IgnoreIndent\EndNoFonts}
\Configure{thanks author date and}{}{}
{\HCode{<div class="author" align="center">}}{\HCode{</div>}}
{\HCode{<div class="date" align="center">}}{\HCode{</div>}}
{\SPAN:{and}and\EndSPAN:}
{\HCode{<br\xml:empty>}}
>>>
\<configure aa 3.2/4.0t\><<<
\ConfigureEnv{abstract}
{\:xhtml{\IgnorePar\EndP}\HCode {<div class="abstract">}}
{\HCode{</div>}}{}{}
\Css{div.abstract{text-align:center;}}
\Configure{makeheadbox}
{\HCode{<table class="makeheadbox"
width="100\%"><tr><td><table><tr><td>}}
{\HCode{</td></tr><tr><td>}}
{\HCode{</td></tr><tr><td>}}
{\HCode{</td></tr></table></td><td class="AALogo" width="10\%">}}
{\HCode{</td></tr></table>}}
\Css{.AALogo{font-size:120\%;font-weight: bold; text-align:right;}}
>>>
\section{plain}
\<0,32,4 plain\><<<
\Configure{settabs}[1.5]{}{}{}{}{}
\Configure{line}{\HCode{<br\xml:empty>}}
>>>
\<html plain+ 0\><<<
|<plain+ 4.0t|>
>>>
\<under/over line css\><<<
\Configure{underline}
{\HCode{<span class="underline">}} {\HCode{</span>}}
\Configure{overline}
{\HCode{<span class="overline">}} {\HCode{</span>}}
\Css{.underline{ text-decoration:underline; }}
\Css{.overline{ text-decoration:overline; }}
>>>
\section{babel.sty}
\<configure html0 babel\><<<
|<0,32,4 babel|>
>>>
\<0,32,4 babel.def\><<<
\Configure{quotedblbase}{\HCode{&\#132;}}
\Configure{quotesinglbase}{\HCode{&\#130;}}
>>>
\<configure html0 tcilatex\><<<
|<0,32,4 tcilatex|>
>>>
\<0,32,4 tcilatex\><<<
\Configure{GRAPHICSPS}
{\Picture+[PICT]{}} {\EndPicture}
\Configure{GRAPHICSHP}
{\Picture+[PICT]{}} {\EndPicture}
>>>
\<0,32,4 babel\><<<
|<0,32,4 babel.def|>
\ifx \@begindocumenthook\:UnDef\else
\:CheckOption{new-accents} \if:Option \else
\def\:temp{russian}\ifx \languagename\:temp
|<russian|>
\fi
\fi\fi
>>>
We had also \verb'\append:def\@begindocumenthook{\HLet\"|=\ddot}' in
babel. It gets russian and brazil into infinite loop. Why it was
inserted.
\<russian\><<<
\Configure{accent}\"\ddot{A{A}E{E}I{I}O{O}U{U}Y%
{Y}a{a}e{e}i{i}\i{i}o{o}u{u}y{y}�{e}{}{34}}
{\a:accents{uml}{#1}}
{\def\:temp{>}\def\:tempa{#2}\ifx \:temp\:tempa\HCode{�}%
\else \def\:temp{<}\ifx \:temp\:tempa\HCode{�}%
\else \b:accents{uml}{#1}{#2}\fi\fi}
>>>
\section{fontmath}
\subsection{1: Large Operators}
\begin{verbatim}
\mathchardef\coprod="1360
\mathchardef\bigvee="1357
\mathchardef\bigwedge="1356
\mathchardef\biguplus="1355
\mathchardef\bigcap="1354
\mathchardef\bigcup="1353
\mathchardef\intop="1352 \def\int{\intop\nolimits}
\mathchardef\prod="1351
\mathchardef\sum="1350
\mathchardef\bigotimes="134E
\mathchardef\bigoplus="134C
\mathchardef\bigodot="134A
\mathchardef\ointop="1348 \def\oint{\ointop\nolimits}
\mathchardef\bigsqcup="1346
\mathchardef\smallint="1273
\end{verbatim}
\<plain tex classes\><<<
\Configure{MathClass}{1}{}{}{}{
\mathchar"1360
\mathchar"1357
\mathchar"1356
\mathchar"1355
\mathchar"1354
\mathchar"1353
\mathchar"1352
\mathchar"1351
\mathchar"1350
\mathchar"134E
\mathchar"134C
\mathchar"134A
\mathchar"1348
\mathchar"1346
\mathchar"1273
}
>>>
\subsection{2: Binary Operations}
\begin{verbatim}
\mathchardef\triangleleft="212F
\mathchardef\triangleright="212E
\mathchardef\bigtriangleup="2234
\mathchardef\bigtriangledown="2235
\mathchardef\wedge="225E \let\land=\wedge
\mathchardef\vee="225F \let\lor=\vee
\mathchardef\cap="225C
\mathchardef\cup="225B
\mathchardef\ddagger="227A
\mathchardef\dagger="2279
\mathchardef\sqcap="2275
\mathchardef\sqcup="2274
\mathchardef\uplus="225D
\mathchardef\amalg="2271
\mathchardef\diamond="2205
\mathchardef\bullet="220F
\mathchardef\wr="226F
\mathchardef\div="2204
\mathchardef\odot="220C
\mathchardef\oslash="220B
\mathchardef\otimes="220A
\mathchardef\ominus="2209
\mathchardef\oplus="2208
\mathchardef\mp="2207
\mathchardef\pm="2206
\mathchardef\circ="220E
\mathchardef\bigcirc="220D
\mathchardef\setminus="226E % for set difference A\setminus B
\mathchardef\cdot="2201
\mathchardef\ast="2203
\mathchardef\times="2202
\mathchardef\star="213F
\mathcode`\*="2203 % \ast
\mathcode`\+="202B
\mathcode`\-="2200
\end{verbatim}
\<plain tex classes\><<<
\Configure{MathClass}{2}{}{}{}{
*-+/
\mathchar"212F
\mathchar"212E
\mathchar"2234
\mathchar"2235
\mathchar"225E
\mathchar"225F
\mathchar"225C
\mathchar"225B
\mathchar"227A
\mathchar"2279
\mathchar"2275
\mathchar"2274
\mathchar"225D
\mathchar"2271
\mathchar"2205
\mathchar"220F
\mathchar"226F
\mathchar"2204
\mathchar"220C
\mathchar"220B
\mathchar"220A
\mathchar"2209
\mathchar"2208
\mathchar"2207
\mathchar"2206
\mathchar"220E
\mathchar"220D
\mathchar"226E
\mathchar"2201
\mathchar"2203
\mathchar"2202
\mathchar"213F
}
>>>
\subsection{3: Relational Operations}
The catcode is needed because 303A is \verb':'.
\<plain tex classes\><<<
\Configure{MathClass}{3}{}{}{}{
\mathchar"3128
\mathchar"3129
\mathchar"312A
\mathchar"312B
\mathchar"315E
\mathchar"315F
\mathchar"3210
\mathchar"3211
\mathchar"3212
\mathchar"3213
\mathchar"3214
\mathchar"3215
\mathchar"3216
\mathchar"3217
\mathchar"3218
\mathchar"3219
\mathchar"321A
\mathchar"321B
\mathchar"321C
\mathchar"321D
\mathchar"321E
\mathchar"321F
\mathchar"3220
\mathchar"3221
\mathchar"3224
\mathchar"3227
\mathchar"3232
\mathchar"3233
\mathchar"3236
\mathchar"3237
\mathchar"323F
:=><
\mathchar"322F
\mathchar"3276
\mathchar"3277
\mathchar"326B
\mathchar"326A
\mathchar"3261
\mathchar"3260
\mathchar"3225
\mathchar"3226
\mathchar"322D
\mathchar"322E
\mathchar"322C
\mathchar"3228
\mathchar"3229
}
>>>
\begin{verbatim}
\mathcode`\>="313E
\mathcode`\<="313C
\mathcode`\=="303D
\mathcode`\:="303A
\mathchardef\leq="3214 \let\le=\leq
\mathchardef\geq="3215 \let\ge=\geq
\mathchardef\succ="321F
\mathchardef\prec="321E
\mathchardef\approx="3219
\mathchardef\succeq="3217
\mathchardef\preceq="3216
\mathchardef\supset="321B
\mathchardef\set="321A
\mathchardef\supseteq="3213
\mathchardef\seteq="3212
\mathchardef\in="3232
\mathchardef\ni="3233 \let\owns=\ni
\mathchardef\gg="321D
\mathchardef\ll="321C
\mathchardef\not="3236
\mathchardef\leftrightarrow="3224
\mathchardef\leftarrow="3220 \let\gets=\leftarrow
\mathchardef\rightarrow="3221 \let\to=\rightarrow
\mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow}
\mathchardef\sim="3218
\mathchardef\simeq="3227
\mathchardef\perp="323F
\mathchardef\equiv="3211
\mathchardef\asymp="3210
\mathchardef\smile="315E
\mathchardef\frown="315F
\mathchardef\leftharpoonup="3128
\mathchardef\leftharpoondown="3129
\mathchardef\rightharpoonup="312A
\mathchardef\rightharpoondown="312B
\mathchardef\propto="322F
\mathchardef\sqsubseteq="3276
\mathchardef\sqsupseteq="3277
\mathchardef\parallel="326B
\mathchardef\mid="326A
\mathchardef\dashv="3261
\mathchardef\vdash="3260
\mathchardef\nearrow="3225
\mathchardef\searrow="3226
\mathchardef\nwarrow="322D
\mathchardef\swarrow="322E
\mathchardef\Leftrightarrow="322C
\mathchardef\Leftarrow="3228
\mathchardef\Rightarrow="3229
\end{verbatim}
\subsection{4/5: Delimiters}
\begin{verbatim}
\mathcode`\(="4028
\mathcode`\)="5029
\mathcode`\[="405B
\mathcode`\]="505D
\mathcode`\{="4266
\mathcode`\}="5267
\delcode`\(="028300
\delcode`\)="029301
\delcode`\[="05B302
\delcode`\]="05D303
\def\lmoustache{\delimiter"437A340 } % top from (, bottom from )
\def\rmoustache{\delimiter"537B341 } % top from ), bottom from (
\def\lgroup{\delimiter"462833A } % extensible ( with sharper tips
\def\rgroup{\delimiter"562933B } % extensible ) with sharper tips
\def\backslash{\delimiter"26E30F } % for double coset G\backslash H
\def\rangle{\delimiter"526930B }
\def\langle{\delimiter"426830A }
\def\rbrace{\delimiter"5267309 } \let\}=\rbrace
\def\lbrace{\delimiter"4266308 } \let\{=\lbrace
\def\rceil{\delimiter"5265307 }
\def\lceil{\delimiter"4264306 }
\def\rfloor{\delimiter"5263305 }
\def\lfloor{\delimiter"4262304 }
\def\arrowvert{\delimiter"26A33C } % arrow without arrowheads
\def\Arrowvert{\delimiter"26B33D } % double arrow without arrowheads
\def\bracevert{\delimiter"77C33E } % the vertical bar that extends braces
\def\Vert{\delimiter"26B30D } \let\|=\Vert How should these be treated?
\def\vert{\delimiter"26A30C } " " " " "
\def\uparrow{\delimiter"3222378 }
\def\downarrow{\delimiter"3223379 }
\def\updownarrow{\delimiter"326C33F }
\def\Uparrow{\delimiter"322A37E }
\def\Downarrow{\delimiter"322B37F }
\def\Updownarrow{\delimiter"326D377 }
\end{verbatim}
The comamnds \verb'\Configure{MathClass}{4}...'
and \verb'\Configure{MathClass}{5}...'
are for unmatched delimiters, and the comamnd
\verb'\Configure{MathDelimiters}{(}{)}' is for matched ones.
\<plain tex classes\><<<
\Configure{MathClass}{4}{}{}{}{}
\Configure{MathDelimiters}{(}{)}
\Configure{MathDelimiters}{[}{]}
\Configure{MathDelimiters}{\mathchar"4262}{\mathchar"5263}
\Configure{MathDelimiters}{\mathchar"4264}{\mathchar"5265}
\Configure{MathDelimiters}{\mathchar"4266}{\mathchar"5267}
\Configure{MathDelimiters}{\mathchar"4268}{\mathchar"5269}
\Configure{MathDelimiters}{\mathchar"4300}{\mathchar"5301}
\Configure{MathDelimiters}{\mathchar"4302}{\mathchar"5303}
\Configure{MathDelimiters}{\mathchar"4304}{\mathchar"5305}
\Configure{MathDelimiters}{\mathchar"4306}{\mathchar"5307}
\Configure{MathDelimiters}{\mathchar"4308}{\mathchar"5309}
\Configure{MathDelimiters}{\mathchar"430A}{\mathchar"530B}
>>>
\begin{verbatim}
\mathcode`\?="503F
\end{verbatim}
\subsection{6: Punctuation Marks}
\begin{verbatim}
\mathchardef\ldotp="613A % ldot as a punctuation mark
\mathchardef\cdotp="6201 % cdot as a punctuation mark
\mathchardef\colon="603A % colon as a punctuation mark
\mathcode`\;="603B
\mathcode`\,="613B
\end{verbatim}
\<plain tex classes\><<<
\Configure{MathClass}{6}{}{}{}{
\mathchar"613A
\mathchar"6201
\mathchar"603A
?; ,
}
>>>
\subsection{Questions}
\begin{verbatim}
\delcode`\<="26830A
\delcode`\>="26930B
\delcode`\|="26A30C
\delcode`\\="26E30F
% N.B. { and } should NOT get delcodes; otherwise parameter grouping fails!
\def\mathhexbox#1#2#3{\leavevmode
\hbox{$\m@th \mathchar"#1#2#3$}}
\def\dag{\mathhexbox279}
\def\ddag{\mathhexbox27A}
\def\S{\mathhexbox278}
\def\P{\mathhexbox27B}
\end{verbatim}
\section{amsppt.sty}
\<dagger\><<<
\HChar{167}>>>
\<32 amsppt, 32,4 vanilla\><<<
\Configure{title}
{\IgnorePar\EndP\HCode{<div class="title">}\begingroup\bf}
{\endgroup\IgnorePar\HCode{</div>}}
\Css{div.title {margin-top: 0.5em;}}
\Configure{author}
{\IgnorePar\EndP\HCode{<br\xml:empty><center>}\IgnorePar\par}
{\IgnorePar\EndP\HCode{</center>}}
>>>
\<32 amsppt\><<<
\Configure{affil}{\IgnorePar\HCode{<br\xml:empty><center>}\IgnorePar}
{\IgnorePar\HCode{</center>}}
\Configure{abstract} {\HCode{<br\xml:empty><center>}} {\HCode{</center>}}
{\IgnorePar\HCode{<table cellpadding="15"><tr><td>}\IgnorePar\par}
{\IgnorePar\HCode{</td></tr></table>}\IgnorePar\par}
\Configure{date}{\IgnorePar\HCode{<center>}\IgnorePar}
{\IgnorePar\HCode{</center>}}
|<32 amsppt, 32,4 vanilla|>
>>>
\<bib in amsppt.sty\><<<
\Configure{vol}{\HCode{<strong>}}{\HCode{</strong>}}
\Configure{book}{\HCode{<em>}}{\HCode{</em>}}
\Configure{paper}{\HCode{<em>}}{\HCode{</em>}}
\Configure{Refs}{\IgnorePar\EndP\HCode{<table class="Refs">}}
{\HCode{</table>}}
\Configure{ref}{\HCode{<tr valign="top"><td align="right">}}
{\EndP\HCode{</td></tr>}}{}
\Configure{keyformat}{}{\EndP\HCode{</td><td>}}
>>>
\section{amstex.tex}
\<amstex.tex m:env\><<<
|<amsmath / amstex1 m:env|>
>>>
\<NO\><<<
\def\m:env#1{\:xhtml{\IgnorePar\EndP}\HCode{<center><table class="#1"
border="0" cellpadding="0" cellspacing="15"><tr><td>}}
\def\endm:env{\HCode
{</td></tr></table></center>}\IgnorePar}
>>>
\<amsmath / amstex1 m:env\><<<
\def\m:env#1{\relax\ifmmode\else\par\fi\:xhtml{\IgnorePar\EndP}%
\HCode{<center class="#1"><table class="#1"\Hnewline
border="0" cellpadding="0" cellspacing="15"><tr><td>}}
\def\endm:env{\:xhtml{\IgnorePar\EndP}%
\HCode{</td></tr></table></center>}\IgnorePar
\ifmmode\else\par\fi}
>>>
\section{tex4ht}
\<title for TITLE\><<<
{\Configure{maketitle}{}{}{}{}%
\a:NoSection |<disable latex fonts|>\more:no \let\thanks|=\:gobble
\let\\|=\empty \def\TeX{TeX}%
\def\gobble:font##1##2{##2}\:TITLE: \no:fonts
\Tag{TITLE+}{\@title}}
>>>
Old latex files need \verb'\no:fonts', but not new ones.---wrong, as far as writing to toc in 0.0?
\<disable latex fonts\><<<
\let\leavevmode|=\empty \let\not@math@alphabet|=\:gobbleII
\def\text@command##1{##1}\let\selectfont|=\empty
\def\check@icl ##1\check@icr{}%
>>>
\<0,32,4 tex4ht\><<<
\Configure{HVerbatim+}{\z@}{\:nbsp}
\:CheckOption{jpg} \if:Option \Configure{Picture}{.jpg} \fi
\:CheckOption{gif} \if:Option \Configure{Picture}{.gif} \fi
\Configure{Link}{!--}{class=}{id=}{X}
>>>
\<doc xhtml\><<<
\Configure{DOCTYPE}{\HCode{<?xml version="1.1"?>\Hnewline
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"\Hnewline
\space\space
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
\Hnewline}}
>>>
\verb'\Hnewline' is needed at end of file to avoid loosing the
last line under some applications.
\section{th4}
\<0 th4\><<<
\Configure{Chapter}
{}{} {Chapter \theChapterCounter} {}
\Configure{Appendix}
{}{} {Appendix \theChapterCounter} {}
\Configure{LikeChapter}
{}{} {} {}
>>>
\section{epsfig}
\<0,32,4 epsfig\><<<
\Configure{epsfig} {\Picture+[epsfig]{}}{\EndPicture}
>>>
\section{psfig}
\<0,32,4 psfig\><<<
\Configure{psfig} {\Picture+[psfig]{}}{\EndPicture}
>>>
\section{graphics}
\<0,32,4 graphics\><<<
\Configure{graphics}{\Picture+[PIC]{}}{\EndPicture}
\Configure{graphics*}
{gif}
{\Picture[pict]{\csname Gin@base\endcsname.gif}}
\Configure{graphics*}
{png}
{\Picture[pict]{\csname Gin@base\endcsname.png}}
\Configure{graphics*}
{jpeg}
{\Picture[pict]{\csname Gin@base\endcsname.jpeg}}
\Configure{graphics*}
{jpg}
{\Picture[pict]{\csname Gin@base\endcsname.jpg}}
>>>
\section{index}
\<configure html0 index\><<<
\Configure{NoSection}
{\let\sv:index|=\p@index \let\sv:label|=\label \let\sv:ref|=\ref
\let\sv:newline|=\newline \def\newline{ }%
\def\p@index[##1]{\@gobble}\let\label|=\@gobble \let\ref|=\@gobble
}
{\let\p@index|=\sv:index \let\label|=\sv:label \let\ref|=\sv:ref
\let\newline|=\sv:newline
}
>>>
\section{hyperref}
\<config hyperref form 4\><<<
\Configure{Form}
{\IgnorePar\EndP\leavevmode \Tg<form \Hnewline \Attributes>}
{\IgnorePar\EndP\Tg</form>}
>>>
\<hyperref shared\><<<
\NewConfigure{::value}{1}
\Configure{::value}
{\edef\Attributes{\Attributes\space value="\AttributeVal"}}
\NewConfigure{::name}{1}
\Configure{::name}
{\edef\Attributes{\Attributes\space name="\AttributeVal"}}
\NewConfigure{::default}{1}
\Configure{::default}
{\let\::default=\AttributeVal}
\def\get:int#1.#2//{\tmp:cnt=#1 }
>>>
\<\><<<
\NewConfigure{::borderwidth}{1}
\Configure{::borderwidth}
{\Css{div\#form-\form:id {border-width: \AttributeVal;
border-style:solid;}}}
\NewConfigure{::bordercolor}{1}
\Configure{::bordercolor}
{\expandafter\get:colors\AttributeVal//%
\Css{div\#form-\form:id {border-color:\AttributeVal}}}
\def\get:colors#1 #2 #3//{%
\get:color{#1}\edef\AttributeVal{\the\tmp:cnt\%}%
\get:color{#2}\edef\AttributeVal{\AttributeVal,
\the\tmp:cnt\%}%
\get:color{#3}\edef\AttributeVal{rgb(\AttributeVal,
\the\tmp:cnt\%)}%
}
\def\get:color#1{%
\tmp:dim=#1pt \multiply\tmp:dim by 100
\expandafter\get:int\the\tmp:dim//}
>>>
\<hyperref on...\><<<
\def\:tempc#1{%
\NewConfigure{::#1}{1}%
\Configure{::#1}%
{\edef\Attributes{\Attributes\space #1="\AttributeVal"}}}
\:tempc{onclick}
\:tempc{onblur}
\:tempc{onchange}
\:tempc{onclick}
\:tempc{ondblclick}
\:tempc{onfocus}
\:tempc{onkeydown}
\:tempc{onkeypress}
\:tempc{onkeyup}
\:tempc{onmousedown}
\:tempc{onmousemove}
\:tempc{onmouseout}
\:tempc{onmouseover}
\:tempc{onmouseup}
\:tempc{onselect}
>>>
\<hyperref TextField\><<<
\NewConfigure{TextField::}{2}
\Configure{TextField::}{}{ \Tg<input type="text" \Attributes />}
\NewConfigure{TextField::width}{1}
\Configure{TextField::width}
{\tmp:dim=\AttributeVal \divide\tmp:dim by 6
\expandafter\get:int\the\tmp:dim//%
\edef\Attributes{\Attributes\space size="\the\tmp:cnt"}}
\NewConfigure{TextField::default}{1}
\Configure{TextField::default}
{\edef\Attributes{\Attributes\space value="\AttributeVal"}}
>>>
\<hyperref multiline\><<<
\NewConfigure{TextField::multiline}{2}
\Configure{TextField::multiline}
{}
{ \Tg<textarea
\Attributes>\expandafter\set:ln\multiline:value,|<par del|>%
\global\let\multiline:value=\empty \Tg</textarea>}
\let\multiline:value=\empty
\def\set:ln#1,#2|<par del|>{#1%
\def\:temp{#2}\ifx \:temp\empty \else
\hfil\break \def\:temp{\set:ln#2|<par del|>}%
\fi \:temp}
\NewConfigure{multiline::value}{1}
\Configure{multiline::value}
{\let\multiline:value=\AttributeVal}
\NewConfigure{multiline::width}{1}
\Configure{multiline::width}
{\tmp:dim=\AttributeVal \divide\tmp:dim by 6
\expandafter\get:int\the\tmp:dim//%
\edef\Attributes{\Attributes\space cols="\the\tmp:cnt"}}
>>>
\<hyperref password\><<<
\NewConfigure{TextField::password}{2}
\Configure{TextField::password}
{}{\Tg<input type="password" \Attributes />}
>>>
\<hyperref shared\><<<
\def\Default:Checked#1{%
\let\:temp=\relax
\let\:tempa=\relax
\edef\:temp{\def\:temp####1#1#1####2//{\def\:temp{####2}}%
\:temp \AttributeVal #1=#1#1//%
\def\:tempa####1=####2//{\def\noexpand\AttributeVal{####1}}%
\:tempa\AttributeVal=//}%
\:temp}
>>>
\<hyperref radio\><<<
\NewConfigure{ChoiceMenu::radio}{5}
\Configure{ChoiceMenu::radio}
{\IgnorePar\EndP\leavevmode
\Tg<div id="form-\form:id">\gHAdvance\form:id by 1 }
{ }{\IgnorePar\EndP\Tg</div>}
{\Default:Checked\radio::default
\Tg<input\Hnewline type="radio"
\ifx \:temp\empty\else checked="checked" \fi
\Attributes\space />}
{}
\NewConfigure{radio::default}{1}
\Configure{radio::default}
{\let\radio::default=\AttributeVal}
>>>
\<hyperref radio\><<<
\NewConfigure{ChoiceMenu::combo}{5}
\Configure{ChoiceMenu::combo}
{}
{~\Tg<select\Hnewline \Attributes \Hnewline size="1">}
{\Tg</select>}
{\Tg<option \ifx\::default\AttributeVal selected="selected"\fi
\Hnewline>}
{\Tg</option>}
\NewConfigure{combo::default}{1}
\Configure{combo::default}
{\let\radio::default=\AttributeVal}
>>>
\<hyperref radio\><<<
\NewConfigure{ChoiceMenu::popdown}{5}
\Configure{ChoiceMenu::popdown}
{}{\HCode{\Hnewline <select \Attributes \Hnewline size="1">}}
{\Tg</select>}
{\Tg<option \ifx\::default\AttributeVal selected="selected"\fi
\Hnewline>} {\Tg</option>}
>>>
The \verb'size="1"' makes the select a popout memnu
\<hyperref radio\><<<
\NewConfigure{ChoiceMenu::}{5}
\Configure{ChoiceMenu::}
{}{\HCode{\Hnewline <select\Hnewline \Attributes>}}{\Tg</select>}
{\Tg<option \ifx\::default\AttributeVal selected="selected"\fi
\Hnewline>} {\Tg</option>}
\NewConfigure{::menulength}{1}
\Configure{::menulength}
{\edef\Attributes{\Attributes\space size="\AttributeVal"}}
>>>
\section{exerquiz}
\<-NOPE\><<<
\Configure{quiz*}
{qthis=this;
ProcessQuestion(\ANS,"\alph{quizno}",\thequestionno,
0,"\eq@bqlabel",\Quiz:N)}
>>>
\<exerqz\><<<
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% exerqz.4ht |version %
% Copyright (C) |CopyYear.1999. %
% Donald P. Story & Eitan M. Gurari %
|<TeX4ht copyright|>
|<exerqz's vars|>
|<predefined exerquiz javascript|>
>>>
\<predefined exerquiz javascript\><<<
\JavaScript-$
var QuizInitialized;
var EndQuizPushed;
var CurrentQuizNo;
var Responses;
var ResponsesAddr;
var Cor;
var CorAddr;
var qthis;
var prev_notify;
function InitializeQuiz(qtfield,mark,quizN,ansN,lbrc,rbrc) {
Score=0;
QuizInitialized=1;
CurrentQuizNo=quizN;
eval( 'document.form'+qtfield+'.'+qtfield+'.value="$eqScore";' )
RightWrong=new Array();
|<hide sol|>
Responses=new Array();
ResponsesAddr=new Array();
|<hide cor|>
Cor=new Array();
CorAddr=new Array();
EndQuizPushed=0;
for(var i=1; i<=ansN; i++){
RightWrong[i]=0;
}
}
\EndJavaScript
>>>
\<show sol\><<<
if( ResponsesAddr[probno] != null ){
if (notify == 0 ) {
ResponsesAddr[probno].value=Responses[probno];
} else {
ResponsesAddr[probno].value="("+Responses[probno]+")";
} }
qthis.value = "#"; ResponsesAddr[probno]=qthis;
>>>
\<hide sol\><<<
for(var i in Responses){
if (prev_notify == 0 ) {
ResponsesAddr[i].value=Responses[i];
} else {
ResponsesAddr[i].value="("+Responses[i]+")";
} }
>>>
% if( Responses != null ){
\<record cor\><<<
var k=Cor.length;
eval('Cor[k]=thisform'+quizN+'.ans'+quizN+'x'+i+'.value');
eval('CorAddr[k]=thisform'+quizN+'.ans'+quizN+'x'+i);
>>>
\<hide cor\><<<
for(var i in Cor){
CorAddr[i].value=Cor[i];
}
>>>
% if( Cor != null ){
\<predefined exerquiz javascript\><<<
\JavaScript
function href(addr) { top.location.href=addr; }
\EndJavaScript
>>>
% function href(addr) { window.navigate(addr); }
\<predefined exerquiz javascript\><<<
\JavaScript
function Corrections(lbl1,lbl2,quizN) {
if ( (EndQuizPushed == 1) && ( CurrentQuizNo == quizN ) ){
for(var i in RightWrong){
if( (RightWrong[i]==0) ){
|<record cor|>
eval('thisform'+quizN+'.ans'+quizN+'x'+i+'.value= "*"');
} }
} }
\EndJavaScript
>>>
\<predefined exerquiz javascript\><<<
\JavaScript
function LinkTo(addr) {
}
\EndJavaScript
>>>
\<exerqz's vars\><<<
\def\eqXInitQuizMsg{\hbox{%
\let\noexpand|=\string
\csname eq@InitQuizMsg\endcsname}}
\expandafter\ifx \csname eq@InitQuizMsg\endcsname\relax
\expandafter\def\csname eq@InitQuizMsg\endcsname{
"You must initialize the Quiz! Click on "+bqlabel}
\fi
\def\eqXQuizTotalMsg{\hbox{%
\let\noexpand|=\string
\def\thequestionno{"+thequestionno+"}%
\csname eq@QuizTotalMsg\endcsname}}
\expandafter\ifx \csname eq@QuizTotalMsg\endcsname\relax
\expandafter\def\csname eq@QuizTotalMsg\endcsname{"Score: '
+Score +' out of '+thequestionno+'"}
\fi
\def\eqXMadeChoice{\hbox{%
\let\noexpand|=\string
\csname eq@MadeChoice\endcsname}}
\expandafter\ifx \csname eq@MadeChoice\endcsname\relax
\expandafter\def\csname eq@MadeChoice\endcsname{
"You have already made a choice. Your choice was ("
+Responses[probno]+")."
+" Do you want to change it?"}
\fi
\expandafter\ifx \csname eqScore\endcsname\relax
\def\eqScore{Score:}
\fi
>>>
The \verb'Wollen Sie dies \noexpand\344ndern?' is a problem because it
takes the \verb'\344' into \verb'44'. A \verb'\string' will properly
produce \verb'\344'; hence, the above dirty trick.
\begin{verbatim}
Doesn't IE escape in the way that Acrobat JavaScript does?
Another possibility is to use String.fromCharCode()
Convert Octal \344 to decimal 228, then use
String.fromCharCode(228)
How to deliver browser specific content using JavaScript
<SCRIPT LANGUAGE="JavaScript">
<!--
if( -1 != navigator.userAgent.
indexOf ("AOL") )
{
// load America Online version
location.href="aol.htm";
}
else
if( -1 != navigator.userAgent.
indexOf ("MSIE") )
{
// load Microsoft Internet
// Explorer version
location.href="msie.htm";
}
else
if( -1 != navigator.userAgent.
indexOf ("Mozilla") )
{
// load Netscape version
location.href="netscape.htm";
}
else
{
// load other version
location.href="other.htm";
}
-->
</SCRIPT>
\end{verbatim}
\<predefined exerquiz javascript\><<<
\JavaScript-$
function QuizEnd(bqlabel,thequestionno,quiztotal,quizN){
if ((QuizInitialized !=1) |||| ( CurrentQuizNo!= quizN )){
alert($eqXInitQuizMsg,3);
} else {
eval( 'document.form'+quiztotal+'.'+quiztotal+
'.value=$eqXQuizTotalMsg');
QuizInitialized=-1;
EndQuizPushed=1;
} }
\EndJavaScript
\JavaScript-$
function ProcessQuestion
(key,letterresp,probno,notify,bqlabel,quizN) {
if ((QuizInitialized !=1) |||| ( CurrentQuizNo!= quizN )){
alert($eqXInitQuizMsg,3);
} else {
|<function ProcUserResp(key,letterresp,probno,notify)|>
prev_notify = notify;
} }
\EndJavaScript
>>>
\<function ProcUserResp(key,letterresp,probno,notify)\><<<
if (Responses[probno] == null) {
if (key==1) {
Score++;
RightWrong[probno]=1;
}
else
RightWrong[probno]=0;
|<show sol|>
Responses[probno]=letterresp;
}
else {
if (notify==0)
User=true;
else
User=confirm($eqXMadeChoice);
if (User) {
if (RightWrong[probno]==1) {
if (key==0) {
Score -= 1;
RightWrong[probno]=0;
|<show sol|>
Responses[probno]=letterresp;
}
}
else {
if (key==1) {
Score++;
RightWrong[probno]=1;
|<show sol|>
Responses[probno]=letterresp;
}
else {
RightWrong[probno]=0;
|<show sol|>
Responses[probno]=letterresp;
}
}
}
}
>>>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{html0}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\<html0\><<<
% html0.4ht (|version), generated from |jobname.tex
% Copyright (C) 2009-2016 TeX Users Group
% Copyright (C) |CopyYear.1996. Eitan M. Gurari
|<TeX4ht copywrite|>
>>>
\section{latex}
\<configure html0 latex\><<<
|<0,32,4 latex|>
|<0 latex|>
|<0,32,4 plain,latex|>
|<config latex.ltx 0.0|>
|<0 plain,latex|>
|<0 th4,latex|>
>>>
%%%%%%%%%%%%%%%%%%%%%%%
% ltplain.dtx
%%%%%%%%%%%%%%%%%%%%%%%
\subsection{obeylines}
\<0 plain,latex\><<<
\Configure{obeylines}{}{}{}
>>>
%%%%%%%%%%%%%%%%%%%%%%%
% ltmiscen.dtx
%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Miscellaneous Environments}
\<config latex.ltx 0.0\><<<
\Configure{verbatim}{}{ }
\Configure{verb}{}{}
>>>
\<config latex.ltx 0.0\><<<
\let\env:verb|=\:gobble
>>>
\<config latex.ltx 0.0\><<<
\ConfigureEnv{verbatim}{}{\null}{}{}
\ConfigureEnv{verbatim*}{}{\null}{}{}
>>>
\<config latex.ltx 0.0\><<<
\ConfigureEnv{center}{}{}{}{}
>>>
\<config latex.ltx 0.0\><<<
\Configure{centercr}{}{}
>>>
%%%%%%%%%%%%%%%%%%%%%%%
% ltmath.dtx
%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Math Setup}
\<config latex.ltx 0.0\><<<
\:CheckOption{pic-eqnarray}
\if:Option
\ConfigureEnv{eqnarray} {\Picture*{}} {\EndPicture}{}{}
\ConfigureEnv{eqnarray*} {\Picture*{}} {\EndPicture}{}{}
\else
\Configure{eqnarray}{}{}{}{}{}{}
\fi
>>>
%%%%%%%%%%%%%%%%%%%%%%%
% lttab.dtx
%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Tabbing, Tabular and Array Environments}
\<config latex.ltx 0.0\><<<
\Configure{array} {}{}{}{}{}{}
\Configure{tabular} {}{}{}{}{}{}
>>>
\<config latex.ltx 0.0\><<<
\:CheckOption{no-array}\if:Option \else
\:ifpackageloaded{array}{\:Optiontrue}{}
\fi
\if:Option \else
|<html latex array/tabular Config tty|>
\fi
>>>
\<html latex array/tabular Config tty\><<<
\def\:array:{<>}
\def\:tabular:{<>}
\Configure{array}{}{}{}{}{}{}
\Configure{tabular}{}{}{}{}{}{}
\ConfigureEnv{array}{}{}{}{}
\ConfigureEnv{tabular}{}{}{}{}
>>>
\<html latex array/tabular Config tty\><<<
\:ifpackageloaded{array}{\:Optiontrue}{\:Optionfalse}
\if:Option
|<array.sty Configure tty|>
\else
\Configure{VBorder}{}{}{}{}
\fi
>>>
\<array.sty Configure tty\><<<
\Configure{VBorder}{}{}{}{}
>>>
\<config latex.ltx 0.0\><<<
\:CheckOption{pic-tabbing} \if:Option
\ConfigureEnv{tabbing}{\Picture*{}}{\EndPicture}{}{}
\else
|<TABLE tabbing Config tty|>
\:CheckOption{pic-tabbing'} \if:Option
|<PICT tabbing Config 0.0|>
|<PICT dot tabbing|>
\fi
\fi
>>>
\<TABLE tabbing Config tty\><<<
\Configure{tabbing}[1.5]{}
{}
{}
{}
>>>
\<PICT tabbing Config 0.0\><<<
\expandafter\def\csname
c:pic-tabbing:\endcsname#1{\def\p:tabbing{#1}}
>>>
%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%% to be placed %%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{to be placed}
\<0 th4,latex\><<<
\Configure{()}{$}{$}
\Configure{[]}{\:xhtml{\IgnorePar\EndP}$$}{$$}
>>>
\<config latex.ltx 0.0\><<<
\ConfigureList{trivlist}{}{}{}{}
\ConfigureList{list}{}{}{}{}
\ConfigureList{itemize}{}{}{}{}{}{}
\ConfigureList{enumerate}{}{}{}{}{}{}
>>>
\<config latex.ltx 0.0\><<<
\Configure{tableofcontents}{}{}{}{}{}
>>>
\<config latex.ltx 0.0\><<<
\Configure{TocAt}{}{}
\Configure{TocAt*}{}{}
>>>
\<config latex.ltx 0.0\><<<
\ConfigureEnv{minipage}{}{}{}{}
>>>
\<config latex.ltx 0.0\><<<
\Configure{float}{}{}{}
>>>
\<config latex.ltx 0.0\><<<
\Configure{newline}{}
>>>
\<0 plain,latex\><<<
\Configure{ }{ }
>>>
\<0 plain,latex\><<<
\def\:zbsp#1{cellpadding="0" border="0" cellspacing="0"\Hnewline
class="#1"}
>>>
\<0 plain,latex\><<<
\:CheckOption{new-accents} \if:Option \else
\Configure{accents}{(#1 #2)}{(#1 #3)}
\immediate\write-1{\string\Configure{accents}{found-case}{missing-case}}
\fi
\Configure{centerline}{}{}
\Configure{leftline}{}{}
\Configure{rightline}{}{}
>>>
\<0 plain,latexNO\><<<
\Configure{choose}{}{}
>>>
\section{tex4ht}
\<title for hypertext page\><<<
\Configure{TITLE+}{\HCode{\jobname.\:html}}
>>>
\<0,32,4 latex\><<<
\ifTag{TITLE+}
{\Configure{TITLE+}{\HCode{\LikeRef{TITLE+}}}}{}
>>>
\<configure html0 tex4ht\><<<
|<0,32,4 tex4ht|>
\Configure{HtmlPar}{}{}{}{}
\ifx \a:HTML\:UnDef \Configure{HTML}{}{} \fi
\ifx \a:HEAD\:UnDef \Configure{HEAD}{}{} \fi
\ifx \a:BODY\:UnDef \Configure{BODY}{}{} \fi
\ifx \a:TITLE\:UnDef \Configure{TITLE}{}{} \fi
\Configure{TITLE+}{}
|<no css|>
>>>
\<configure html0 tex4ht\><<<
\Configure{crosslinks+}{\IgnorePar}{\par\ShowPar}{\IgnorePar}{}
\Configure{IMG}{}{ }{}{}{}
\Configure{Picture*}{}{}
\Configure{SUB}{}{}
\Configure{SUP}{}{}
\Configure{MkHalign}{}{}{}{}{}{}
\Configure{halignTD} {}{} {}{}{}{}{}{}{}{}
\Configure{halign}{}{}{}{}{}{}{}
\Configure{pic-halign}{}
>>>
\<0,32,4 tex4ht\><<<
|<0,32,4 preambles|>
\ifx \a:FontCss:\:UnDef
\Configure{FontCss}{Font\string_Css##1}
{Font\string_Css\string_Plus\space##1}
\fi
\expandafter\ifx \csname aa:Css\endcsname\relax
\Configure{Css}{Css: ##1}
\fi
\:CheckOption{edit} \if:Option
\Configure{edit}{\HCode{<strong><}}{\HCode{></strong>}}
{<strong><}{></strong>}
\fi
\:CheckOption{hooks++} \if:Option
\else \:CheckOption{hooks+} \if:Option
\else \:CheckOption{hooks} \if:Option
\fi\fi\fi
\if:Option
\Configure{hooks}
{\HCode{<strong class="hooks"><}}{\HCode{></strong>}}{}{}
\fi
\Configure{ExitHPage}{exit}{exit }{}
\Configure{TocLink}{\Link{#2}{#3}#4\EndLink}
\Configure{MiniHalign}{\hlg:a}{\hlg:b}\hlg:c\hlg:d{\hlg:e}\hlg:f
\:CheckOption{no-halign} \if:Option \else
\Configure{noalign-}{}{}
\fi
\Configure{PictureAlt*+}
{\let\sv:HtmlPar|=\HtmlPar \let\HtmlPar|=\empty
|<postscript for /Picture|>%
|<tex halign and cr/crcr|>%
\NoFonts\csname PauseMathClass\endcsname \SUBOff \SUPOff
\let\HCode|=\:gobble |%\offinterlineskip|%
\let\EndPicture|=\empty}
{\let\HCode|=\:HCode
\let\EndPicture|=\:UnDef \let\HtmlPar|=\sv:HtmlPar \SUBOn \SUPOn
\csname EndPauseMathClass\endcsname \EndNoFonts
|<tex4ht halign and cr/crcr|>%
|<delay postscript|>}%
>>>
\<postscript for /Picture\><<<
\def\PsCode##1{{\ht:special{\PsCodeSpecial##1}}}%
>>>
\<tex halign and cr/crcr\><<<
\iffalse{\fi
\let\sv:halign|=\halign
\let\sv:cr|=\cr
\let\sv:crcr|=\crcr
\iffalse}\fi
\RecallTeXcr \let\halign |=\TeXhalign
>>>
\<tex4ht halign and cr/crcr\><<<
\iffalse{\fi
\let\halign|=\sv:halign
\let\cr|=\sv:cr
\let\crcr|=\sv:crcr
\iffalse}\fi
>>>
\<delay postscript\><<<
\let\PsCode|=\relax
>>>
\<0,32,4 tex4ht\><<<
\Configure{CutAtTITLE+}{}
\Configure{HPageTITLE+}{}
\Configure{AtBeginDocument}
{\edef\recallcatcodes{%
\catcode`\noexpand\_|=\the\catcode`\_
\catcode`\noexpand\^|=\the\catcode`\^ }%
\catcode`\_=8\catcode`\^=7}
{\recallcatcodes}
>>>
\<0,32,4 tex4ht\><<<
\Configure{crosslinks}{[}{]
}{next}{prev}{prev-|<tail|>}{front}{tail}{up}
\:CheckOption{next} \if:Option
\Configure{next+}{\ShowPar\par\noindent [}{]}
\fi
\Configure{TocAt*}{}{}
\Configure{TocAt}{}{}
\Configure{halignTB}{\HCode{<table }}{\HCode{>}}
\def\t:HA{\HCode{</table>}}
\def\R:HA{\HCode{<tr \Hnewline valign="baseline">}}
\def\r:HA{\HCode{</tr>}}
\def\D:HA{\HCode{<td \ifnum \HMultispan>1 colspan="\HMultispan"\fi}%
\halignTD \HCode{\Hnewline>}}
\def\d:HA{\HCode{</td>}}
\Configure{HVerbatim+}{\z@}{\:nbsp}
\Configure{CssFile}{\jobname.css}
{/* \aa:CssFile\space from \jobname.tex (TeX4ht) */}
\Configure{Picture+}{}{}
\Configure{Picture*}{}{}
\Configure{Needs}{l.
\the\inputlineno\space--- needs --- #1 ---}
\Configure{Needs-}{l.
\the\inputlineno\space--- needs --- #1 ---}
|<yes css|>
>>>
\<0,32,4 tex4ht\><<<
\Configure{moveright}{\leavevmode\endgraf }
\Configure{HChar}{x}
>>>
\<yes css\><<<
\def\:SPAN#1#2{\HCode{<span class="#1">}#2\HCode{</span>}}
\def\SPAN:#1{\HCode{<span class="#1">}}
\def\EndSPAN:{\HCode{</span>}}
\def\DIV:#1{\HCode{<div class="#1">}}
\def\EndDIV:{\HCode{</div>}}
>>>
\<no css\><<<
\def\:SPAN#1#2{#2}
\let\SPAN:|=\:gobble \let\EndSPAN:|=\empty
\let\DIV:|=\:gobble \let\EndDIV:|=\empty
>>>
\section{plain}
\<configure html0 plain\><<<
|<0,32,4 plain|>
|<0,32,4 plain,latex|>
|<0 plain|>
|<0 plain,latex|>
|<0 plain+|> |%keep last in html mode|%
>>>
\<0 plain\><<<
\Configure{centerline}{}{}
\Configure{leftline}{}{}
\Configure{rightline}{}{}
\Configure{insert}{}{}
>>>
\<0 plain\><<<
\:CheckOption{pic-eqalign} \if:Option
\:CheckOption{no-halign} \if:Option \else
\fi
\else |<TABLE eqalign shared Configure tty|>
\fi
>>>
\<TABLE eqalign shared Configure tty\><<<
\Configure{eqalign}{}{}{}{}{}{}
>>>
\<TABLE eqalign shared Configure tty\><<<
\Configure{eqalignno}{}{}{}{}{}{}
>>>
\<TABLE eqalign shared Configure tty\><<<
\Configure{leqalignno}{}{}{}{}{}{}
>>>
\<0 plain\><<<
\Configure{narrower}{}{}
>>>
\<0 plain\><<<
\Configure{proclaim}{}{}{}
>>>
\<0 plain\><<<
\Configure{line}{}
>>>
\<0 plain+\><<<
|<plain+ 0.0|>
\:CheckOption{plain-} \if:Option \else
|<itemitem 0.0|>
\fi
>>>
\<plain+ 0.0\><<<
\Configure{item}{}{}{\par\leavevmode}{}
>>>
\section{article, book, report}
\<configure html0 article\><<<
|<config report / article 0.0|>
|<config book-report-article 0.0|>
>>>
\<configure html0 report\><<<
|<config book-report 0.0|>
|<config report / article 0.0|>
|<config book-report-article 0.0|>
>>>
\<configure html0 book\><<<
|<config book-report-article 0.0|>
|<config book-report 0.0|>
>>>
\<config report / article 0.0\><<<
\ConfigureEnv{abstract}{}{}{}{}
>>>
\<config book-report-article 0.0\><<<
|<0,32,4 article,report,book|>
|<article,report,book tocs|>
\ConfigureToc{lof}{\empty}{ }{}{}
\ConfigureToc{lot}{\empty}{ }{}{}
\ConfigureEnv{quote}{}{}{}{}
\ConfigureList{description}{}{}{}{}{}{}
\Configure{maketitle}{}{}{}{}
\Configure{thanks author date and} {}{} {}{} {}{} {}{}
\Configure{theindex}{}{}{}{}{}{}{}{}{}
\Configure{paragraph}{}{}{}{}
\Configure{likeparagraph}{}{}{}{}
\Configure{subparagraph}{}{}{\thesubparagraph\space}{}
\Configure{likesubparagraph}{}{}{}{}
\ifx \part\:UnDef \else
\Configure{part}{}{} {\partname \ \thepart\space} {}
\Configure{likepart}{}{}{\empty}{}
\fi
>>>
\<report,book tocsNO\><<<
\ConfigureToc{appendix} {\empty}{\ }{}{\ }
\ConfigureToc{chapter} {\empty}{\ }{}{\ }
\ConfigureToc{likechapter} {\empty}{\ }{}{\ }
>>>
\<article,report,book tocsNO\><<<
\ConfigureToc{likeparagraph} {}{\empty}{}{\ }
\ConfigureToc{likepart} {}{\empty}{}{\ }
\ConfigureToc{likesection} {}{\empty}{}{\ }
\ConfigureToc{likesubparagraph} {}{\empty}{}{\ }
\ConfigureToc{likesubsection} {}{\empty}{}{\ }
\ConfigureToc{likesubsubsection} {}{\empty}{}{\ }
\ConfigureToc{paragraph} {\empty}{\ }{}{\ }
\ConfigureToc{part} {\empty}{\ }{}{\ }
\ConfigureToc{section} {\empty}{\ }{}{\ }
\ConfigureToc{subparagraph} {\empty}{\ }{}{\ }
\ConfigureToc{subsection} {\empty}{\ }{}{\ }
\ConfigureToc{subsubsection} {\empty}{\ }{}{\ }
>>>
\<config book-report 0.0\><<<
|<report,book tocs|>
\Configure{chapter}{}{} {\chaptername \ \thechapter} {}
\Configure{chapterTITLE+}{}
\Configure{likechapter}{}{}{\empty}{}
\Configure{appendix}{}{}{\appendixname \ \thechapter}{}
\Configure{appendixTITLE+}{}
>>>
\section{emulateapj}
\<configure html0 emulateapj\><<<
|<config emulateapj.clo 0.0|>
>>>
\<config emulateapj.clo 0.0\><<<
\Configure{slugcomment}{}{}
>>>
\<config emulateapj.clo 0.0\><<<
\Configure{subtitle}{}{}
>>>
\<config emulateapj.clo 0.0\><<<
\Configure{submitted}{}{}
>>>
\<config emulateapj.clo 0.0\><<<
\Configure{title}{}{}
>>>
\<config emulateapj.clo 0.0\><<<
\Configure{author}{}{}
>>>
\<config emulateapj.clo 0.0\><<<
\Configure{affil}{}{}
>>>
\<config emulateapj.clo 0.0\><<<
\Configure{keywords}{}{}
>>>
\<config emulateapj.clo 0.0\><<<
\Configure{subjectheadings}{}{}
>>>
\section{aa}
\<configure html0 aa\><<<
|<configure aa 0.0|>
|<makeketitle config 0.0|>
|<latex shared div config|>
>>>
\<configure aa 0.0\><<<
\Configure{subtitle institute}{}{}{}{}{}{}{}
\Configure{maketitle}{}{}{}{}
\Configure{thanks author date and}{}{}{}{}{}{}{}{}
>>>
\section{vanilla}
\<configure html0 vanilla\><<<
|<config vanilla.sty 0.0|>
|<config amsppt + vanilla 0.0|>
>>>
\<config vanilla.sty 0.0\><<<
\Configure{heading}{}{}{}{}
\ConfigureToc{heading}{}{}{}{}
\Configure{subheading}{}{}{}{}
\ConfigureToc{subheading}{}{}{}{}
\Configure{demo}{}{}{}{}
>>>
\<config vanilla.sty 0.0\><<<
\Configure{aligned}{}{}{}{}{}{}
>>>
\<config vanilla.sty 0.0\><<<
\Configure{align}{}{}{}{}{}{}
>>>
\section{amsart, amsproc, amsbook}
\<configure html0 amsart\><<<
|<ams art,proc,book 0|>
>>>
\<configure html0 amsproc\><<<
|<ams art,proc,book 0|>
>>>
\<configure html0 amsbook\><<<
|<ams art,proc,book 0|>
>>>
\section{amstex}
\<configure picmath0 amstex\><<<
\:CheckOption{no-matrix} \if:Option \else
\:CheckOption{pic-matrix} \if:Option
|<pic amstex.tex matrix 0.0|>
\else
|<tabular amstex.tex matrix 0.0|>
\fi\fi
\:CheckOption{no-align} \if:Option \else
\:CheckOption{pic-align} \if:Option
|<pic amstex.tex align 0.0|>
\else
|<tabular amstex.tex align 0.0|>
\fi\fi
>>>
Do we need the following? Don't those of plain.sty are good here?
\<pic amstex.tex matrix 0.0\><<<
\Configure{matrix}{}{}
>>>
\<pic amstex.tex matrix 0.0\><<<
\Configure{pmatrix}{}{}
>>>
\<tabular amstex.tex matrix 0.0\><<<
\Configure{matrix}{}{}{}{}{}{}
>>>
\<tabular amstex.tex matrix 0.0\><<<
\Configure{pmatrix}{}{}
>>>
\section{amsppt}
\<configure html0 amsppt\><<<
|<config amsppt + vanilla 0.0|>
>>>
\section{moreverb.sty}
\<configure html0 moreverb\><<<
\ConfigureEnv{verbatimtab}{}{}{}{\null}
\ConfigureEnv{verbatimtab*}{}{}{}{\null}
\ConfigureEnv{boxedverbatim}{}{}{}{\null}
\ConfigureEnv{boxedverbatim*}{}{}{}{\null}
>>>
\section{url}
\<configure html0 url\><<<
\Configure{url}{#1}
>>>
\section{array.sty}
\<configure html0 array\><<<
\Configure{VBorder}{}{}{}{}
\Configure{array}{}{}{}{}{}{}
\Configure{tabular}{}{}{}{}{}{}
>>>
\section{slidesec}
\<configure html0 slidesec\><<<
\ConfigureToc{slidesection}{\empty}{ }{}{}
>>>
\section{epsfig}
\<configure html0 epsfig\><<<
|<0,32,4 epsfig|>
>>>
\section{psfig}
\<configure html0 psfig\><<<
|<0,32,4 psfig|>
>>>
\section{graphics}
\<configure html0 graphics\><<<
|<0,32,4 graphics|>
>>>
\section{th4}
\<configure html0 th4\><<<
\Configure{Verbatim}{}{}{}{}
|<0 th4,latex|>
|<0 th4|>
>>>
\section{Shared in html0}
\<ams art,proc,book 0\><<<
|<makeketitle config 0.0|>
>>>
\<config book-report-article 0.0\><<<
|<makeketitle config 0.0|>
>>>
\<makeketitle config 0.0\><<<
\Configure{caption}{}{}{}{}
>>>
\<itemitem 0.0\><<<
\Configure{itemitem}{}{}{\par\leavevmode}{}
>>>
\<config amsppt + vanilla 0.0\><<<
\Configure{title}{}{}
>>>
\<config amsppt + vanilla 0.0\><<<
\Configure{author}{}{}
>>>
\section{amsart}
\<ams art,proc,book 32\><<<
|<config sections 3.2|>
|<book-report-article caption 3.2|>
|<latex report,... config 3.2|>
|<32,4 ams art,proc,book|>
>>>
\section{latex.ltx}
%%%%%%%%%%%%%%%%%%%%%%%
% ltplain.dtx
%%%%%%%%%%%%%%%%%%%%%%%
\subsection{obeylines}
\<obeylines confg\><<<
\Configure{obeylines}
{} {} {\hbox{\HCode{<br>}}}
>>>
Typically, \verb'\obeylines' appears in a separate line before the
content. The following option is introduced to avoid an extra leading
empty line.
\<delayed obeylines confg\><<<
\Configure{obeylines}
{\def\Line:Break{\def\Line:Break{\hbox{\HCode{<br>}}}}} {}
{\Line:Break}
>>>
\subsection{Tabbing, Tabular and Array Environments}
\<PICT dot tabbing\><<<
\:CheckOption{pic-tabbing'} \if:Option
\edef\:temp{\LikeRef{|<tabbing tag|>.}}%
\def\:tempa{.}\ifx \:temp\:tempa
\ConfigureEnv{tabbing}{\Picture*{}}{\EndPicture}{}{}
\fi
\fi
>>>
%%%%%%%%%%%%%%%%%%%%%% to be placed %%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{to be placed}
\<32 picmath th4,latex\><<<
\Configure{[]}
{\PicDisplay$$\everymath{}\everydisplay{}}
{$$\EndPicDisplay}
\Configure{()}{\PicMath$}{$\EndPicMath}
>>>
\section{plain}
A `\verb'\begin{multline}...\end{multline}' is not a standard environment
in the sense that the environment as a whole is read in one piece and
then processed, instead of reading it piecewise and process it as it
goes. That is, we have a behavior similar to that in verbatim
environments. The behavior is due to multline being implemented in
terms of \verb'\gather@#1{..}'. Hence, for the picture environment, we
need to change early the catcodes of `\verb'_' and `\verb'^'.
\<extract amsmath labels\><<<
\def\ExtractHLabel{%
\def\tagform@##1{{\xdef\:HLabel{\noexpand\tagform@{##1}}}}}
\def\PutHLabel{\:HLabel}
>>>
\section{tex4ht}
\<src note\><<<
<!--\FileName\space from \jobname.tex
(TeX4ht)-->%
>>>
\section{tex4ht}
\<try inline par\><<<
\ShowPar\par{\HCondtrue\noindent}%
>>>
\verb'\endgraf' is safer than \verb'\par', because the latter may be redefined.
For instance, see p 262 in texbook.
\section{latex}
\<0 plain,latex\><<<
\Configure{l} {}
\Configure{L} {}
>>>
\<0 latex\><<<
\Configure{mathellipsis} {}
>>>
\<0 plain\><<<
\Configure{ldots} {}
>>>
\<configure html4-math amsmath\><<<
\Configure{@cdots} {}
\Configure{iint} {}
\Configure{iiint} {}
\Configure{iiiint} {}
\Configure{idotsint} {}
\Configure{doteq} {}
>>>
\section{amsmath}
\<temp hcode accents\><<<
\HCode{&\expandafter \ifx\csname U#2#1\endcsname\relax
#2#1\else \#x\csname U#2#1\endcsname\fi;}%
>>>
\<xmlns\><<<
xmlns="
http://www.w3.org/1999/xhtml"
>>>
\subsection{TeX Engine}
The \verb'\trap:base' is to catch empty bases of exponents like, e.g.,
in \verb'$a^{^b}$'.
\<?\><<<
\def\MathRow#1{%
\Configure{\expandafter\:gobble\string#1*}{*}%
{<|.mrow\Hnewline
class="\expandafter\:gobble\string#1">}{</|.mrow>}%
{\Configure{\expandafter\:gobble\string#1}{}{}{}{}}#1}%
>>>
\<recall dvimath par\><<<
\sv:ignore
>>>
\<sv dvimath par\><<<
\edef\sv:ignore{\if:nopar
\noexpand\IgnorePar\else \noexpand\ShowPar\fi}%
>>>
The \verb'\MathRow' requests a \verb'<|.mrow\Hnewline>...</|.mrow>', instead of the contributions
of \verb'\mathop', \verb'\mathrel',...., for the next parameter.
\subsection{latex.ltx}
Definitions like \verb'\def\mathbf#1{\a:mathbf#1\b:mathbf}'
can't be done on a global level, because \verb'\mathbf' is just
a name of a font. So, for instance, \verb'\bf' expands to \verb'\mathbf',
and so \verb'$\bf R$' indirectly brings up the latter command.
\subsection{plain.sty}
\subsection{Palin + LaTeX}
The default \verb'\left' and \verb'\right' in their default definition
with tex produce multi-part delimiters, from cmex, on large
subformulas. Hence, the `'.' below is needed.
% \def\:tempa{\{}\ifx \:tempa\:DEL \let\:DEL\lbrc: \else
% \def\:tempa{\}}\ifx \:tempa\:DEL \let\:DEL\rbrc: \else
% \def\:tempa{<}\ifx \:tempa\:DEL \def\:DEL{\string<}\else
% \def\:tempa{>}\ifx \:tempa\:DEL \def\:DEL{\string>}%
% \fi\fi\fi\fi }
% \edef\lbrc:{\string{} \edef\rbrc:{\string}}
% \HCode{\string#1;}%
The \verb'\HCode{}' in \verb'\sideset' is for catching superscripts and subscripts
\section{Eqnarray}
Had `BASELINE' before `MIDDLE', but changed to conform with math
in page 252-- in intro to theory book.
\section{Big, BIG, ....}
The
\verb'\special{t4ht@[}...\special{t4ht@]}' gobble the enclosed stuff.
The external pair is provided as grouping mechanism for
sub/super-scripts cases like \verb'\bigl(...\bigr)^x' within dvimath
mode. The \verb'{\HCode{}}' is neded for creating content delimiters
\verb'.' delimiters like in \verb'$\bigl. a_b \bigr)$'; without that mathml
gets something wrong there.
\verb+\bigl{.}+ et al produce empty para,etr , hence the \verb+\:EMPTY+ is a ompensation for such cases.
\section{Accents through `accents' Configurations}
Why originally the accents are defined within a group? (knuth answer
this in the texbook.)
\section{Underline and Overline}
\section{Space Characters}
\subsection{Cases}
\subsection{matrix}
\subsection{pmatrix}
The grouping below is handle the case that the matrix is a base of an exponent.
\section{TeX}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Shared}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\<par del\><<<
!*?: >>>
\<tag of Tag\><<<
cw:>>>
\<tail\><<<
tail>>>
\<addr for Tag and Ref of Sec\><<<
\xdef\:cursec{|<section html addr|>}%
>>>
\<redefine Configure\><<<
\let\:tempd|=\Configure
\def\Configure#1#2{%
\:CheckOption{#1}\if:Option \def\:tempc{#2}\fi}
>>>
\<recall Configure\><<<
\let\Configure|=\:tempd
>>>
\<user's configuration files\><<<
\openin15=tex4ht.usr \ifeof15 \else \closein15
\input tex4ht.usr
\fi
>>>
\<save catcodes\><<<
\expandafter\edef\csname :RestoreCatcodes\endcsname{%
\expandafter\ifx \csname :RestoreCatcodes\endcsname\relax\else
\csname :RestoreCatcodes\endcsname \fi
\catcode`\noexpand :|=\the\catcode`:%
\ifnum \the\catcode`\#=6 \else
\catcode`\noexpand \#|=\the\catcode`\#\fi
\let\expandafter\noexpand\csname :RestoreCatcodes\endcsname|=
\noexpand\UnDefcS}
\catcode`\:|=11 \catcode`\#|=6
>>>
\endinput