summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/iso/iso4ht.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/iso/iso4ht.dtx')
-rw-r--r--Master/texmf-dist/source/latex/iso/iso4ht.dtx1579
1 files changed, 1579 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/iso/iso4ht.dtx b/Master/texmf-dist/source/latex/iso/iso4ht.dtx
new file mode 100644
index 00000000000..68aafddb62c
--- /dev/null
+++ b/Master/texmf-dist/source/latex/iso/iso4ht.dtx
@@ -0,0 +1,1579 @@
+% \iffalse meta-comment
+%
+% Author: Peter Wilson (CUA) (now at: peter.r.wilson@boeing.com)
+%
+% This system is released under the LaTeX Project Public License.
+%
+% This system is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+%
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage{url}
+\newcommand{\makecolonletter}{\catcode`\:11\relax}
+\renewcommand{\MakePrivateLetters}{\makeatletter\makecolonletter}
+\EnableCrossrefs
+\CodelineIndex
+\setcounter{StandardModuleDepth}{1}
+\begin{document}
+ \DocInput{iso4ht.dtx}
+\end{document}
+%</driver>
+%
+% \fi
+%
+% \CheckSum{1914}
+%
+% \DoNotIndex{\',\.,\@M,\@@input,\@addtoreset,\@arabic,\@badmath}
+% \DoNotIndex{\@centercr,\@cite}
+% \DoNotIndex{\@dotsep,\@empty,\@float,\@gobble,\@gobbletwo,\@ignoretrue}
+% \DoNotIndex{\@input,\@ixpt,\@m}
+% \DoNotIndex{\@minus,\@mkboth,\@ne,\@nil,\@nomath,\@plus,\@set@topoint}
+% \DoNotIndex{\@tempboxa,\@tempcnta,\@tempdima,\@tempdimb}
+% \DoNotIndex{\@tempswafalse,\@tempswatrue,\@viipt,\@viiipt,\@vipt}
+% \DoNotIndex{\@vpt,\@warning,\@xiipt,\@xipt,\@xivpt,\@xpt,\@xviipt}
+% \DoNotIndex{\@xxpt,\@xxvpt,\\,\ ,\addpenalty,\addtolength,\addvspace}
+% \DoNotIndex{\advance,\Alph,\alph}
+% \DoNotIndex{\arabic,\ast,\begin,\begingroup,\bfseries,\bgroup,\box}
+% \DoNotIndex{\bullet}
+% \DoNotIndex{\cdot,\cite,\CodelineIndex,\cr,\day,\DeclareOption}
+% \DoNotIndex{\def,\DisableCrossrefs,\divide,\DocInput,\documentclass}
+% \DoNotIndex{\DoNotIndex,\egroup,\ifdim,\else,\fi,\em,\endtrivlist}
+% \DoNotIndex{\EnableCrossrefs,\end,\end@dblfloat,\end@float,\endgroup}
+% \DoNotIndex{\endlist,\everycr,\everypar,\ExecuteOptions,\expandafter}
+% \DoNotIndex{\fbox}
+% \DoNotIndex{\filedate,\filename,\fileversion,\fontsize,\framebox,\gdef}
+% \DoNotIndex{\global,\halign,\hangindent,\hbox,\hfil,\hfill,\hrule}
+% \DoNotIndex{\hsize,\hskip,\hspace,\hss,\if@tempswa,\ifcase,\or,\fi,\fi}
+% \DoNotIndex{\ifhmode,\ifvmode,\ifnum,\iftrue,\ifx,\fi,\fi,\fi,\fi,\fi}
+% \DoNotIndex{\input}
+% \DoNotIndex{\jobname,\kern,\leavevmode,\let,\leftmark}
+% \DoNotIndex{\list,\llap,\long,\m@ne,\m@th,\mark,\markboth,\markright}
+% \DoNotIndex{\month,\newcommand,\newcounter,\newenvironment}
+% \DoNotIndex{\NeedsTeXFormat,\newdimen}
+% \DoNotIndex{\newlength,\newpage,\nobreak,\noindent,\null,\number}
+% \DoNotIndex{\numberline,\OldMakeindex,\OnlyDescription,\p@}
+% \DoNotIndex{\pagestyle,\par,\paragraph,\paragraphmark,\parfillskip}
+% \DoNotIndex{\penalty,\PrintChanges,\PrintIndex,\ProcessOptions}
+% \DoNotIndex{\protect,\ProvidesClass,\raggedbottom,\raggedright}
+% \DoNotIndex{\refstepcounter,\relax,\renewcommand,\reset@font}
+% \DoNotIndex{\rightmargin,\rightmark,\rightskip,\rlap,\rmfamily,\roman}
+% \DoNotIndex{\roman,\secdef,\selectfont,\setbox,\setcounter,\setlength}
+% \DoNotIndex{\settowidth,\sfcode,\skip,\sloppy,\slshape,\space}
+% \DoNotIndex{\symbol,\the,\trivlist,\typeout,\tw@,\undefined,\uppercase}
+% \DoNotIndex{\usecounter,\usefont,\usepackage,\vfil,\vfill,\viiipt}
+% \DoNotIndex{\viipt,\vipt,\vskip,\vspace}
+% \DoNotIndex{\wd,\xiipt,\year,\z@}
+% \DoNotIndex{\HCode}
+%
+% \changes{v0.1}{2000/01/20}{First public release}
+%
+% \def\fileversion{v0.1}
+% \def\filedate{2000/01/20}
+% \newcommand*{\Lpack}[1]{\textsf {#1}} ^^A typeset a package
+% \newcommand*{\Lopt}[1]{\textsf {#1}} ^^A typeset an option
+% \newcommand*{\file}[1]{\texttt {#1}} ^^A typeset a file
+% \newcommand*{\Lcount}[1]{\textsl {\small#1}} ^^A typeset a counter
+% \newcommand*{\pstyle}[1]{\textsl {#1}} ^^A typeset a pagestyle
+% \newcommand*{\Lenv}[1]{\texttt {#1}} ^^A typeset an environment
+% \newcommand*{\texht}{\Lpack{TeX4ht}} ^^A typeset TeX4ht
+%
+% \title{The \Lpack{iso4ht} \texht{} package\thanks{This
+% file has version number \fileversion, last revised
+% \filedate.}}
+%
+% \author{%
+% Peter Wilson\\
+% Catholic University of America \\
+% Now at \texttt{peter.r.wilson@boeing.com}
+% }
+% \date{\filedate}
+% \maketitle
+% \begin{abstract}
+% The \Lpack{iso4ht} package, in conjunction with \texht{}
+% can be used to convert \LaTeX{}
+% \Lpack{iso} class documents into HTML tagged documents.
+% \end{abstract}
+% \tableofcontents
+%
+% \StopEventually{}
+%
+%
+%
+% \section{Introduction}
+%
+% The \Lpack{iso4ht} package can be used in conjunction with
+% the \texht{} system to convert \LaTeX{} \Lpack{iso} class documents
+% into HTML tagged documents. The \Lpack{iso} class is for typesetting
+% ISO standard documents~\cite{PRW96i}.
+%
+% Section~\ref{sec:usc} describes the package and
+% commented source code for the package is in Section~\ref{sec:code}.
+%
+% This manual is typeset according to the conventions of the
+% \LaTeX{} \textsc{docstrip} utility which enables the automatic
+% extraction of the \LaTeX{} macro source files~\cite{GOOSSENS94}.
+%
+% \subsection{Acknowledgement}
+%
+% Development of the \Lpack{iso4ht} package would not have been possible
+% without the help and expertise of Eitan Gurari, and in particular his
+% willingness to put up with the many questions I asked.
+%
+%
+% \section{The \Lpack{iso4ht} package} \label{sec:usc}
+%
+% The \texht{} system has been developed by Eitan Gurari (see Chapter~4
+% and Appendix~B in~\cite{GOOSSENS99}. It is a general purpose conversion
+% system to convert \LaTeX{} tagged documents into HTML (or other *ML)
+% tagged documents. \texht{} can be obtained from
+% \url{http://www.cis.ohio-state.edu/~gurari/TeX4ht/mn.html}.
+% The \Lpack{iso4ht}
+% package is not guaranteed to work with versions of \texht{} earlier
+% than mid-January 2000. At the time of writing, the default \texht{}
+% distribution was dated mid-1999. The latest version of \texht{} is obtainable
+% from \url{http://www.cis.ohio-state.edu/~gurari/TeX4ht/bugfixes.html}.
+%
+% To use the \Lpack{iso4ht} package, just process the \LaTeX{} document
+% as you would any other under \texht. That is, either call the |ht| script
+% a document starting like:
+% \begin{verbatim}
+% \documentclass[...]{isov2}
+% \usepackage[...]{tex4ht}
+% ...
+% \end{verbatim}
+% or call the |htlatex| script on a document without the
+% |\usepackage[...]{tex4ht}| line.
+%
+%
+% \section{The package code} \label{sec:code}
+%
+% The following code is based on \Lpack{article.4ht}, \Lpack{html0.4ht},
+% \Lpack{html32.4ht} and \Lpack{html4.4ht}, all written by Eitan Gurari.
+%
+% Most of the necessary work already exists in \Lpack{latex.4ht}, which
+% sets up the \LaTeX{} kernel code. \Lpack{article.4ht} provides the
+% setup for the \Lpack{article} class, and \Lpack{html0.4ht},
+% \Lpack{html32.4ht} and \Lpack{html4.4ht} provide the HTML option-related
+% configurations.
+%
+% The \Lpack{iso} class was originally based on the \Lpack{article} class,
+% so \Lpack{isov2.4ht} is in turn based on \Lpack{article.4ht} (although little
+% code is actually reused). The HTML option-related configurations are
+% embedded in \Lpack{isov2.4ht} instead of being supplied as seperate files.
+%
+% \changes{v0.1}{2000/01/20}{First public release}
+%
+% Announce the name and version of the package.
+% \begin{macrocode}
+%<*usc>
+\typeout{[isov2.4ht 2000/01/20 version v0.1]}
+
+% \end{macrocode}
+%
+% \subsection{Setup and hooks}
+%
+% The first major part of the code deals with setting up for configuring
+% the \LaTeX{} commands and environments, which forms the second major
+% portion of the code.
+%
+% Setting up may involve adding hooks into commands, either by redefining
+% them or, in simpler cases prepending and/or appending code before and/or
+% after the original code. It can also involve specifying that commands
+% are configurable.
+%
+% \subsubsection{Table of contents}
+%
+% What follows is a revised version of the \Lpack{article.4ht} setup
+% for the |\tableofcontents|, |listoffigures| and |\listoftables| commands.
+% Parctically all of the revision has to do with replacing \Lpack{article}
+% sectioning commands (i.e., |\section|, |\subsection|, etc.)
+% with the \Lpack{iso}
+% sectioning commands (i.e., |\clause|, |\sclause|, etc.
+%).
+% \DescribeMacro{\listof}
+% \begin{macrocode}
+\NewConfigure{listof}{6}
+
+% \end{macrocode}
+%
+% \DescribeMacro{\tableofcontents}
+% The revised version of \Lpack{article.4ht} |\tableofcontents|
+% configuration setup.
+%
+% Do the |tocdepth| setup.
+% \begin{macrocode}
+\def\:tableofcontents{\futurelet\:temp\:TOC}
+\edef\:TOC{%
+ \noexpand\ifx [\noexpand\:temp
+ \noexpand\expandafter\noexpand\:TableOfContents
+ \noexpand\else
+ \noexpand\Auto:ent{%
+ \ifnum 1>\c@tocdepth\else clause,fibicl@use,likefibicl@use,normannex,infannex,repannex,\fi
+\ifnum 2>\c@tocdepth \else sclause,\fi
+\ifnum 3>\c@tocdepth \else ssclause,\fi
+\ifnum 4>\c@tocdepth \else sssclause,\fi
+\ifnum 5>\c@tocdepth \else ssssclause,\fi
+\ifnum 6>\c@tocdepth \else sssssclause,\fi
+UnDFexyz}%
+ \noexpand\fi}
+
+\def\Auto:ent#1{%
+ \edef\auto:toc{\noexpand\:TableOfContents[\ifx \auto:toc\:UnDef
+ #1\else \auto:toc \fi]} \auto:toc
+ \global\let\auto:toc\:UnDef }
+
+% \end{macrocode}
+%
+% Specify the various kinds of entries in the ToC.
+% \begin{macrocode}
+\def\tocnormannex#1#2#3{\par\annexname\ \toc:num{annex}{#1 (\normativename)}{#2}\par}%
+\def\toclikenormannex#1#2#3{\par\:SPAN{likenormannexToc}{#2}\par}%
+\def\tocinfannex#1#2#3{\par\annexname\ \toc:num{infannex}{#1 (\informativename)}{#2}\par}%
+\def\toclikeinfannex#1#2#3{\par\:SPAN{likeinfannexToc}{#2}\par}%
+\def\tocrepannex#1#2#3{\par\annexname\ \toc:num{annex}{#1}{#2}\par}%
+\def\toclikerepannex#1#2#3{\par\:SPAN{likerepannexToc}{#2}\par}%
+\def\tocfibicl@use#1#2#3{\par\:SPAN{fibicl@useToc}{#2}\par}%
+\def\toclikefibicl@use#1#2#3{\par\:SPAN{likefibicl@useToc}{#2}\par}%
+\def\tocclause#1#2#3{\par\toc:num{clause}{#1}{#2}\par}%
+\def\toclikeclause#1#2#3{\par\:SPAN{likeclauseToc}{#2}\par}%
+\def\tocsclause#1#2#3{\par\ \toc:num{sclause}{#1}{#2}\par}
+\def\toclikesclause#1#2#3{\par\ \:SPAN{likesclauseToc}{#2}\par}
+\def\tocssclause#1#2#3{\par
+ \ \ \toc:num{ssclause}{#1}{#2}\par}
+\def\toclikessclause#1#2#3{\par
+ \ \ \:SPAN{likessclauseToc}{#2}\par}
+\def\tocsssclause#1#2#3{\par\ \ \toc:num{sssclause}{#1}{#2}\par}
+\def\toclikesssclause#1#2#3{\par\ \ \:SPAN{likesssclauseToc}{#2}\par}
+\def\tocssssclause#1#2#3{\par
+ \ \ \ \ \toc:num{ssssclause}{#1}{#2}\par}
+\def\toclikessssclause#1#2#3{\par
+ \ \ \ \ \:SPAN{likessssclauseToc}{#2}\par}
+\def\tocsssssclause#1#2#3{\par
+ \ \ \ \ \ \toc:num{sssssclause}{#1}{#2}\par}
+\def\toclikesssssclause#1#2#3{\par
+ \ \ \ \ \ \:SPAN{likesssssclauseToc}{#2}\par}
+% \end{macrocode}
+% There is also a special entry to cater for the |\title| command
+% (see page~\pageref{titlehooks}).
+% \begin{macrocode}
+\def\toctitleclause#1#2#3{\par\toc:num{titleclause}{#1}{#2}\par}%
+\def\tocliketitleclause#1#2#3{\par\:SPAN{liketitleclauseToc}{#2}\par}%
+
+% \end{macrocode}
+% The next bit is a straight copy of original \texht{} code.
+% \begin{macrocode}
+\def\toc:num#1#2#3{\def\:temp{#1#2}\:SPAN{#1Toc}{\ifx \:temp\empty \else
+ #2 \fi #3}}
+\def\:tocs{\noexpand\:tableofcontents}
+\pend:defIII\addcontentsline{%
+ \def\:temp{##1}\def\:tempa{toc}\ifx \:temp\:tempa
+ \gHAdvance\TitleCount 1 \fi }
+\def\@dottedtocline#1#2#3#4#5{\hbox{\def\numberline##1{\e:listof
+ ##1\f:listof}\c:listof#4\d:listof}\ignorespaces}
+
+% \end{macrocode}
+%
+% Setup the |\@starttoc| command.
+% \begin{macrocode}
+\def\@starttoc#1{%
+ \begingroup
+ \makeatletter \Configure{cite}{}{}%
+ \def\:temp{#1}\def\:tempa{toc}%
+ \a:listof\par
+ \@input{\jobname.\ifx \:temp\:tempa otc\else #1\fi}%
+ \b:listof
+ \if@filesw
+ \expandafter\expandafter\csname
+ newwrite\endcsname\csname tf@#1\endcsname
+ \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
+ \fi
+ \global\@nobreakfalse
+ \endgroup}
+
+% \end{macrocode}
+%
+% The next chunk of code only applies for HTML.
+% \begin{macrocode}
+\ifHtml
+ \NewConfigure{tableofcontents*}[1]{\edef\auto:toc{#1}%
+ \ifx \au:StartSec\:UnDef
+ \let\au:StartSec\:StartSec
+ \def\:StartSec{\:tableofcontents
+ \global\let\auto:toc\:UnDef \:StartSec}
+ \pend:def\:tableofcontents{\gdef\:StartSec{\au:StartSec}}
+ \fi
+}
+
+% \end{macrocode}
+%
+% Define the various levels at which the document may be cut into seperate
+% files (|\CutAt|) and at which points a ToC may be produced (|\TocAt|). \\
+% \textbf{NOTE:} This may require modification to deal with the |\title|.
+%
+% Cut at the clause (and annex) level.
+% \begin{macrocode}
+ \def\:tempa{
+ \CutAt{clause,likeclause,%
+ normannex,infannex,repannex,fibicl@use,likefibicl@use}
+ \CutAt{likeclause,clause,%
+ normannex,infannex,repannex,fibicl@use,likefibicl@use}
+ \Configure{tableofcontents*}{clause,likeclause,%
+ normannex,infannex,repannex,fibicl@use,likefibicl@use}
+}
+
+% \end{macrocode}
+%
+% Cut at the clause and subclause levels.
+% \begin{macrocode}
+\def\:tempb{
+ \TocAt*{clause,/likeclause,sclause,likesclause,%
+ normannex,infannex,repannex,fibicl@use,likefibicl@use}
+ \TocAt*{likeclause,/clause,sclause,likesclause,%
+ normannex,infannex,repannex,fibicl@use,likefibicl@use}
+ \CutAt{clause,likeclause,%
+ normannex,infannex,repannex,fibicl@use,likefibicl@use}
+ \CutAt{likeclause,clause,%
+ normannex,infannex,repannex,fibicl@use,likefibicl@use}
+ \Configure{tableofcontents*}{clause,likeclause,sclause,likesclause,%
+ ssclause,likessclause,%
+ normannex,infannex,repannex,fibicl@use,likefibicl@use}
+}
+
+% \end{macrocode}
+%
+% Cut at the clause, subclause, and subsubclause levels.
+% \begin{macrocode}
+\def\:tempc{
+ \TocAt*{clause,/likeclause,sclause,likesclause,ssclause,likessclause,%
+ normannex,infannex,repannex,fibicl@use,likefibicl@use}
+ \TocAt*{likeclause,/clause,sclause,likesclause,ssclause,likessclause,%
+ normannex,infannex,repannex,fibicl@use,likefibicl@use}
+ \CutAt{clause,likeclause,sclause,likesclause,%
+ normannex,infannex,repannex,fibicl@use,likefibicl@use}
+ \CutAt{likeclause,clause,sclause,likesclause,%
+ normannex,infannex,repannex,fibicl@use,likefibicl@use}
+ \Configure{tableofcontents*}{clause,likeclause,sclause,likesclause,%
+ ssclause,likessclause,sssclause,likesssclause,%
+ normannex,infannex,repannex,fibicl@use,likefibicl@use}
+}
+
+% \end{macrocode}
+%
+% Cut at the clause, subclause, subsubclause, and subsubsubclause levels.
+% \begin{macrocode}
+\def\:tempd{
+ \TocAt*{clause,/likeclause,sclause,likesclause,ssclause,likessclause,%
+ sssclause,likesssclause,%
+ normannex,infannex,repannex,fibicl@use,likefibicl@use}
+ \TocAt*{likeclause,/clause,sclause,likesclause,ssclause,likessclause,%
+ sssclause,likesssclause,%
+ normannex,infannex,repannex,fibicl@use,likefibicl@use}
+ \CutAt{clause,likeclause,sclause,likesclause,ssclause,likessclause,%
+ normannex,infannex,repannex,fibicl@use,likefibicl@use}
+ \CutAt{likeclause,clause,sclause,likesclause,ssclause,likessclause,%
+ normannex,infannex,repannex,fibicl@use,likefibicl@use}
+ \Configure{tableofcontents*}{clause,likeclause,sclause,likesclause,%
+ ssclause,likessclause,sssclause,likesssclause,%
+ ssssclause,likessssclause,%
+ normannex,infannex,repannex,fibicl@use,likefibicl@use}
+}
+
+% \end{macrocode}
+%
+% Now pick the cut levels appropriate for the cutting option.
+% Option 4 generates the most cuts (down to subsubsubclauses) and option 1
+% one the least (clauses and annexes only).
+% \begin{macrocode}
+\:CheckOption{4}
+ \if:Option
+ \:tempa \:tempb \:tempc \:tempd
+ \else\:CheckOption{3}
+ \if:Option
+ \:tempa \:tempb \:tempc
+ \else\:CheckOption{2}
+ \if:Option
+ \:tempa \:tempb
+ \else\:CheckOption{1}
+ \if:Option
+ \:tempa
+ \fi
+ \fi
+ \fi
+ \fi
+
+\fi % end ifHtml
+
+% \end{macrocode}
+% That ends the HTML specific code.
+%
+% \DescribeMacro{\listoffigures}
+% \DescribeMacro{\listoftables}
+% The following code is copied from \Lpack{article.4ht}.
+% \begin{macrocode}
+ \pend:def\listoffigures{\begingroup \a:listoffigures
+ \def\@starttoc{\:tableofcontents[lof]\:gobble}}
+\append:def\listoffigures{\b:listoffigures \endgroup}
+\pend:def\listoftables{\begingroup \a:listoftables
+ \def\@starttoc{\:tableofcontents[lot]\:gobble}}
+\append:def\listoftables{\b:listoftables \endgroup}
+
+\NewConfigure{listoffigures}{2}
+\NewConfigure{listoftables}{2}
+
+\def\toclot#1#2#3{\par\ \toc:num{table}{#1}{#2}\par}
+\def\toclof#1#2#3{\par\ \toc:num{figure}{#1}{#2}\par}
+
+% \end{macrocode}
+%
+%
+% \subsubsection{Sectioning commands}
+%
+% This part of the code provides the setup for the sectioning commands.
+%
+% For an ISO document, the Title comes after the ToC, Foreword and
+% Introduction.\label{titlehooks}
+% The \Lpack{iso} |\title| command should really end
+% any previous sectioning commands, and the easiest way to manage this
+% seems to be by redefining the |\title| command in terms of a sectioning
+% command. In order to do this, some new commands are required and some
+% \Lpack{iso} commands redefined.
+%
+% Eventually, it is the sectioning command that gets configured instead
+% of the |\title| command.
+% Another reason for doing things this way is that elsewhere, for
+% a package under the \Lpack{iso} class, I will
+% be configuring a different |\title| command and I will be able to use
+% this as a basis for that configuration.
+%
+% \DescribeMacro{\introelement}
+% \DescribeMacro{\compelement}
+% These require redefining as, for reasons I don't understand, the system
+% falls over when it tries to process the \Lpack{iso} |\isoemptystring|
+% command. This is replaced by a more direct test.
+% \begin{macrocode}
+\renewcommand{\introelement}[1]{\ifx\empty#1\else {#1 ---\newline}\fi}
+\renewcommand{\compelement}[1]{\ifx\empty#1\else { ---\newline #1}\fi}
+
+% \end{macrocode}
+%
+% \DescribeMacro{\titleclause}
+% A `clause' for typesetting (in \texht{} only) the title. This should make
+% no entry in the ToC. There is no typeset number, so life is a bit simpler
+% than when normally defining sectioning commands.
+% \begin{macrocode}
+\newcommand{\titleclause}{%
+ \@startsection{titleclause}{100}% large level to avoid adding to ToC
+ {\z@}%
+ {\beforecskip}%
+ {\aftercskip}%
+ {\raggedright\Tfont\bfseries}}
+
+% \end{macrocode}
+%
+% \DescribeMacro{\title}
+% Now redefine the original |\title| command in terms of |\titleclause*|.
+% \begin{macrocode}
+\renewcommand{\title}[3]{%
+ \setcounter{clause}{0}
+ \gdef\thetitle{\introelement{#1} %
+ \mainelement{#2} %
+ \compelement{#3}}
+ \titleclause*{\thetitle}}
+
+% \end{macrocode}
+%
+% Do the |\title| `clause' hooks.
+% \begin{macrocode}
+\let\no@titleclause\titleclause
+\Def:Section\titleclause{}{#1}
+\let\no:titleclause\titleclause
+\def\titleclause{\rdef:sec{titleclause}}
+\Def:Section\liketitleclause{}{#1}
+\let\:liketitleclause\liketitleclause
+\let\liketitleclause\:UnDef
+
+% \end{macrocode}
+%
+%
+% Add the hooks for the normal sectioning commands. This is a revision of code
+% in \Lpack{article.4ht}.
+% \begin{macrocode}
+\let\no@clause\clause
+\Def:Section\clause{\ifnum \c:secnumdepth>\c@secnumdepth \else
+ \theclause \fi}{#1}
+\let\no:clause\clause
+\def\clause{\rdef:sec{clause}}
+\Def:Section\likeclause{}{#1}
+\let\:likeclause\likeclause
+\let\likeclause\:UnDef
+
+\let\no@sclause\sclause
+\Def:Section\sclause{\ifnum \c:secnumdepth>\c@secnumdepth \else
+ \thesclause \fi}{#1}
+\let\no:sclause\sclause
+\def\sclause{\rdef:sec{sclause}}
+\Def:Section\likesclause{}{#1}
+\let\:likesclause\likesclause
+\let\likesclause\:UnDef
+
+\let\no@ssclause\ssclause
+\Def:Section\ssclause{\ifnum \c:secnumdepth>\c@secnumdepth \else
+ \thessclause \fi}{#1}
+\let\no:ssclause\ssclause
+\def\ssclause{\rdef:sec{ssclause}}
+\Def:Section\likessclause{}{#1}
+\let\:likessclause\likessclause
+\let\likessclause\:UnDef
+
+\let\no@sssclause\sssclause
+\Def:Section\sssclause{\ifnum \c:secnumdepth>\c@secnumdepth \else
+ \thesssclause \fi}{#1}
+\let\no:sssclause\sssclause
+\def\sssclause{\rdef:sec{sssclause}}
+\Def:Section\likesssclause{}{#1}
+\let\:likesssclause\likesssclause
+\let\likesssclause\:UnDef
+
+\let\no@ssssclause\ssssclause
+\Def:Section\ssssclause{\ifnum \c:secnumdepth>\c@secnumdepth \else
+ \thessssclause \fi}{#1}
+\let\no:ssssclause\ssssclause
+\def\ssssclause{\rdef:sec{ssssclause}}
+\Def:Section\likessssclause{}{#1}
+\let\:likessssclause\likessssclause
+\let\likessssclause\:UnDef
+
+\let\no@sssssclause\sssssclause
+\Def:Section\sssssclause{\ifnum \c:secnumdepth>\c@secnumdepth \else
+ \thesssssclause \fi}{#1}
+\let\no:sssssclause\sssssclause
+\def\sssssclause{\rdef:sec{sssssclause}}
+\Def:Section\likesssssclause{}{#1}
+\let\:likesssssclause\likesssssclause
+\let\likesssssclause\:UnDef
+
+\let\no@fibicl@use\fibicl@use
+\Def:Section\fibicl@use{}{#1}
+\let\no:fibicl@use\fibicl@use
+\def\fibicl@use{\rdef:sec{fibicl@use}}
+\Def:Section\likefibicl@use{}{#1}
+\let\:likefibicl@use\likefibicl@use
+\let\likefibicl@use\:UnDef
+
+\def\@normannex#1{%
+ \tocskip{\tocentryskip}
+ \SkipRefstepAnchor
+ \addcontentsline{toc}{annex}{\annexname\space\theannex\space(\normativename)\space#1}%
+ \csname @endnormannex\endcsname}
+
+\let\:tempb\normannex
+\Def:Section\normannex{\theannex}{#1}
+\let\:normannex\normannex
+\let\normannex\:tempb
+\let\no@normannex\@normannex
+\def\@normannex#1{%
+ {\let\addcontentsline\:gobbleIII\no@normannex{#1}}%
+ \HtmlEnv \Toc:Title{#1}\:normannex{#1}}
+
+\def\@infannex#1{%
+ \tocskip{\tocentryskip}
+ \SkipRefstepAnchor
+ \addcontentsline{toc}{annex}{\annexname\space\theannex\space(\informativename)\space#1}%
+ \csname @endinfannex\endcsname}
+
+\let\:tempb\infannex
+\Def:Section\infannex{\theannex}{#1}
+\let\:infannex\infannex
+\let\infannex\:tempb
+\let\no@infannex\@infannex
+\def\@infannex#1{%
+ {\let\addcontentsline\:gobbleIII\no@infannex{#1}}%
+ \HtmlEnv \Toc:Title{#1}\:infannex{#1}}
+
+\def\@repannex#1{%
+ \tocskip{\tocentryskip}
+ \SkipRefstepAnchor
+ \addcontentsline{toc}{annex}{\annexname\space\theannex\space#1}%
+ \csname @endrepannex\endcsname}
+
+\let\:tempb\repannex
+\Def:Section\repannex{\theannex}{#1}
+\let\:repannex\repannex
+\let\repannex\:tempb
+\let\no@repannex\@repannex
+\def\@repannex#1{%
+ {\let\addcontentsline\:gobbleIII\no@repannex{#1}}%
+ \HtmlEnv \Toc:Title{#1}\:repannex{#1}}
+
+% \end{macrocode}
+%
+% Specify which sectioning commands end which kinds of section.
+% \begin{macrocode}
+\Configure{endtitleclause}
+ {clause,likeclause,fibicl@use,likefibicl@use,normannex,infannex,repannex}
+\Configure{endliketitleclause}
+ {clause,likeclause,fibicl@use,likefibicl@use,normannex,infannex,repannex}
+
+\Configure{endclause}
+ {likeclause,fibicl@use,likefibicl@use,normannex,infannex,repannex}
+\Configure{endlikeclause}
+ {clause,fibicl@use,likefibicl@use,normannex,infannex,repannex}
+
+\Configure{endsclause}
+ {likesclause,%
+ clause,likeclause,fibicl@use,likefibicl@use,normannex,infannex,repannex}
+\Configure{endlikesclause}
+ {sclause,%
+ clause,likeclause,fibicl@use,likefibicl@use,normannex,infannex,repannex}
+
+\Configure{endssclause}
+ {likessclause,sclause,likesclause,%
+ clause,likeclause,fibicl@use,likefibicl@use,normannex,infannex,repannex}
+\Configure{endlikessclause}
+ {ssclause,sclause,likesclause,%
+ clause,likeclause,fibicl@use,likefibicl@use,normannex,infannex,repannex}
+
+\Configure{endsssclause}
+ {likesssclause,ssclause,likessclause,sclause,likesclause,%
+ clause,likeclause,fibicl@use,likefibicl@use,normannex,infannex,repannex}
+\Configure{endlikesssclause}
+ {sssclause,ssclause,likessclause,sclause,likesclause,%
+ clause,likeclause,fibicl@use,likefibicl@use,normannex,infannex,repannex}
+
+\Configure{endssssclause}
+ {likessssclause,likesssclause,ssclause,likessclause,sclause,likesclause,%
+ clause,likeclause,fibicl@use,likefibicl@use,normannex,infannex,repannex}
+\Configure{endlikessssclause}
+ {ssssclause,likesssclause,ssclause,likessclause,sclause,likesclause,%
+ clause,likeclause,fibicl@use,likefibicl@use,normannex,infannex,repannex}
+
+\Configure{endfibicl@use}{fibicl@use,endlikefibicl@use,clause,likeclause}
+\Configure{endlikefibicl@use}{fibicl@use,endlikefibicl@use,clause,likeclause}
+
+\Configure{endnormannex}{normannex,infannex,repannex,fibicl@use,likefibicl@use}
+\Configure{endinfannex}{normannex,infannex,repannex,fibicl@use,likefibicl@use}
+\Configure{endrepannex}{normannex,infannex,repannex,fibicl@use,likefibicl@use}
+
+% \end{macrocode}
+%
+% \subsubsection{Miscellaneous}
+%
+% \DescribeMacro{\caption}
+% \DescribeMacro{\@makecaption}
+% We have to add configuration hooks and code for captions.
+% \begin{macrocode}
+\NewConfigure{caption}[4]{\c:def\cptA:{#1}\c:def\cptB:{#2}%
+ \c:def\cptC:{#3}\c:def\cptD:{#4}}
+\long\def\@makecaption#1#2{%
+ {\cptA: \cap:ref{#1}%
+\cptB:}{\cptC:{#2}\cptD:}}
+\pend:def\caption{\SkipRefstepAnchor}
+
+% \end{macrocode}
+%
+% \DescribeMacro{\theindex}
+% |\theindex| is redefined to cater for the difference between printed
+% documents with page numbers and HTML documents. This is a copy of the code
+% in \Lpack{article.4ht}.
+% \begin{macrocode}
+\long\def\c:theindex:#1#2#3#4#5#6#7#8#9{%
+ \def\theindex{%
+ \def\idx:item{\SaveEverypar\everypar{}#1}%
+ \def\endtheindex{\idx:item#2\RecallEverypar}%
+ \def\item{\idx:item\let\index\@gobble #3\def\idx:item{#4}}%
+ \def\subitem{\idx:item\let\index\@gobble #5\def\idx:item{#6}}%
+ \def\subsubitem{\idx:item\let\index\@gobble #7\def\idx:item{#8}}}%
+ \def\indexspace{\idx:item#9\let\idx:item\empty}}
+
+% \end{macrocode}
+%
+%
+% \DescribeEnv{quote}
+% \DescribeEnv{quotation}
+% A copy of the code from \Lpack{article.4ht}.
+% \begin{macrocode}
+\append:def\quote{\par\@totalleftmargin\z@}
+\append:def\quotation{\a:quotation\par\@totalleftmargin\z@}
+\NewConfigure{quotation}{1}
+
+% \end{macrocode}
+%
+%
+% \DescribeMacro{\thefootnote}
+% The default \texht{} treatment of footnotes is to put each one into a
+% seperate file. In the \Lpack{iso} case I want to have the footnote text
+% in the same file as the body of the document. Eitan Gurari suggested
+% the method implemented here to override the default
+% (see also page~\pageref{footpage}).
+% \begin{macrocode}
+\renewcommand{\thefootnote}{\arabic{footnote}\csname PRNT\endcsname}
+
+% \end{macrocode}
+%
+%
+% \subsection{Configuration}
+%
+% All, or nearly all, configurations depend on the HTML level option chosen.
+% Typically, html0 results in empty or null values of the hooks. html32 has
+% some simple hook vaules, while html4 are the most complex.
+%
+% \subsubsection{Table of contents}
+%
+% The ToC configuration is basically a copy of the relevant code from
+% \Lpack{html0.4ht}, \Lpack{html32.4ht} and \Lpack{html4.4ht}, from the
+% \texttt{article} section of each of those.
+%
+% \begin{macro}{\listof}
+% \begin{macro}{\lof}
+% \begin{macro}{\lot}
+% I'm not sure what |\listof| does, but it is related to the ToC, LoF and LoT.
+% \begin{macrocode}
+\:CheckOption{0.0}
+\if:Option
+ %%%% Do html0
+ \ConfigureToc{lof}{\empty}{ }{}{}
+ \ConfigureToc{lot}{\empty}{ }{}{}
+\else
+ \:CheckOption{3.2}
+ \if:Option
+ %%%% Do html32
+ {\Configure{Needs}{Font\string_Size: #1}\ifcase \@ptsize
+ \or \Needs{11}\or \Needs{12}\else \fi}
+ \Configure{listof}{}{}{}{\HCode{<br\xml:empty>}}{}{}
+ \ConfigureToc{lof}{\empty}{\ }{}{\HCode{<br\xml:empty>}}
+ \ConfigureToc{lot}{\empty}{\ }{}{\HCode{<br\xml:empty>}}
+ \else
+ %%%% Do html4
+ {\Configure{Needs}{Font\string_Size: #1}\ifcase \@ptsize
+ \or \Needs{11}\or \Needs{12}\else \fi}
+ \Configure{listof}{}{}{}{\HCode{<br\xml:empty>}}{}{}
+ \ConfigureToc{lof}
+ {\HCode{<span class="lofToc">}}{\ }{}{\HCode{</span><br\xml:empty>}}
+ \ConfigureToc{lot}
+ {\HCode{<span class="lotToc">}}{\ }{}{\HCode{</span><br\xml:empty>}}
+ \fi
+\fi
+
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Sectioning commands}
+%
+% Configure the sectioning commands, HTML option dependent.
+%
+% \begin{macro}{\titleclause}
+% \begin{macro}{\titleclause*}
+% \begin{macro}{\clause}
+% \begin{macro}{\clause*}
+% \begin{macro}{\sclause}
+% \begin{macro}{\sclause*}
+% \begin{macro}{\ssclause}
+% \begin{macro}{\ssclause*}
+% \begin{macro}{\sssclause}
+% \begin{macro}{\sssclause*}
+% \begin{macro}{\ssssclause}
+% \begin{macro}{\ssssclause*}
+% \begin{macro}{\sssssclause}
+% \begin{macro}{\sssssclause*}
+% \begin{macro}{\fibicl@use}
+% \begin{macro}{\fibicl@use*}
+% \begin{macro}{\normannex}
+% \begin{macro}{\infannex}
+% \begin{macro}{\repannex}
+% This code is based on the \Lpack{article} sectioning configuration. In most
+% cases only the sectioning names have been changed. The annexes have a
+% style of their own, though.
+% \begin{macrocode}
+\:CheckOption{0.0}
+\if:Option
+% \end{macrocode}
+%
+% HTML option 0.0
+% \begin{macrocode}
+ %%%% Do html0
+ \Configure{titleclause}{}{}{}{}
+ \Configure{liketitleclause}{}{}{}{}
+ \Configure{clause}{}{}{\theclause\space}{}
+ \Configure{likeclause}{}{}{}{}
+ \Configure{sclause}{}{}{\thesclause\space}{}
+ \Configure{likesclause}{}{}{}{}
+ \Configure{ssclause}{}{}{\thessclause\space}{}
+ \Configure{likessclause}{}{}{}{}
+ \Configure{sssclause}{}{}{\thesssclause\space}{}
+ \Configure{likesssclause}{}{}{}{}
+ \Configure{ssssclause}{}{}{\thessssclause\space}{}
+ \Configure{likessssclause}{}{}{}{}
+ \Configure{sssssclause}{}{}{\thesssssclause\space}{}
+ \Configure{likesssssclause}{}{}{}{}
+ \Configure{fibicl@use}{}{}{}{}
+ \Configure{likefibicl@use}{}{}{}{}
+ \Configure{normannex}{}{}
+ {\annexname~\theannex~(\normativename)\space}{}
+ \Configure{infannex}{}{}
+ {\annexname~\theannex~(\informativename)\space}{}
+ \Configure{repannex}{}{}
+ {\annexname~\theannex\space}{}
+
+\else
+ \:CheckOption{3.2}
+ \if:Option
+% \end{macrocode}
+%
+% HTML option 3.2
+% \begin{macrocode}
+ %%%% Do html3
+ \Configure{titleclause}{}{}
+ {\IgnorePar\HCode{<h1 class="titleHead">}}
+ {\HCode{</h1>}\NoIndent \par}
+ \Configure{titleclauseTITLE+}{#1}
+ \Configure{liketitleclause}{}{}
+ {\IgnorePar\HCode{<h1 class="titleHead">}}
+ {\HCode{</h1>}\NoIndent \par}
+
+ \Configure{clause}{}{}
+ {\IgnorePar\HCode{<h3 class="clauseHead">}
+ \ifnum \c:secnumdepth>\c@secnumdepth
+ \else \theclause \space \fi}
+ {\HCode{</h3>}\NoIndent \par}
+ \Configure{clauseTITLE+}{\theclause\space#1}
+ \Configure{likeclause}{}{}
+ {\IgnorePar\HCode{<h3 class="likeclauseHead">}}
+ {\HCode{</h3>}\NoIndent \par}
+
+ \Configure{sclause}{}{}
+ {\bgroup \IgnorePar\HCode{<h4 class="sclauseHead">}
+ \ifnum \c:secnumdepth>\c@secnumdepth
+ \else \thesclause \space \fi}
+ {\HCode{</h4>}\NoIndent\egroup}
+ \Configure{sclauseTITLE+}{\thesclause \space#1}
+ \Configure{likesclause}{}{}
+ {\bgroup \IgnorePar\HCode{<h4 class="likesclauseHead">}}
+ {\HCode{</h4>}\NoIndent\egroup}
+
+ \Configure{ssclause}{}{}
+ {\bgroup \IgnorePar\HCode{<h5 class="ssclauseHead">}
+ \ifnum \c:secnumdepth>\c@secnumdepth
+ \else \thessclause \space \fi}
+ {\HCode{</h5>}\NoIndent\egroup}
+ \Configure{likessclause}{}{}
+ {\bgroup \IgnorePar\HCode{<h5 class="likessclauseHead">}}
+ {\HCode{</h5>}\NoIndent\egroup}
+ \Configure{ssclauseTITLE+}{\thessclause \space#1}
+
+ \Configure{sssclause}{}{}
+ {\ShowPar\NoIndent\HCode{<span class="sssclauseHead">}\begingroup\bf
+ \thesssclause\space}
+ {\endgroup\HCode{</span>}\IgnorePar}
+ \Configure{likesssclause}{}{}
+ {\ShowPar\NoIndent\HCode{<span class="likesssclauseHead">}}
+ {\HCode{</span>}\IgnorePar}
+ \Configure{sssclauseTITLE+}{\thesssclause \space#1}
+
+ \Configure{ssssclause}{}{}
+ {\ShowPar\HCode{<span class="ssssclauseHead">}\begingroup\bf
+ \thessssclause\space}
+ {\endgroup\HCode{</span>}\IgnorePar}
+ \Configure{likessssclause}{}{}
+ {\ShowPar\HCode{<span class="likssssclauseHead">}\begingroup\bf}
+ {\endgroup\HCode{</span>}\IgnorePar}
+ \Configure{ssssclauseTITLE+}{\thessssclause \space#1}
+
+ \Configure{sssssclause}{}{}
+ {\ShowPar\HCode{<span class="sssssclauseHead">}\begingroup\bf
+ \thesssssclause\space}
+ {\endgroup\HCode{</span>}\IgnorePar}
+ \Configure{likesssssclause}{}{}
+ {\ShowPar\HCode{<span class="liksssssclauseHead">}\begingroup\bf}
+ {\endgroup\HCode{</span>}\IgnorePar}
+ \Configure{sssssclauseTITLE+}{\thesssssclause \space#1}
+
+ \Configure{fibicl@use}{}{}
+ {\IgnorePar\HCode{<h3 class="fibicl@useHead">}}
+ {\HCode{</h3>}\NoIndent \par}
+ \Configure{fibicl@useTITLE+}{#1}
+ \Configure{likefibicl@use}{}{}
+ {\IgnorePar\HCode{<h3 class="likefibicl@useHead">}}
+ {\HCode{</h3>}\NoIndent \par}
+
+ \Configure{normannex}{}{}
+ {\IgnorePar\HCode{<h3 class="normannexHead">}
+ \annexname\ \theannex\ (\normativename)\HCode{<BR\xml:empty>}}
+ {\HCode{</h3>}\NoIndent \par}
+ \Configure{normannexTITLE+}{\annexname\space \theannex\space (\normativename)\space #1}
+
+ \Configure{infannex}{}{}
+ {\IgnorePar\HCode{<h3 class="infannexHead">}
+ \annexname\ \theannex\ (\informativename)\HCode{<BR\xml:empty>}}
+ {\HCode{</h3>}\NoIndent \par}
+ \Configure{infannexTITLE+}{\annexname\space \theannex\space (\informativename)\space #1}
+
+ \Configure{repannex}{}{}
+ {\IgnorePar\HCode{<h3 class="repannexHead">}
+ \annexname\ \theannex\ \HCode{<BR\xml:empty>}}
+ {\HCode{</h3>}\NoIndent \par}
+ \Configure{repannexTITLE+}{\annexname\space \theannex\space #1}
+
+ \else
+% \end{macrocode}
+%
+% HTML default option (4.0)
+% \begin{macrocode}
+ %%%% Do html4
+ \Configure{titleclause}{}{}
+ {\IgnorePar \EndP\IgnorePar\HCode{<h1 class="titleHead">}}
+ {\HCode{</h1>}\NoIndent \par}
+ \Configure{titleclauseTITLE+}{#1}
+ \Configure{liketitleclause}{}{}
+ {\IgnorePar \EndP\IgnorePar\HCode{<h1 class="titleHead">}}
+ {\HCode{</h1>}\NoIndent \par}
+
+ \Configure{clause}{}{}
+ {\IgnorePar \EndP\IgnorePar\HCode{<h3 class="clauseHead">}
+ \ifnum \c:secnumdepth>\c@secnumdepth
+ \else \theclause \space \fi}
+ {\HCode{</h3>}\NoIndent \par}
+ \Configure{clauseTITLE+}{\theclause\space#1}
+ \Configure{likeclause}{}{}
+ {\IgnorePar \EndP\IgnorePar\HCode{<h3 class="likeclauseHead">}}
+ {\HCode{</h3>}\NoIndent \par}
+
+ \Configure{sclause}{}{}
+ {\EndP\bgroup \IgnorePar\HCode{<h4 class="sclauseHead">}
+ \ifnum \c:secnumdepth>\c@secnumdepth
+ \else \thesclause \space \fi}
+ {\HCode{</h4>}\NoIndent\egroup}
+ \Configure{sclauseTITLE+}{\thesclause \space#1}
+ \Configure{likesclause}{}{}
+ {\EndP\bgroup \IgnorePar\HCode{<h4 class="likesclauseHead">}}
+ {\HCode{</h4>}\NoIndent\egroup}
+
+ \Configure{ssclause}{}{}
+ {\EndP\bgroup \IgnorePar\HCode{<h5 class="ssclauseHead">}
+ \ifnum \c:secnumdepth>\c@secnumdepth
+ \else \thessclause \space \fi}
+ {\HCode{</h5>}\NoIndent\egroup}
+ \Configure{likessclause}{}{}
+ {\EndP\bgroup \IgnorePar\HCode{<h5 class="likessclauseHead">}}
+ {\HCode{</h5>}\NoIndent\egroup}
+ \Configure{ssclauseTITLE+}{\thessclause \space#1}
+
+ \Configure{sssclause}{}{}
+ {\ShowPar\NoIndent\HCode{<span class="sssclauseHead">}\begingroup\bf
+ \thesssclause\space}
+ {\endgroup\HCode{</span>}\IgnorePar}
+ \Configure{likesssclause}{}{}
+ {\ShowPar\NoIndent\HCode{<span class="likesssclauseHead">}}
+ {\HCode{</span>}\IgnorePar}
+ \Css{.sssclauseHead, .likesssclauseHead
+ { margin-top:2em; font-weight: bold;}}
+
+ \Configure{ssssclause}{}{}
+ {\ShowPar\HCode{<span class="ssssclauseHead">}\begingroup\bf
+ \thessssclause\space}
+ {\endgroup\HCode{</span>}\IgnorePar}
+ \Configure{likessssclause}{}{}
+ {\ShowPar\HCode{<span class="likssssclauseHead">}\begingroup\bf}
+ {\endgroup\HCode{</span>}\IgnorePar}
+ \Css{.ssssclauseHead, .likessssclauseHead
+ { font-weight: bold;}}
+
+ \Configure{sssssclause}{}{}
+ {\ShowPar\HCode{<span class="sssssclauseHead">}\begingroup\bf
+ \thesssssclause\space}
+ {\endgroup\HCode{</span>}\IgnorePar}
+ \Configure{likesssssclause}{}{}
+ {\ShowPar\HCode{<span class="liksssssclauseHead">}\begingroup\bf}
+ {\endgroup\HCode{</span>}\IgnorePar}
+ \Css{.sssssclauseHead, .likesssssclauseHead
+ { font-weight: bold;}}
+
+ \Configure{fibicl@use}{}{}
+ {\IgnorePar\EndP \IgnorePar\HCode{<h3 class="fibicl@useHead">}}
+ {\HCode{</h3>}\NoIndent \par}
+ \Configure{fibicl@useTITLE+}{#1}
+ \Configure{likefibicl@use}{}{}
+ {\IgnorePar\EndP \IgnorePar\HCode{<h3 class="likefibicl@useHead">}}
+ {\HCode{</h3>}\NoIndent \par}
+
+ \Configure{normannex}{}{}
+ {\IgnorePar \EndP\IgnorePar\HCode{<h3 class="normannexHead">}
+ \annexname\ \theannex\ (\normativename)\HCode{<BR\xml:empty>}}
+ {\HCode{</h3>}\NoIndent \par}
+ \Configure{normannexTITLE+}{\annexname\space \theannex\space (\normativename)\space #1}
+ \Css{h3.normannexHead{text-align: center}}
+
+ \Configure{infannex}{}{}
+ {\IgnorePar\EndP \IgnorePar\HCode{<h3 class="infannexHead">}
+ \annexname\ \theannex\ (\informativename)\HCode{<BR\xml:empty>}}
+ {\HCode{</h3>}\NoIndent \par}
+ \Configure{infannexTITLE+}{\annexname\space \theannex\space (\informativename)\space #1}
+ \Css{h3.infannexHead{text-align: center}}
+
+ \Configure{repannex}{}{}
+ {\IgnorePar\EndP \IgnorePar\HCode{<h3 class="repannexHead">}
+ \annexname\ \theannex\ \HCode{<BR\xml:empty>}}
+ {\HCode{</h3>}\NoIndent \par}
+ \Configure{repannexTITLE+}{\annexname\space \theannex\space #1}
+ \Css{h3.repannexHead{text-align: center}}
+
+ \fi
+\fi
+
+% \end{macrocode}
+%
+% Reconfigure sectioning if not HTML.
+% \begin{macrocode}
+\ifHtml \else
+ \ifx\bf\:UnDef
+ \def\bf{\normalfont\bfseries}
+ \fi
+ \Configure{titleclause}{\begingroup\bf}{\endgroup}
+ \Configure{liketitleclause}{\begingroup\bf}{\endgroup}
+ \Configure{clause}{}{}{\begingroup\bf\theclause\space}{\endgroup}
+ \Configure{likeclause}{}{}{\begingroup\bf}{\endgroup}
+ \Configure{sclause}{}{}{\begingroup\bf\thesclause\space}{\endgroup}
+ \Configure{likesclause}{}{}{\begingroup\bf}{\endgroup}
+ \Configure{ssclause}{}{}{\begingroup\bf\thessclause\space}{\endgroup}
+ \Configure{likessclause}{}{}{\begingroup\bf}{\endgroup}
+ \Configure{sssclause}{}{}
+ {\begingroup\bf\thesssclause\space}{\endgroup}
+ \Configure{likesssclause}{}{}{\begingroup\bf}{\endgroup}
+ \Configure{ssssclause}{}{}
+ {\begingroup\it\thessssclause\space}{\endgroup}
+ \Configure{likessssclause}{}{}
+ {\begingroup\it}{\endgroup}
+ \Configure{sssssclause}{}{}
+ {\begingroup\it\thesssssclause\space}{\endgroup}
+ \Configure{likesssssclause}{}{}
+ {\begingroup\it}{\endgroup}
+ \Configure{fibicl@use}{}{}{\begingroup\bf}{\endgroup}
+ \Configure{likefibicl@use}{}{}{\begingroup\bf}{\endgroup}
+ \Configure{normannex}{}{}
+ {\begingroup\bf \annexname~\theannex~(\normativename)\space}{\endgroup}
+ \Configure{infannex}{}{}
+ {\begingroup\bf \annexname~\theannex~(\informativename)\space}{\endgroup}
+ \Configure{repannex}{}{}
+ {\begingroup\bf v\annexname~\theannex\space}{\endgroup}
+\fi
+
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \subsubsection{Miscellaneous}
+%
+% \begin{macro}{\caption}
+% Configure the |\caption| command.
+% \begin{macrocode}
+\:CheckOption{0.0}
+\if:Option
+% \end{macrocode}
+% The html0 option is in effect.
+% \begin{macrocode}
+ %%%% Do html0
+ \Configure{caption}{}{}{}{}
+\else
+ \:CheckOption{3.2}
+ \if:Option
+% \end{macrocode}
+% The html32 option is in effect.
+% \begin{macrocode}
+ %%%% Do html32
+ \Configure{caption}{\HCode{\if:nopar \else <br\xml:empty>\fi
+ <div align="center"><table\Hnewline>
+ <tr valign="bottom"><td nowrap><strong>}}
+ {} {\HCode{</strong></td><td \Hnewline}}
+ {\HCode{</td></tr></table></div>}}
+ \else
+% \end{macrocode}
+% The html4 option
+% (the default, unless specifically overridden by html0 or html32)
+% is in effect.
+% \begin{macrocode}
+ %%%% Do html4
+ \Configure{caption}{\HCode{\if:nopar \else <br\xml:empty>\fi}
+ \:xhtml{\IgnorePar\EndP}\HCode{<div align="center"
+ class="caption"><table class="caption"\Hnewline><tr
+ valign="baseline" class="caption"><td class="id">}}
+ {: } {\HCode{</td><td \Hnewline class="content">}}
+ {\HCode{</td></tr></table></div>}}
+ \Css{.caption td.id{font-weight: bold; white-space: nowrap; }}
+ \fi
+\fi
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{environment}{theindex}
+% Copy of original \texht{} code. There are 9 hooks for possible
+% configuration.
+% \begin{macrocode}
+\:CheckOption{0.0}
+\if:Option
+ %%%% Do html0
+ \Configure{theindex}{}{}{}{}{}{}{}{}{}
+\else
+ \:CheckOption{3.2}
+ \if:Option
+ %%%% Do html32
+ \Configure{theindex}
+ {\HCode{<div>}}
+ {\HCode{</div>}}
+ {}
+ {\HCode{<br\xml:empty>}\hfil\break}
+ {\ \ \ \ }
+ {\HCode{<br\xml:empty>}\hfil\break}
+ {\ \ \ \ \ \ \ \ }
+ {\HCode{<br\xml:empty>}\hfil\break}
+ {\hbox{\HCode{<p>}}}
+ \else
+ %%%% Do html4
+ \Configure{theindex}
+ {\HCode{<div class="theindex">}\let\end:theidx\empty}
+ {\end:theidx\HCode{</div>}}
+ {}
+ {\HCode{<br\xml:empty>}\hfil\break}
+ {\ \ \ \ }
+ {\HCode{<br\xml:empty>}\hfil\break}
+ {\ \ \ \ \ \ \ \ }
+ {\HCode{<br\xml:empty>}\hfil\break}
+ {\hbox{\end:theidx\HCode{<p class="theindex">}}%
+ \def\end:theidx{\HCode{</p>}}}
+ \fi
+\fi
+
+% \end{macrocode}
+% \end{environment}
+%
+% \begin{environment}{quotation}
+% \begin{environment}{quote}
+% \begin{environment}{anote}
+% \begin{environment}{note}
+% \begin{environment}{anexample}
+% \begin{environment}{example}
+% These are all quotation-like environments. |quotation| and |quote|
+% are original \texht, while the others are specifically for \Lpack{iso}.
+% \begin{macrocode}
+\:CheckOption{0.0}
+\if:Option
+ %%%% Do html0
+ \ConfigureEnv{quotation}{}{}{}{}
+ \ConfigureEnv{quote}{}{}{}{}
+ \ConfigureEnv{anote}{}{}{}{}
+ \ConfigureEnv{note}{}{}{}{}
+ \ConfigureEnv{anexample}{}{}{}{}
+ \ConfigureEnv{example}{}{}{}{}
+\else
+ \:CheckOption{3.2}
+ \if:Option
+ %%%% Do html32
+ \ConfigureEnv{quotation}{}{}{\start:env{quotation}}{\end:env}
+ \ConfigureEnv{quote}{}{}{\start:env{quote}}{\end:env}
+ \ConfigureEnv{anote}{\HCode{<blockquote>}}{\HCode{</blockquote>}}%
+ {\start:env{anote}}{\end:env}
+ \ConfigureEnv{note}{\HCode{<blockquote>}}{\HCode{</blockquote>}}%
+ {\start:env{note}}{\end:env}
+ \ConfigureEnv{anexample}{\HCode{<blockquote>}}{\HCode{</blockquote>}}%
+ {\start:env{anexample}}{\end:env}
+ \ConfigureEnv{example}{\HCode{<blockquote>}}{\HCode{</blockquote>}}%
+ {\start:env{example}}{\end:env}
+ \else
+ %%%% Do html4
+ \ConfigureEnv{quotation}{}{}{\start:env{quotation}}{\end:env}
+ \ConfigureEnv{quote}{}{}{\start:env{quote}}{\end:env}
+ \Css{.quote {margin-bottom:0.25em;
+ margin-top:0.25em;
+ margin-left:1em;}}
+ \ConfigureEnv{anote}{\HCode{<blockquote>}}{\HCode{</blockquote>}}%
+ {\start:env{anote}}{\end:env}
+ \ConfigureEnv{note}{\HCode{<blockquote>}}{\HCode{</blockquote>}}%
+ {\start:env{note}}{\end:env}
+ \ConfigureEnv{anexample}{\HCode{<blockquote>}}{\HCode{</blockquote>}}%
+ {\start:env{anexample}}{\end:env}
+ \ConfigureEnv{example}{\HCode{<blockquote>}}{\HCode{</blockquote>}}%
+ {\start:env{example}}{\end:env}
+ \fi
+\fi
+
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+%
+%
+%
+% \begin{environment}{description}
+% \begin{environment}{nreferences}
+% \begin{environment}{references}
+% \begin{environment}{symbols}
+% These all all description-like environments. |description| is the
+% original \texht{} configuration, while the others are new for \Lpack{iso}.
+% \begin{macrocode}
+\:CheckOption{0.0}
+\if:Option
+ %%%% Do html0
+ \ConfigureList{description}{}{}{}{}{}{}
+ \ConfigureList{nreferences}{}{}{}{}{}{}
+ \ConfigureList{references}{}{}{}{}{}{}
+ \ConfigureList{symbols}{}{}{}{}{}{}
+\else
+ \:CheckOption{3.2}
+ \if:Option
+ %%%% Do html32
+ \ConfigureList{description}%
+ {\HCode{<dl>}}
+ {\HCode{</dl>}\ShowPar}
+ {\HCode{<dt>}\bgroup \bf}
+ {\egroup\HCode{<dd\Hnewline>}}
+ \ConfigureList{nreferences}%
+ {\HCode{<dl>}}
+ {\HCode{</dl>}\ShowPar}
+ {\HCode{<dt>}\bgroup \bf}
+ {\egroup\HCode{<dd\Hnewline>}}
+ \ConfigureList{references}%
+ {\HCode{<dl>}}
+ {\HCode{</dl>}\ShowPar}
+ {\HCode{<dt>}\bgroup \bf}
+ {\egroup\HCode{<dd\Hnewline>}}
+ \ConfigureList{symbols}%
+ {\HCode{<dl>}}
+ {\HCode{</dl>}\ShowPar}
+ {\HCode{<dt>}\bgroup \bf}
+ {\egroup\HCode{<dd\Hnewline>}}
+ \else
+ %%%% Do html4
+ \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">}}
+ \ConfigureList{nreferences}%
+ {\EndP\HCode{<dl class="nreferences">}\let\end:itm=\empty}
+ {\EndP\HCode{</dd></dl>}\ShowPar}
+ {\end:itm\def\end:itm{\EndP\Tg</dd>}
+ \HCode{<dt class="nreferences">}\bgroup \bf}
+ {\egroup\EndP\HCode{</dt><dd\Hnewline class="nreferences">}}
+ \ConfigureList{references}%
+ {\EndP\HCode{<dl class="references">}\let\end:itm=\empty}
+ {\EndP\HCode{</dd></dl>}\ShowPar}
+ {\end:itm\def\end:itm{\EndP\Tg</dd>}
+ \HCode{<dt class="references">}\bgroup \bf}
+ {\egroup\EndP\HCode{</dt><dd\Hnewline class="references">}}
+ \ConfigureList{symbols}%
+ {\EndP\HCode{<dl class="symbols">}\let\end:itm=\empty}
+ {\EndP\HCode{</dd></dl>}\ShowPar}
+ {\end:itm\def\end:itm{\EndP\Tg</dd>}
+ \HCode{<dt class="symbols">}\bgroup \bf}
+ {\egroup\EndP\HCode{</dt><dd\Hnewline class="symbols">}}
+ \fi
+\fi
+
+% \end{macrocode}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+% \end{environment}
+%
+%
+% \begin{macro}{\footnotetext}
+% \begin{macro}{\footnote}
+% These are configured to print the footnote text in the main body of the
+% document and for the number to link to the text. This is based on
+% suggestions by Eitan Gurari.\label{footpage}
+% \begin{macrocode}
+\:CheckOption{0.0}
+\if:Option
+ \Configure{footnotetext}{}{}{} % from latex section
+\else
+ \:CheckOption{3.2}
+ \if:Option
+ %% \Configure{footnotetext} % from latex section I THINK THIS IS WRONG
+ %% {\HCode{<hr>}} {\HCode{<hr>}}
+ %% {\HCode{<sup>}} {\HCode{</sup>}}
+ \Configure{footnotetext}
+ {\HCode{<sup>}\FNmark\HCode{</sup>}}
+ {(footnote\ifx \FNmark\empty \else\space\fi \FNmark : }
+ {)}
+ \Configure{footnote}
+ {\def\PRNT{)}\HCode{<sup>}%
+ \Link{\arabic{footnote}}{}\FNmark\EndLink
+ \HCode{</sup>}}
+ {\relax\space
+ \Link{}{\arabic{footnote}}\EndLink
+ (footnote \FNmark : }
+ {)}
+
+ \else
+ %% \Configure{footnotetext} % from latex section
+ %% {\HCode{<br \xml:empty><span class="footnotetext"><sup>}\FNmark
+ %% \HCode{</sup}}
+ %% {}
+ %% {\HCode{</span>}}
+ %% \Css{span.footnotetext{ font-size:75\%; font-style:italic; } }
+ %%
+ %% \Configure{footnote} % from latex section
+ %% {\HPageButton[fn\FNnum]{\HCode{<sup>}\FNmark\HCode{</sup>}}}
+ %% {\BeginHPage[fn\FNnum]{ }}
+ %% {\EndHPage{}}
+% \end{macrocode}
+% This is Eitan's suggested code.
+% \begin{macrocode}
+ \Configure{footnotetext}
+ {\Tg<sup>\FNmark\Tg</sup>}
+ {(footnote\ifx \FNmark\empty \else\space\fi \FNmark : }
+ {)}
+
+ \Configure{footnote}
+ {\def\PRNT{)}\Tg<sup>%
+ \Link{\arabic{footnote}}{}\FNmark\EndLink
+ \Tg</sup>}
+ {\relax\space
+ \Link{}{\arabic{footnote}}\EndLink
+ (footnote \FNmark : }
+ {)}
+ \fi
+\fi
+
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% The following is a slight revision of the end of \Lpack{article.4ht}.
+% \begin{macrocode}
+\def\tableofcontents{%
+ \ifx\contentsname\empty \else
+ \clause*{\contentsname}%
+ \fi
+ \:tableofcontents}
+\let\dx:begin\begin
+\def\begin#1{\def\:temp{#1}\def\:tempa{theindex}\ifx \:temp\:tempa
+ \fibicl@use*{\indexname}\fi\dx:begin{#1}}
+
+% \end{macrocode}
+%
+% The end of the package
+% \begin{macrocode}
+%</usc>
+% \end{macrocode}
+%
+%
+% \subsection{Observations}
+%
+% There are three main aspects to developing \texht{} code and
+% configurations for a new class or package:
+% \begin{enumerate}
+% \item Finding out what hooks and configurations are already available.
+% \item Determining what additional hooks, and where they should be put, for
+% the new package.
+% \item Configuring all the hooks.
+% \end{enumerate}
+%
+% \texht{} has added many hooks to the \LaTeX{} kernel and classes
+% and packages
+% based on kernel code inherit those hooks. I found it advisable to run
+% a test document with new macros through \texht{} to see what
+% the result looked like. Depending on the particular macros it may be that
+% the inherited hooks and configuration are sufficient and nothing needs
+% to be done.
+%
+% For this particular class a lot of new hooks were required, but mainly
+% related to the new macros for sectioning. Configurations were obviously
+% required for these, together with a few for new kinds of environments
+% and lists.
+%
+% There are other packages that, in their turn, are designed to work
+% with the \Lpack{iso}
+% class and it turned
+% out that they required few new hooks or changes to the existing
+% configurations.
+%
+% The rest of this section is concerned with item~2, namely
+% adding hooks.
+%
+% \subsubsection{Colon is a letter}
+%
+% Within the \texht{} `environment', that is the \file{*.4ht}
+% files, the colon character (|:|) acts as a letter in a similar manner
+% as the at character (|@|) does in class and package files; |@| is also
+% treated as a letter in the environment. Normally, something like
+% |\start:env{myenv}| would be treated as the command |\start| followed by
+% the text |:env{myenv}|. In the \texht{} environment it is the command
+% |\start:env| with the argument |{myenv}|. If any commands like this
+% occur in the preamble to a \LaTeX{} document, then they must be surrounded
+% by |\makecolonletter| and |\restorecolon|, which may be defined
+% as:\footnote{Note that a package may redefine the category code for
+% the colon, which is why the old value is saved.}
+% \begin{verbatim}
+% \chardef\oldcolon=\thecatcode`\:
+% \newcommand{\makecolonletter}{\catcode`\:11\relax}
+% \newcommand{\restorecolon}{\catcode`\:=\oldcolon\relax}
+% \end{verbatim}
+%
+% The fact that command names can include a colon means that you have
+% to be careful in code that includes any colon characters. In \LaTeX,
+% code like like |{footnote \thefootnote:}| will print the footnote number
+% immediately followed by a colon (e.g., |footnote 3:|). In the \texht{}
+% environment you are more likely to get an error message saying that
+% |\thefootnote:| is undefined! Instead, this needs to be coded as
+% |{footnote \thefootnote :}|, so that the |\thefootnote| command is ended
+% by the space before the colon.
+%
+% \subsubsection{Adding code and hooks}
+%
+% A \LaTeX{} idiom for adding code at the start and/or end of
+% an existing macro which takes no arguments called, say |\foo|, is:
+% \begin{verbatim}
+% \let\oldfoo\foo
+% \renewcommand{\foo}{new-start-code \oldfoo new-end-code}
+% \end{verbatim}
+% Similarly for commands |\baz| and |\biz| which take one and two arguments
+% respectively:
+% \begin{verbatim}
+% \let\oldbaz\baz
+% \renewcommand{\baz}[1]{new-start-code \oldbaz{#1} new-end-code}
+% \let\oldbiz\biz
+% \renewcommand{\biz}[2]{new-start-code \oldbiz{#1}{#2} new-end-code}
+% \end{verbatim}
+%
+% As these kinds of redefinitions are a common occurrence
+% \file{tex4ht.sty} provides commands that encapsulate the above idiom.
+% These are |\pend:def\foo{new-start-code}| and
+% |\append:def\foo{new-end-code}| for when |\foo| is a macro without
+% arguments, and there are similar commands for prepending and appending
+% to macros with up to three arguments. Repeating and extending
+% the \LaTeX{} example,
+% in the \texht{} environment it could be coded as:
+% \begin{verbatim}
+% \pend:def\foo{new-start-code} % \foo has no arguments
+% \append:def\foo{new-end-code}
+% \pend:defI\baz{new-start-code} % \baz has one argument
+% \append:defI\baz{new-end-code}
+% \pend:defII\biz{new-start-code} % \biz has two arguments
+% \append:defII\biz{new-end-code}
+% \pend:defIII\boz{new-start-code} % \boz has three arguments
+% \append:defIII\boz{new-end-code}
+% \end{verbatim}
+%
+% The definition of a hook in a macro called, say |\buz|, takes
+% the form |\X:buz| where X is a single letter. For example, adding a
+% configurable hook
+% at the start and end of the macro |\baz| can be done like this:
+% \begin{verbatim}
+% \pend:defI\baz{\a:baz} % hook at start
+% \append:defI\baz{\b:baz} % hook at end
+% \NewConfigure{baz}{2} % declare \baz has two configurable hooks
+% \end{verbatim}
+% Note that by default a |\NewConfigure{baz}{2}| command expects the hook
+% corresponding to the first argument to be |\a:baz| and the hook
+% corresponding to the second argument to be |\b:baz|. Extending the
+% example, |\NewConfigure{foo}{9}| will expect the hook corresponding to
+% the ninth argument to be |\i:foo| (`i' is the ninth letter of the
+% alphabet). This default setting for |\NewConfigure| has been created via: \\
+% |\Configure{NewConfigure}{a:}{b:}{c:}{d:}{e:}{f:}{g:}{h:}{i:}| \\
+% in \file{tex4ht.sty}.
+%
+%
+% As an example for hook insertion, assume a macro defined like: \\
+% |\newcommand{\mac}[1]{START #1 END}| \\
+% in which there are four potential places for hooks (call them h1 to h4): \\
+% |{h1 START h2 #1 h3 END h4}|. Hooks h1 and h4 can be added via |\pend:defI|
+% and |\append:defI|, but these are not sufficient by themselves. Other
+% methods are required for inserting all four hooks. Two of these are:
+% \begin{itemize}
+% \item Redefine the whole macro from scratch:
+% \begin{verbatim}
+% \renewcommand{\mac}[1]{\a:mac START \c:mac #1 \d:mac END \b:mac}
+% \NewConfigure{mac}{4}
+% \end{verbatim}
+%
+% \item Reuse parts of the original macro
+% (similar to the \LaTeX{} ap/pre-pending idiom):
+% \begin{verbatim}
+% \let\oldmac\mac
+% \renewcommand{\mac}[1]{\a:mac\oldmac{\c:mac #1 \d:mac}\b:mac}
+% \NewConfigure{mac}{4}
+% \end{verbatim}
+% \end{itemize}
+% Either of these examples can be configured via:
+% \begin{verbatim}
+% \Configure{mac}%
+% {first arg for a hook} % \a:mac at the start of the command
+% {second arg for a hook} % \b:mac at the end of the command
+% {third arg for a hook} % \c:mac immediately before the argument
+% {fourth arg for a hook} % \d:mac immediately after the argument
+% \end{verbatim}
+% Note that the hooks do not have to be placed in the |\mac| command in
+% alphabetical order.
+%
+%
+%
+% \bibliographystyle{alpha}
+%
+% \begin{thebibliography}{GMS94}
+%
+% \bibitem[GMS94]{GOOSSENS94}
+% Michel Goossens, Frank Mittelbach, and Alexander Samarin.
+% \newblock \textit{The LaTeX Companion}.
+% \newblock Addison-Wesley Publishing Company, 1994.
+%
+% \bibitem[GR99]{GOOSSENS99}
+% Michel Goossens and Sebastian Rahtz
+% (with Eitan Gurari, Ross Moore, and Robert Sutor).
+% \newblock \textit{The LaTeX Web Companion --- Integrating TeX, HTML, and XML}.
+% \newblock Addison-Wesley Publishing Company, 1999.
+%
+% \bibitem[Wil96]{PRW96i}
+% Peter~R. Wilson.
+% \newblock \textit{{LaTeX for standards: The LaTeX package files user manual}}.
+% \newblock NIST Report NISTIR, June 1996.
+%
+% \end{thebibliography}
+%
+%
+% \Finale
+% \PrintIndex
+%
+\endinput
+
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+
+