% $Id: tex4ht-cond4ht.tex 1390 2023-10-13 22:00:45Z karl $ % (1) tex tex4ht-cond4ht or xhtex tex4ht-cond4ht % (2) tex cond4ht.4ht % % Copyright 2009-2023 TeX Users Group % Copyright 1997-2009 Eitan M. Gurari % Released under LPPL 1.3c+. % See tex4ht-cpright.tex for license text. \vbadness=10000 \csname tex4ht\endcsname \input ProTex.sty \def\CodeDel{{<<<<}{>>>>}} \AlProTex{sty,<<<>>>,?,title,list,[],ClearCode} \input common \<<<< %Needs: tex cond4ht.4ht %% begin comment 29/09/2016 (dg) %% detaching mktex4ht.cnf as %% a separate file mktex4ht-cnf.tex (copy of mktex4ht.cnf) %% end \def\ConfigFiles{\input mktex4ht-cnf.tex} % Please, modify the bodies of the \def\mkfilename{mktex4ht.4ht} % first four macros. % The input file should consist % of records \AddFile{i}{name} % where i stands for a priority number % in the range 0--9, and name stands for % for a sty/cls file name. For instance, % % \AddFile{1}{latex} \AddFile{2}{article} % \AddFile{5}{amsmath} \AddFile{2}{report} ... % cond4ht.4ht (?version), generated from ?jobname.tex % Copyright 2009-2023 TeX Users Group % Copyright 1997-2009 Eitan M. Gurari ? \ifx \BREAK\UnDef \def\BREAK{^^J} \input common.tex \fi \ifx \OutputCode\UnDef \def\next{ \input tex4ht.sty \Preamble{html}\EndPreamble \input ProTex.sty \AlProTex{sty,<<<>>>,|,title,list,[[]],ClearCode} } \def\BYE{\csname bye\endcsname} \expandafter \next \fi \expandafter\def\csname lit0\endcsname{} \expandafter\def\csname lit1\endcsname{} \expandafter\def\csname lit2\endcsname{} \expandafter\def\csname lit3\endcsname{} \expandafter\def\csname lit4\endcsname{} \expandafter\def\csname lit5\endcsname{} \expandafter\def\csname lit6\endcsname{} \expandafter\def\csname lit7\endcsname{} \expandafter\def\csname lit8\endcsname{} \expandafter\def\csname lit9\endcsname{} \def\infostyles{} \def\hookstyles{} \def\XXXXs{} \def\litstyles{% \csname lit0\endcsname\BREAK \csname lit1\endcsname\BREAK \csname lit2\endcsname\BREAK \csname lit3\endcsname\BREAK \csname lit4\endcsname\BREAK \csname lit5\endcsname\BREAK \csname lit6\endcsname\BREAK \csname lit7\endcsname\BREAK \csname lit8\endcsname\BREAK \csname lit9\endcsname } \HAssign\AddFileN = -3 \catcode`\!=14 \catcode`\%=12 \def\AddFile#1#2{! ! \csname append:def\endcsname\hookstyles{\string\LitRow{#2}}! \APPENDHOOK{\string\LitRow{#2}}! \csname expand:after\endcsname{\csname append:def\endcsname}\csname ! lit#1\endcsname{\string\lit\string{#2\string}}! \ifnum\AddFileN<0\else \csname append:def\endcsname\XXXXs{,}\fi ! \ifnum \AddFileN=4 ! \HAssign\AddFileN = 0 ! \csname append:def\endcsname\XXXXs{\BREAK\space\space\space} ! \csname expand:after\endcsname{\csname ! append:def\endcsname}\csname lit#1\endcsname{\BREAK}! ! \csname append:def\endcsname\hookstyles{\BREAK}! \fi ! \csname append:def\endcsname\XXXXs{#2}! \ifnum \AddFileN<0 \HAssign\AddFileN = 2 \fi ! \HAdvance\AddFileN by 1 ! \csname append:def\endcsname\infostyles{\info.#2.}! } \catcode`\!=12 \catcode`\%=14 \def\getNextLit#1#2#3{\def\nextLit{#3 }\def\NextLit{#3}} \def\APPENDHOOK#1{% \getNextLit#1% \expandafter\let\expandafter\hookstyles\expandafter\empty \expandafter\sorthooks\hookstyles{}{}{}} \def\sorthooks#1#2#3{% \if !#3!% \expandafter\expandafter\csname append:def\endcsname \expandafter\hookstyles\expandafter{\expandafter\string \expandafter\LitRow\expandafter{\NextLit}}% \else \def\comp{0}% \expandafter\compare\nextLit<>#3 <>% \ifnum \comp<0 \expandafter\expandafter\csname append:def\endcsname \expandafter\hookstyles\expandafter{\expandafter\string \expandafter\LitRow\expandafter{\NextLit}}% \let\next=\resthooks \else \let\next\sorthooks \fi \csname append:def\endcsname\hookstyles{#1#2{#3}}% \expandafter\next \fi} \def\resthooks#1#2#3{% \if !#3!% \else \csname append:def\endcsname\hookstyles{#1#2{#3}}% \expandafter\next \fi} \def\compare#1#2<>#3#4<>{% \ifnum `#1<`#3\def\comp{-1}\let\next=\relax \else \ifnum `#1>`#3\def\comp{1}\let\next=\relax \else \def\next{\compare#2<>#4<>}% \if !#2!\let\next=\relax \fi \if !#4!\let\next=\relax \fi \def\tempa{#2}\def\tempb{#4}% \ifx \tempa\space \ifx \tempb\tempa \else \def\comp{-1}\fi \let\next=\relax \else\ifx \tempb\space \def\comp{1}\let\next=\relax \fi\fi \fi\fi \next } \HAssign\resthookN=0 \def\hookstylesBreaks#1#2#3{% \if !#3!\else \csname append:def\endcsname\hookstyles{#1#2{#3}}% \HAdvance\resthookN by 1 \ifnum \resthookN=4 \csname append:def\endcsname\hookstyles{\BREAK}% \HAssign\resthookN=0 \fi \expandafter\hookstylesBreaks \fi} \def\finalizeHooks{% \expandafter\let\expandafter\hookstyles\expandafter\empty \expandafter\hookstylesBreaks\hookstyles{}{}{}} \ConfigFiles \finalizeHooks \catcode`\%=12 \def\hook.#1.{\BREAK %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\BREAK \string\section\string{#1\string}\string\rightline \string{\string\Link\string{#1-b\string}\string {#1-a\string}info\string\EndLink\string}\BREAK %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\BREAK \BREAK \string\<<< \BREAK \BREAK >>>\BREAK\BREAK } \def\info.#1.{\BREAK \BREAK\BREAK \string\def\string\infolink{[\string\Link\string{#1-a\string}\string {#1-b\string}up\string\EndLink] \string\gdef \string\infolink{}}\BREAK \string\section{#1}\BREAK\BREAK \string\begin\string{verbatim\string}\BREAK \ \string\end\string{verbatim\string}\BREAK } \def\lit.#1.{\BREAK %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\BREAK \space\space\space\space\space\space\space\space \space\space\space\space\space\space\space\space |\string{#1\string} \BREAK %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\BREAK \space\space\space\space | \space\space \ \BREAK} \catcode`\%=14 \<*.4ht out of order\><<< \Hinclude{\@ifpackageloaded{colortbl}{% \no:dupl{array}{\input array.4ht}% \no:dupl{color}{\input color.4ht}% \no:dupl{colortbl}{\input colortbl.4ht}% }{}}{colortbl} >>> \<<< \<<< \ifx \contextversion\Un:def \Hinclude{\input #1.4ht}{plain} \def\:temp{t}% \ifx \eplain\:temp \Hinclude{\input #1.4ht}{eplain} \fi || \ifx \d@nger\:UnDef \else \let\leftheadline\empty \let\rightheadline\empty \Hinclude{\input #1.4ht}{manmac} \fi \else \Hinclude{\input #1.4ht}{context} \fi >|empty>> \<<< \Hinclude{\input #1.4ht}{latex} >|empty>> \<<< || >|empty>> \<<< || >|empty>> \<<< || >|empty>> \<<< \def\:temp{M\kern-.111em\lower.6ex\hbox{E}\kern-.075emX} \ifx \nM@X\:temp \expandafter\ifx\csname emulateplain\endcsname\relax \else \Hinclude{\input #1.4ht}{mex} \fi\fi >|empty>> Style files, like xy, may be loaded in latex with \verb'\usepackage' or \verb'\input'. The latter case doesn't leave footprints, hence we need for it an explicitly check. On the other hand, we should avoid duplications. \<<< \expandafter\let\csname tex4ht:4ht\endcsname\empty \def\no:dupl#1#2{% \expandafter\ifx \csname #1:4ht\endcsname\relax \expandafter\let \csname #1:4ht\endcsname\empty \expand:after{#2}% \fi } >|empty>> \<<< \Hinclude{\def\:temp{\ht:everypar={\setbox0=\lastbox\ht:everypar={}}}% \ifx \NoindentAfter\:temp \no:dupl{#1}{\expand:after{\input #1.4ht}}\fi} {osudeG} \Hinclude{\ifx\amstexloaded@\relax \no:dupl{#1}{ \ifx \Space@\:UnDef \expand:after{\input #1.4ht} % \else \input vanilla.4ht \fi}% \fi} {amstex} \Hinclude{\expandafter\ifx \csname amsppt.sty\endcsname\relax \else \no:dupl{#1}{\expand:after{\input #1.4ht}}\fi} {amsppt} \Hinclude{\ifx \texinfoversion\:UnDef\else \no:dupl{#1}{\expand:after{\input texinfo.4ht}}\fi} {texinfo} \Hinclude{\ifx \thistubstyle\:UnDef\else \no:dupl{#1}{\expand:after{\input tugboat.4ht}}\fi} {tugboat} >|empty>> \<<< \ifx\InputIfFileExists\UnDef% \def\input:if:fileexists#1#2#3{% \openin15 #1.4ht% \ifeof15% #3% \else% \input #1% \fi\closein15% }% \else \let\input:if:fileexists\InputIfFileExists% \fi% \Hinclude{\input #1.4ht}{fontmath} |<*.4ht out of order|> \def\:strip:quotes"#1"#2"#3\relax{\if .#1.#2\else #1\fi} \def\h:input#1.#2.#3?{% \edef\:current:package{\:strip:quotes"#1""\relax} \:CheckOption{no_\:current:package}\if:Option \let\:temp\empty \else \let\:temp\empty \no:dupl{\:current:package}{% \def\:warn:msg{} \:CheckOption{debug}\if:Option \def\:warn:msg{% \:warning{No configuration file for \:current:package.\if .#2.tex\else #2\fi}% } \fi% \def\:temp{\input:if:fileexists{\:current:package.4ht}{}{\:warn:msg}}% }% \fi \:temp} \edef\:temp{\noexpand\Hinclude {\noexpand\h:input ##1..?}{\@filelist}} \:temp >|empty>> \<<< \Hinclude{\ifx \PsfigVersion\:UnDef \else \no:dupl{#1}{\expand:after{\input psfig.4ht}}\fi} {psfig} \Hinclude{\:CheckOption{#1} \if:Option \no:dupl{#1}{\expand:after{\input #1.4ht}}\fi} {pictex} \Hinclude{% \expandafter\ifx \csname PSTricksLoaded\endcsname\relax\else \no:dupl{#1}{\expand:after{\input #1.4ht}}\fi} {pstricks} \Hinclude{% \ifx \:DraCatCodes\:UnDef \else \no:dupl{#1}{\expand:after{\input #1.4ht}}\fi} {dratex} \Hinclude{% \ifx \xyloaded\:UnDef \else \no:dupl{#1}{\expand:after{\input #1.4ht}}\fi} {xy} \Hinclude{% \ifx \epsfsetgraph\:UnDef \else \no:dupl{#1}{\expand:after{\input #1.4ht}}\fi} {epsf} \Hinclude{% \ifx \diagram@help@messages\:UnDef \else \no:dupl{#1}{\expand:after{\input #1.4ht}}\fi} {diagrams} \Hinclude{% \ifx \figvisu\:UnDef \else \no:dupl{#1}{\expand:after{\input #1.4ht}}\fi} {fig4tex} \Hinclude{|} {pctable} \Hinclude{% \:CheckOption{xhtml}\if:Option |\fi} {xhtml} \Hinclude{\:CheckOption{#1} \if:Option\else \:CheckOption{ShowFont}\fi \if:Option\else \:CheckOption{frames-}\fi \if:Option\else \:CheckOption{frames}\fi \if:Option\else \:CheckOption{image-maps}\fi \if:Option\else \:CheckOption{java}\fi \if:Option\else \:CheckOption{javascript}\fi \if:Option \no:dupl{#1}{\expand:after{\input #1.4ht}}\fi} {th4} \Hinclude{\ifx \sethebrew\:UnDef\else \ifx \ArabTeX\:UnDef\else \no:dupl{#1}{\expand:after{\input hebtex.4ht}}\fi \fi} {hebtex} >|empty>> \<<< \ifx \BeginTable\:UnDef \else\ifx \EndTable\:UnDef \else \expandafter\ifx \csname !ttBeginTable\endcsname\relax\else \no:dupl{#1}{\input #1.4ht}% \fi\fi\fi >|empty>> >>> {\tt \string\EXIST} is needed for styles/classes not coming from tex4ht-4ht, e.g., for adding cases to {\tt\string\exit:ifnot}. \input tex4ht-cpright % needed for this generation: \<\mkfilename\><<< % \def\HTML{...} \def\CONFIG{...} \def\MAKETITLE{...} \def\EXIST{...} % \def\OPTIONS{...} \def\PREAMBLE{...} % % Compile this file with the command `xhlatex |mkfilename', % and read the instructions at mktex4ht.html => index => mktex4ht. % % The compilation needs the files ProTex.sty & AlProTex.sty from % http://ctan.org/pkg/protex % % This file is designed for machines--not human beings! You % are strongly advised not to look at the code which follows % the copyright notice. % % |mkfilename (|version), generated from |jobname.4ht % Copyright 2009-2022 TeX Users Group % Copyright 1997-2009 Eitan M. Gurari | | \openin15=ProTex.sty \ifeof15 \immediate\write16{--- Needs ProTex.sty \& AlProTex.sty from http://ctan.org/pkg/protex --} \fi \closein15 \edef\RecallCats{\catcode`\noexpand\^=\the\catcode`\^} \catcode`\^=7 \catcode`\%=12 \catcode`\!=14 \catcode`\^^M=13 \catcode`\:=11 \def\lit#1{ \expandafter\ifx\csname ! cw:)\clearcode:id P:configure \HTML\space #1\endcsname\relax ! ! % no code for ! \else ! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \space\space\space\space\space\space\space\space! \space\space\space\space\space\space\space\space! \string\ConfigureHinput\string{#1\string} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \space\space\space\space \ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \space\space \string\endinput\string\empty\string\empty\string\empty\string\empty ! \string\empty\string\empty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \fi ! } \catcode`\%=14 \catcode`\!=12 \def\GetLit#1,{\def\HTML{#1}\ifx \HTML\empty \def\GetLit##1?{}\else% \section{Container of \HTML.4ht} \expandafter\ifx\csname YES\HTML\endcsname\relax\else \<\HTML\><<< \string\exit:ifnot{\csname YES\HTML\endcsname} >>|empty> \fi \<\HTML\><<< |litstyles \ifx \EXIST\UnDef\else \expandafter\moreLit\EXIST,,//\fi \string\endinput >>|empty> \LitFile \fi \GetLit} \catcode`\^^M=5 \RecallCats \def\moreLit#1,{\if !#1!\expandafter\SofLit\else \lit{#1}\expandafter\moreLit\fi} \def\moreLitRow#1,{\if !#1!\expandafter\SofLit\else \LitRow{#1}\expandafter\moreLitRow\fi} \def\SofLit#1//{} \def\LitFile{\OutputCode[4ht]\<\HTML\>} \def\cleancom#1,#2(){#1} \def\LitRow#1{% \let\next=\LitCols \def\RowTp{#1}% \HCode{}\ifx \RowTp\empty \else \edef\temp{\noexpand\Link[\noexpand\cleancom \RefFile{f-#1}}\temp,()]{}{b-#1}#1\EndLink \fi \HCode{}% \HAssign\curf=0 \ifx \HTML\:UnDef \expandafter\LitCols\infosources,,? \else \expandafter\LitCols\HTML,,?\fi \HCode{}% } \def\LitCols#1,{\def\temp{#1}\ifx \temp\empty \def\next##1?{}\else% \ifx \RowTp\empty \HCode{}\Vth#1:\HCode{}\else \HCode{}\expandafter\ifx\csname cw:)\clearcode:id P:configure #1 \RowTp\endcsname\relax |\else \LinkPort\*\EndLink \expandafter\edef\csname YES#1\endcsname{% \expandafter\ifx \csname YES#1\endcsname\relax\else \csname YES#1\endcsname,\%\Hnewline\fi \RowTp}% \fi \HCode{}\fi \fi \next } \def\Vth#1{\if #1:\else #1\expandafter\VTH\fi} \def\VTH#1{\if #1:\else \HCode{
}#1\expandafter\VTH\fi} \expandafter\def\csname html4hook\endcsname{% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % for bootstrapping, when html4.4ht is not available % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ifx \b:HEAD\UnDef % \let\tbl:XV=\empty \let\:Hii=\empty \let\End:Hii=\empty \let\:SPAN=\empty % \expandafter\def\csname html4hook\endcsname{% \csname newcount\endcsname\pageno \Configure{HtmlPar}{}{}{}{} \Configure{HEAD}{}{} \Configure{CssFile}{}{} \Configure{HTML}{}{} \Configure{TITLE}{}{} \Configure{BODY}{}{} \Configure{Css}{foo} \Configure{TITLE+}{} \Configure{HPageTITLE+}{} } \csname html4hook\endcsname \fi } \catcode`\:=12 \documentclass{book} \ifx \HCode\UnDef \ifx\OPTIONS\UnDef \toks0={xhtml,3,sections+}% \else \toks0={\OPTIONS}% \fi \def\temp{\usepackage[\the\toks0]{tex4ht}} \expandafter\temp \fi \Configure{ProTex}{4ht,<<<>>|empty>,||,title,list,[[]]} \csname PREAMBLE\endcsname \begin{document} \ifx \OPTIONS\UnDef \TocAt{section,subsection} \fi \title{TeX4ht: \ifx\HTML\UnDef Seeded Hooks\else Configuration Files\fi} \ifx \MAKETITLE\UnDef \else \expandafter\MAKETITLE\fi \maketitle \noindent [\HPage{index} \HCode{}\LitRow{}|hookstyles \ifx \EXIST\UnDef\else \expandafter\moreLitRow\EXIST,,//\fi \ifvmode \IgnorePar\fi\EndP \HCode{
} \IgnoreIndent\par\rightline{[\ExitHPage{}]} \EndHPage{}] \ifx \HTML\UnDef \par \let\LitFile=\empty \def\HTML{replace-with-file-name} \immediate\write16{-- Missing definition for \noexpand\HTML --} See {\tt index => mktex4ht} for directions on how to create configuration files with `mktex4t.4ht'.\par WARNING: Missing definition for {\tt \string\HTML } \else [\HPage{the 4ht files} \def\Comma{\def\Comma{, }} \def\LitFiles#1,{\def\temp{#1}\ifx \temp\empty \def\LitFiles##1?{}\else \Comma\Link[#1.4ht]{}{}#1.4ht\EndLink \fi \LitFiles } \expandafter\LitFiles\HTML,,? \par\ShowPar[\ExitHPage{}] \EndHPage{}] \fi \ifx \CONFIG\UnDef WARNING: Missing definition for {\tt \string\CONFIG } \fi \IgnorePar\EndP \ifx \CONFIG\UnDef \immediate\write16{-- Missing definition for \noexpand\CONFIG --} \else \def\temp{\input \CONFIG}\expandafter\temp \fi \tableofcontents \chapter{Utilities} | %% begin comment 29/09/2016 (dg) %% file \jobname.4ct does not exist on first run; %% it should be available on second and third run %% end \newif\ifFirstPass\FirstPassfalse \openin15=\Jobname.4ct \ifeof15 \FirstPasstrue \message{^^J warning *********** FIRST PASS **************************** ^^J} \fi \closein15 \chapter{Containers for the Configurations} %% %% Skip processing lit entries on first pass %% \ifFirstPass\else \catcode`\:=11 \expandafter\GetLit\HTML,,,?\relax \catcode`\:=12 \fi | \end{document} \endinput >>> \<<< \bgroup \catcode`\:=11 \catcode`\@=0 \catcode`\\=11 @relax @def@infoIVht[#1]#2//{@bgroup @no:catcodes0{255}{11}% @no:catcodes{47}{47}{12}% / @def@infoIVht##1\ConfigureHinput{@egroup @let@ConfigureHinput=@ConfigureHINPUT @ConfigureHinput}% @infoIVht } @def@ConfigureHINPUT#1{@bgroup @no:catcodes0{255}{11}% @no:catcodes{47}{47}{12}% / @no:catcodes{13}{13}{13}% ^^M @no:catcodes{32}{32}{13}% ^^M @def@ConfigureHinput##1//##2//##3\ifx\infoIVht##4\endinput{@egroup @HPage[f@curf-#1]{#1}% @rightline{@Link{b-#1}{}up@EndLink}@ShowPar@par@textbf{#1}@par @verbshow{##3}@rightline{@Link{b-#1}{}up@EndLink}% @EndHPage{}@par@ShowPar}@ConfigureHinput} @bgroup @catcode `[= 1 @catcode`]=2 @catcode `@{=12 @catcode `@}=12 @catcode`@\=12 @long@gdef@verbshow#1[@begin[verbatim]#1\end{verbatim}] @egroup @catcode`@\=0 \catcode`\:=12 \catcode`\@=12 \relax \def\curf{} \input info4ht.4ht \ifx \HTML\empty \HAssign\curf=0 \def\nextinfo#1,{\if !#1!\def\nextinfo##1//{} \else \HAdvance\curf by 1 \input #1.4ht \expandafter\nextinfo \fi } \expandafter\nextinfo\infofiles,,//% \fi \egroup >>> \<<< \def\infofiles{infoht4,infomml} \def\infosources{html4,mathml} >>> \<<< \HAdvance\curf by 1\relax \expandafter\ifx \csname cw:f\curf-\RowTp(L \endcsname\relax -\else\Link[\csname cw:f\curf-\RowTp(L \endcsname]{}{}*\EndLink \fi >>> %% %% set a hook for skipping mktex4ht.4ht generation from tex4ht-4ht.tex %% The file should be generated when cond4ht.4ht is processed, %% not when tex4ht-4ht. %% %% \csname Skipmkfilename\endcsname \expandafter\OutputCodE\expandafter\<\mkfilename\> \csname BYE\endcsname \endinput >>>> \<<<< % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either % version 1.3c of this license or (at your option) any % later version. The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3c or later is part of all distributions % of LaTeX version 2005/12/01 or later. % % This work has the LPPL maintenance status "maintained". % % The Current Maintainer of this work % is the TeX4ht Project . % % If you modify this program, changing the % version identification would be appreciated. \immediate\write-1{version ?version} >>>> \<<<< !*??: >>>> \OutputCodE\ \immediate\write16{---------------------------------} \immediate\write16{--- needs --- tex cond4ht.4ht ---} \immediate\write16{---------------------------------} \bye