Chapter 15
Dvi-Based Hooks

   15.1 Tracing Dvi
   15.2 Sent to Dvi
   15.3 Observations

<..dvi-based hooks..>
 <.tracing dvi.>
 <.sent to dvi.>
 -_-_-

15.1 Tracing Dvi

<..tracing dvi..>
 \def\HTrace#1{\csname #1:T\endcsname}
 \def\EndHTrace#1{\csname #1:t\endcsname}
 -_-_-

<..tracing dvi..>+
 \def\RULE:T{\ht:special{t4ht@\%R}}  \def\RULE:t{\ht:special{t4ht@\%r}}
 -_-_-

<..shared config..>+
 \NewConfigure{RULE}[5]{\ht:special{t4ht@\%\%R#1#2#1#3}
   \ht:special{t4ht@\%\%r#1#4#1#5}}
 -_-_-

<..tracing dvi..>+
 \def\GROUP:T{\ht:special{t4ht@\%P}}  \def\GROUP:t{\ht:special{t4ht@\%p}}
 -_-_-

<..shared config..>+
 \NewConfigure{GROUP}[5]{\ht:special{t4ht@\%\%P#1#2#1#3}
   \ht:special{t4ht@\%\%p#1#4#1#5}}
 -_-_-

<..tracing dvi..>+
 \def\CHAR:T{\ht:special{t4ht@\%C}}  \def\CHAR:t{\ht:special{t4ht@\%c}}
 -_-_-

<..shared config..>+
 \NewConfigure{CHAR}[5]{\ht:special{t4ht@\%\%C#1#2#1#3}
   \ht:special{t4ht@\%\%c#1#4#1#5}}
 -_-_-

<..tracing dvi..>+
 \def\HSPACE:T{\ht:special{t4ht@\%H}}  \def\HSPACE:t{\ht:special{t4ht@\%h}}
 -_-_-

<..shared config..>+
 \NewConfigure{HSPACE}[3]{\ht:special{t4ht@\%\%H#1#2#1#3}}
 -_-_-

<..tracing dvi..>+
 \def\VSPACE:T{\ht:special{t4ht@\%V}}  \def\VSPACE:t{\ht:special{t4ht@\%v}}
 -_-_-

<..shared config..>+
 \NewConfigure{VSPACE}[3]{\ht:special{t4ht@\%\%V#1#2#1#3}}
 -_-_-

tex4ht.c has implicit \Configure{VSPACE}{.}{}{}, etc. for the above.

Comamnd line ‘-p’ requests tracings of specials. \special{t4ht@/} for flip-floping requests of such tracings.

The switch ‘-c’ in the command line asks for context dump into the log when dvi errors/ warning are provided.

15.2 Sent to Dvi

All the control flow commads should be located within the \Send environment. The \send:special takes care of killing casses not obeying this requirement.

<..sent to dvi..>
 \def\Send#1{\Configure{Send:#1}}
 \def\DviSend{\let\send:special=\ht:special
    \ht:special{t4ht\string~}\EndPauseBACK\ht:special{t4ht\string~}%
    \ht:special{t4ht\string~}}
 \def\EndDviSend{\send:special{t4ht\string~}%
    \send:special{t4ht\string~}\PauseBACK\send:special{t4ht\string~}%
    \let\send:special=\:gobble}
 \def\PauseBACK{\send:special{t4ht\string~<(}}
 \def\EndPauseBACK{\send:special{t4ht\string~<)}}
 \def\HideBACK{\send:special{t4ht\string~<[}}
 \def\EndHideBACK{\send:special{t4ht\string~<]}}
 \def\MiniBACK{\send:special{t4ht\string~<-}}
 \def\EndMiniBACK{\send:special{t4ht\string~<+}}
 -_-_-

<..shared config..>+
 \let\send:special=\:gobble
 \NewConfigure{Send:GROUP}[2]{\send:special{t4ht\string~<#1#2}}
 \NewConfigure{Send:EndGROUP}[2]{\send:special{t4ht\string~>#1#2}}
 \NewConfigure{Send:BACK}[1]{\send:special{t4ht\string~<*#1}}
 -_-_-

What \MiniBACK...\EndMiniBACK do here.

{\special{t4ht=}} —-forcing a group i.e. use {\special{t4ht=}}^x instead of {}^x.

15.3 Observations