|>>> \ <<< | >>> \ <<< | | | | | | | |>>> \ <<< | | | | >>> \ <<< | | | | >>> \ <<< | | | | | >>> \ <<< | | |%should appear before TocAt|% >>> \ <<< | >>> \ <<< | >>> \ <<< | >>> \ <<< | | | >>> \ <<< | | >>> \ <<< | >>> \ <<< | >>> \ <<< | | >>> \ <<< | | >>> \ <<< | | >>> \ <<< | | >>> \ <<< | >>> \ <<< | >>> \ <<< | >>> \ <<< | >>> \ <<< | | >>> \ <<< | >>> %%%%%%%%%%%%%%%%%% \section{HTML Head} %%%%%%%%%%%%%%%%%% \ <<< \let\Link\M:Link \let\M:Link\:UnDef \let\EndLink\M:EndLink \let\M:EndLink\:UnDef >>> \ <<< \Configure{@HEAD}{} | \:CheckOption{css-in} \if:Option \Log:Note{the inline CSS code is extracted from the input of the previous compilation, so an extra compilation might be needed} \Configure{@HEAD}{| } \else \Log:Note{for inline CSS code, use the command line option `css-in'} \Configure{@HEAD}{\HCode{\Hnewline}} \fi >>> \<<< \:CheckOption{xht} \if:Option \:CheckOption{xhtml}\if:Option \else \:CheckOption{xml}\fi \fi | \def\:gobbleM#1->{} | \immediate\write-1{TeX4ht package options: \expandafter\:gobbleM\meaning\Preamble} \Configure{@HEAD} {\HCode{\Hnewline}} \:CheckOption{timestamp}\if:Option \Configure{@HEAD} {\HCode{\Hnewline}} \else \Log:Note{To print a timestamp, use the command line option timestamp} \fi >>> \<<< \Log:Note{for file extension name xht, use the command line option `xht'}% \Configure{@HEAD}{\HCode{\Hnewline}} >>> \<<< \Configure{@HEAD}{\HCode{\Hnewline}} \Configure{@HEAD}{\HCode{\Hnewline \Hnewline}} >>> %%%%%%%%%%%%%%%%%% \part{Prose} %%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%% \section{Bibliography and Equation References} %%%%%%%%%%%%%%%%%% \ <<< \def\@cite#1#2{% \HCode{\add:description{added-description}{\a:speak:citation}}% {#1\if@tempswa , #2\fi}} \def\@biblabel#1{% \HCode{\add:description{added-description}{\a:speak:bib}}% #1} >>> \ <<< \NewConfigure{speak:citation}{1} \Configure{speak:citation}{citation } \NewConfigure{speak:bib}{1} \Configure{speak:bib}{Bibliography entry } >>> \ <<< \Configure{eqref} {\bgroup\let\tagform@\empty \HCode{ \add:description{added-description}{\a:speak:eqref}}} {\HCode{}\egroup} >>> \ <<< \NewConfigure{speak:eqref}{1} \Configure{speak:eqref}{ equation } >>> \ <<< \CssSpeech{@media speech{.cite, .biblabel {pitch: 5 ; pitch-range: 6; stress: 6; richness: 5;}}} >>> \ <<< \CssSpeech{@media speech{.eqref {pitch: 5 ; pitch-range: 6; stress: 6; richness: 5;}}} >>> %%%%%%%%%%%%%%%%%% \section{Cross Links} %%%%%%%%%%%%%%%%%% \ <<< \Configure{crosslinks}{ }{ }{next}{previous}{previous-tail}{front}{tail}{up} \Configure{crosslinks+} {\IgnorePar\EndP\HCode{| % }\par\ShowPar} {\IgnorePar\EndP\HCode{|\add:vdescription{begin-end}{\a:speak:crosslinks}}} {\HCode{\add:vdescription{begin-end}{\b:speak:crosslinks}
% }\par\ShowPar} \:CheckOption{next} \if:Option \Configure{next+} {\ShowPar\par\noindent \HCode{ \add:description{added-description}{\c:speak:crosslinks}}} {\HCode{}} \fi >>> \\add:vdescription{begin-end}{\a:speak:crosslinks}}} {\HCode{\add:vdescription{begin-end}{\b:speak:crosslinks}
<<< \NewConfigure{speak:crosslinks}{3} \Configure{speak:crosslinks} {Navigation links} {End navigation links} {Navigation link} >>> \ <<< \CssSpeech{@media speech{.crosslinks a, .next a { pitch: 9; pitch-range: 4; volume: 5; stress:1; pause-after: 1000ms }}} >>> %%%%%%%%%%%%%%%%%% \section{Front Matter} %%%%%%%%%%%%%%%%%% \ <<< \CssSpeech{ .titleHead {pitch: 3; pitch-range: 4; richness: 8; stress: 3; volume: | }} \CssSpeech{ .author, .date {pitch: 5; pitch-range: 4; richness: 7; stress: 1; volume: | }} \CssSpeech{ .date {speak-date: dmy}} \CssSpeech{ div.abstract { pitch: 4; pitch-range: 3; speed: x-fast; volume: | }} >>> \ <<< \ConfigureEnv{abstract} {\IgnorePar\EndP \HCode{ }\par\ShowPar} {\ifvmode \IgnorePar\fi \EndP\HCode{}} {}{} >>> %%%%%%%%%%%%%%%%%% \section{Sections} %%%%%%%%%%%%%%%%%% \<<< \ConfigureMark{section} {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble \else \HCode{\add:description{added-description} {\a:speak:section}}\@seccntformat{section}% \HCode{}\fi } \ConfigureMark{subsection} {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble \else \HCode{\add:description{added-description} {\a:speak:subsection}}\@seccntformat{subsection}% \HCode{}\fi } | >>> \ <<< \ConfigureMark{subsection} {\ifnum \c:secnumdepth>\c@secnumdepth \expandafter\:gobble \else \HCode{\add:description{added-description} {\a:speak:section}}\@ifundefined{sectionname}{}{% \ignorespaces\sectionname\space}% \@seccntformat{section}% \HCode{}\fi } | >>> \ <<< \NewConfigure{speak:section}{1} \Configure{speak:section}{section} \NewConfigure{speak:subsection}{1} \Configure{speak:subsection}{subsection} >>> \ <<< \CssSpeech{ .sectionHead {pitch: 4; pitch-range: 7: richness: 9; speed: slow; volume: | ;}} \CssSpeech{ .subsectionHead {pitch: 5; pitch-range: 7; richness: 9; speed: slow; volume: | ;}} >>> %%%%%%%%%%%%%%%%%% \section{Tables} %%%%%%%%%%%%%%%%%% \ <<< | >>> \ <<< \ConfigureEnv{tabular} {| % \IgnorePar| \EndP } {\ShowPar | % | % }{}{} >>> \ <<< \Configure{noalign}% {\f:tabular\d:tabular \HCode{ }\pend:def\TableNo{0}\c:tabular\e:tabular}% >>> \ }} {\HCode{ <<< \Configure{noalign}{}{}% >>> \ <<< \ifvmode\else\HCode{}\fi >>> \ <<< \Configure{tabular} {\ifvmode \IgnorePar\fi \EndP \HCode{ }|}} {\HCode{} {| \HCode{ }% |}} {\HCode{} {| \HCode{ }% |\Hnewline}\RecallEndP } >>> \\HCode{ }\SaveEndP \par \ShowPar} {\IgnorePar \EndP \ifvmode \IgnorePar \fi \EndP \HCode{}|% \HCode{ <<< \HCode{\add:vdescription{begin-end}{begin table}}% >>> \ <<< \HCode{| \add:vdescription{begin-end}{end table}}% >>> \ <<< \HCode{\add:vdescription{begin-end}{| row}}% >>> \ <<< \HCode{% \add:vdescription{added-description}{% \ifnum \HMultispan>1 | cell, spans \HMultispan \space columns \else \ifnum \HCol>1 | cell \fi \fi }}% >>> \ <<< >>> \ <<< \ShowPar >>> \ <<< \ShowPar \par{\HCondtrue\noindent}% >>> %%%%%%%%%%%%% \subsection{Numbering} %%%%%%%%%%%%% \ <<< \HAssign\HRow=0 >>> \ <<< \PushStack\Table:Stck\TableNo \gHAdvance\Next:TableNo by 1 \global\let\TableNo=\Next:TableNo >>> \ <<< \PopStack\Table:Stck\TableNo >>> \ <<< \PushStack\Row:Stck\HRow \HAssign\HRow=0\relax >>> \ <<< \PopStack\Row:Stck\HRow >>> \ <<< \PushStack\Col:Stck\Prev:Col >>> \ <<< \PopStack\Col:Stck\Prev:Col >>> %%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{Matrices} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%% \subsection{Aligned} %%%%%%%%%%%%% \ <<< \Configure{aligned} {| % | % \HCode{ }% \HCode{\add:vdescription{begin-array}{\a:speak:aligned}}} {\Tag{aligned-\TableNo}{\hrow:s}% \HCode{|% |% \add:vdescription{end-array}{\b:speak:aligned}}% \ifvmode \IgnorePar\fi \Tg % | } {\HCode{ }\c:speak:aligned}% {\xdef\hrow:s{\HRow}\HCode{}}% {\HCode{}% \e:speak:aligned \HCode{\Hnewline}} >>> \}} {\HCode{}\f:speak:aligned \HCode{<<< \NewConfigure{speak:aligned}{6} \Configure{speak:aligned} {begin \ifTag{aligned-\TableNo}{\LikeRef{aligned-\TableNo}}{} aligned equations} {end equations} {| } {| } {| } {| } >>> \ <<< \Configure{alignedat} {| % | % \HCode{ }% \HCode{\add:vdescription{begin-array}{\a:speak:aligned}}} {\Tag{aligned-\TableNo}{\hrow:s}% \HCode{|% |% \add:vdescription{end-array}{\b:speak:aligned}}% \ifvmode \IgnorePar\fi \Tg % | } {\HCode{ }\c:speak:aligned}% {\xdef\hrow:s{\HRow}\HCode{}}% {\HCode{}% \e:speak:aligned \HCode{\Hnewline}} >>> %%%%%%%%%%%%%%%%%%%% \subsection{Cases} %%%%%%%%%%%%%%%%% \}} {\HCode{}\f:speak:aligned \HCode{<<< \Configure{cases} {}{} {\Tg }{\Tg } {\Tg}{\Tg } {\Tg}{\Tg } >>> \<<< \ConfigureEnv{cases} {| % | % \HCode{ }% \bgroup |}% |% | % | % } {\egroup\HCode{ % | } {}{} >>> \ <<< \Configure{array} {\HCode{ % \add:vdescription{begin-array}{begin \ifTag{cases-\TableNo}{\LikeRef{cases-\TableNo}}{} cases}}} % {\Tag{cases-\TableNo}{\HRow}% \HCode{|} {\HCode{% \add:vdescription{end-array}{end cases}}% \ifvmode \IgnorePar\fi \Tg % \add:vdescription{begin-end}{Case \HRow}}} {\HCode{}}% {\HCode{}% \bgroup |\Hnewline}} >>> \% | % } {\egroup \HCode{ <<< \Configure{left} {} {\bgroup} \Configure{right} {\egroup} {} >>> \ <<< \let\sv:a:left=\a:left \let\sv:b:left=\b:left \let\sv:a:right=\a:right \let\sv:b:right=\b:right >>> \ <<< \let\a:left=\sv:a:left \let\b:left=\sv:b:left \let\a:right=\sv:a:right \let\b:right=\sv:b:right >>> %%%%%%%%%%%%%%%%%%%% \subsection{matrix} %%%%%%%%%%%%%%%%%%%% \ <<< \Configure{matrix} {| % | % \HCode{ }% \HCode{\add:vdescription{begin-array}{\a:speak:array}}} {\Tag{array-\TableNo}{\hrow:s}% \HCode{|% |% \add:vdescription{end-array}{\b:speak:array}}% \ifvmode \IgnorePar\fi \Tg % | } {\HCode{ }\c:speak:array}% {\xdef\hrow:s{\HRow}\HCode{}}% {\HCode{}% \e:speak:array\HCode{\Hnewline}} >>> \}} {\HCode{}\f:speak:array \HCode{<<< \HCode{ }% >>> The grouping below is handle the case that the matrix is a base of an exponent. \ <<< \Configure{pmatrix} {\bgroup\Tg } {\Tg\egroup} >>> \<<< \NewConfigure{speak:array}{6} \Configure{speak:array} {begin array with \ifTag{array-\TableNo}{\LikeRef{array-\TableNo}}{} rows} {end array} {| } {| } {| } {| } >>> %%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Math} %%%%%%%%%%%%%%%%%%%%%%%%% \ <<< | >>> \
<<< \Configure{eqalign} {\:xhtml{\IgnorePar\EndP}\HCode {
}} {\HCode{}} {\HCode{
}}{\IgnorePar\HCode{ }} {\HCode{}} {\HCode{ }} \def\:eqalign:{\Configure{noalign} {\HCode{}}} \Css{td.eqalign3 { text-align:right; margin-left:10em;}} \Css{.eqalign td { white-space: nowrap; }} \Css{div.eqalign {text-align:center;}} >>> \ }}% {\HCode{ <<< \Configure{eqalignno} {\:xhtml{\IgnorePar\EndP}\HCode{
}} {\HCode{
}} {\HCode{}}{\IgnorePar\HCode{ }} {\HCode{\ifnum \HCol=3\fi }} {\HCode{ }} \def\:eqalignno:{\Configure{noalign} {\HCode{}}} \Css{td.eqalignno3, td.leqalignno3 { text-align:right; margin-left:10em;}} \Css{.leqalignno td, .eqalignno td { white-space: nowrap; }} \Css{.leqalignno td.noalign, .eqalignno td.noalign { width:5\%; white-space: normal; }} \Css{table.leqalignno, table.eqalignno {width:100\%;}} >>> \ }}% {\HCode{ <<< \Configure{leqalignno} {\:xhtml{\IgnorePar\EndP}\HCode{
}} {\HCode{
}} {\HCode{}}{\IgnorePar\HCode{ }} {\HCode{\ifnum \HCol=3\fi }} {\HCode{ }} \def\:leqalignno:{\Configure{noalign} {\HCode{}}} >>> \ }}% {\HCode{ <<< \Configure{array} {| % | % \HCode{ }% \HCode{\add:vdescription{begin-array}{\a:speak:array}}} {\Tag{array-\TableNo}{\hrow:s}% \HCode{|% |% \add:vdescription{end-array}{\b:speak:array}}% \ifvmode \IgnorePar\fi | \Tg % | } {\HCode{ }\c:speak:array}% {\xdef\hrow:s{\HRow}\HCode{}}% {\HCode{}% \e:speak:array\HCode{\Hnewline}} \ConfigureEnv{array} {\bgroup\Configure{$}{}{}{}} {\egroup} {}{} >>> \}} {\HCode{}\f:speak:array \HCode{<<< \Css{.begin-array, .end-array {color:green;}} >>> \ <<< \CssSpeech{.begin-array, .end-array {stress:4; richness:4;}} >>> \ <<< \HCode{\add:vdescription{begin-end}{Row \HRow}}% >>> \ <<< \ConfigureEnv{array} {\PushStack\Col:Marg\AllColMargins \bgroup\Configure{$}{}{}{}} {\egroup \PopStack\Col:Marg\AllColMargins} {}{} >>> \ <<< \ConfigureEnv{array} {\PushStack\Col:Marg\AllColMargins \bgroup\Configure{$}{}{}{}} {\egroup \PopStack\Col:Marg\AllColMargins} {}{} >>> \ <<< \expandafter\tmp:toks\expandafter{\Clr}% \HCode{}% >>> \ <<< \def\:MM{m} \Configure{HBorder} { } {| } {} { } { } {} {| } { } { } >>> \} { <<< \def\:MM{\ifmathml m\fi} \Configure{HBorder} {<\:MM tr\Hnewline \ifmathml \expandafterclass\else class\fi="hline">} {\ifmathml| \else \fi} {\:MM tr>} {<\:MM tr\Hnewline \ifmathml \expandafterclass\else class\fi ="cline">} {<\:MM td>\:MM td>} {\ifmathml| \else \fi} {\:MM tr>} {<\:MM tr\Hnewline \ifmathml \expandafterclass\else class\fi="vspace" style="font-size:\HBorderspace">} {<\:MM td\Hnewline>\ifmathml\else\string&\#x00A0;\fi \:MM td>} {\:MM tr>} \Configure{halign} {\EndP\halignTB{halign}} \t:HA \R:HA\r:HA\D:HA\d:HA >>> \ <<< >>> %%%%%%%%%%%%% \subsection{Small Matrix} %%%%%%%%%%%%% \ \string&\#x0332; <<< | >>> \ <<< | >>> \ <<< \Configure{multicolumn} {\let\sv:VBorder\VBorder \let\VBorder\empty \Configure{VBorder}{}{}{}{}% } {\let\VBorder\sv:VBorder} {\ifmmode \else \ifvmode\IgnorePar\fi \fi \HCode{ }} {\ifmmode \else \ifvmode\IgnorePar\fi \EndP\fi \HCode{} } \def\gob:sp#1{#1} >>> %%%%%%%%%%%%%%%%%%%% \section{TeX} %%%%%%%%%%%%%%%%%%%% \<<< \Configure{eqalignno} {\HCode{ }} {\HCode{ }} {\HCode{}} {\HCode{ }} {\HCode{}} {\HCode{ }} \def\:eqalignno:{\Configure{noalign} {\HCode{}}} >>> \ }}% {\HCode{ <<< \Configure{leqalignno} {\HCode{ }} {\HCode{ }} {\HCode{}} {\HCode{ }} {\HCode{}} {\HCode{ }} \def\:leqalignno:{\Configure{noalign} {\HCode{}}} >>> %%%%%%%%%%%%%%%%%% \section{Lists} %%%%%%%%%%%%%%%%%% %%%%%%%%%%%%% \subsection{Shared} %%%%%%%%%%%%% \ }}% {\HCode{ <<< | >>> \ <<< \CssSpeech{ .itemize, .enumerate, .description {pitch: 8; pitch-range: 4; volume: | ; pause-after: 1000ms} } \CssSpeech{.added-list-description { pitch: 8; pitch-range: 4; volume: 5; pause-after: 1000ms }} \CssSpeech{.li-itemize, .li-enumerate, .li-description { pitch: 3; pitch-range: 6; volume: 5 }} >>> \ <<< \ConfigureList{trivlist}% {\EndP\HCode{ }% |
}\ShowPar} {\end:itm \global\def\end:itm{\EndP\Tg}\HCode{\global\let\end:itm=\empty} {| \EndP\HCode{ }\bgroup \bf} {\egroup\HCode{ }} >>> \ }\ShowPar} {\end:itm \global\def\end:itm{\EndP\Tg}\HCode{<<< \ConfigureList{list}% {\EndP\HCode{ }\bgroup \bf} {\egroup\HCode{ }} >>> %%%%%%%%%%%%% \subsection{Itemized} %%%%%%%%%%%%% \ <<< \ConfigureList{itemize}% {\EndP| \HCode{ }|\ShowPar} {\end:itm \global\def\end:itm{\EndP\Tg}% \HCode{ }|\DeleteMark } {\HCode{}} >>> \ <<< \HCode{ %% \add:description{added-description}{\a:speak:itemize}}% >>> \<<< \HCode{