[tex4ht-commits] [SCM] tex4ht updated: r1452 - trunk/lit

Michal Hoftich INVALID.NOREPLY at gnu.org.ua
Wed Jan 24 15:50:53 CET 2024


Author: michal_h21
Date: 2024-01-24 14:50:53 +0000 (Wed, 24 Jan 2024)
New Revision: 1452

Modified:
   trunk/lit/ChangeLog
   trunk/lit/tex4ht-4ht.tex
   trunk/lit/tex4ht-html4.tex
   trunk/lit/tex4ht-mathml.tex
Log:
added proper support for the mhchem package

Modified: trunk/lit/ChangeLog
===================================================================
--- trunk/lit/ChangeLog	2024-01-23 14:16:56 UTC (rev 1451)
+++ trunk/lit/ChangeLog	2024-01-24 14:50:53 UTC (rev 1452)
@@ -1,3 +1,11 @@
+2024-01-24  Michal Hoftich  <michal.h21 at gmail.com>
+
+	* tex4ht-4ht.tex (mhchem.4ht),
+	* tex4ht-mathml.tex (mathml.4ht),
+	* tex4ht-html4.tex (html4.4ht): added proper support for the Mhchem
+	package.
+	https://tex.stackexchange.com/a/707660/2891
+
 2024-01-23  Michal Hoftich  <michal.h21 at gmail.com>
 
 	* tex4ht-sty.tex (tex4ht.sty): introduced \protected:edef as a

Modified: trunk/lit/tex4ht-4ht.tex
===================================================================
--- trunk/lit/tex4ht-4ht.tex	2024-01-23 14:16:56 UTC (rev 1451)
+++ trunk/lit/tex4ht-4ht.tex	2024-01-24 14:50:53 UTC (rev 1452)
@@ -30794,6 +30794,231 @@
 \cs_set_protected:Npn \siunitx_cell_end: {}
 >>>
 
+%%%%%%%%%%%%%%%
+\Section{Mhchem}
+%%%%%%%%%%%%%%%
+
+\<mhchem.4ht\><<<
+% mhchem.4ht (|version), generated from |jobname.tex
+% Copyright 2024 TeX Users Group
+% Copyright 2015-2021 Martin Hensel
+|<TeX4ht license text|>
+|<mhchem redefinitions|>
+
+\Hinput{mhchem}
+\endinput
+>>> \AddFile{9}{mhchem}
+
+\<mhchem redefinitions\><<<
+\ExplSyntaxOn
+% basic mhchem containers
+\NewConfigure{mhchemce}{2}
+\NewConfigure{mhchemcf}{2}
+
+\pend:def\__mhchem_output_begin_ce:{\a:mhchemce}
+\append:def\__mhchem_output_end_ce:{\b:mhchemce}
+\pend:def\__mhchem_output_begin_cf:{\a:mhchemcf}
+\append:def\__mhchem_output_end_cf:{\b:mhchemcf}
+
+% alternative version of coreFivd
+
+\NewConfigure{mhchemisotope}{3}
+
+\NewConfigure{mhchemsub}{2}
+
+\NewConfigure{mhchemsup}{2}
+
+\cs_set_protected:Npn \__mhchem_output_coreFivefourht:nnnnnnn #1#2#3#4#5#6#7
+  {
+    \bool_if:nT
+      { \tl_if_empty_p:n {#7}  &&  ! \tl_if_empty_p:n {#5} }
+      { \bool_set_true:N \l__mhchem_option_superscriptsStacked_bool }
+      
+    \tl_if_empty:nF {#1#2} 
+      {
+        \a:mhchemisotope
+        \__mhchem_output_withFont:n { #1 } 
+        \b:mhchemisotope
+        \__mhchem_output_withFont:n { #2 }
+        \c:mhchemisotope
+      }
+    \__mhchem_output_withFont:n { #3 } 
+    \bool_if:NTF \l__mhchem_option_superscriptsStacked_bool
+      {
+        \tl_if_empty:nTF {#4#5#7} 
+          {
+            \tl_if_empty:nF {#6}
+              {
+                \a:mhchemsub
+                \__mhchem_output_withFont:n { #6 }
+                \b:mhchemsub
+              }
+          }
+          {
+            \tl_if_empty:nTF {#6}
+              {
+                \a:mhchemsup
+                \__mhchem_output_withFont:n { #4#5#7 }
+                \b:mhchemsup
+              }
+              { 
+              	\HCode { <span~class="mhchem-supsub"> }
+              	\__mhchem_output_withFont:n { #4#5#7 }
+              	\HCode { <br~/>&\#xfeff; }
+              	\__mhchem_output_withFont:n { #6 }
+              	\HCode { </span> } 
+             }
+          }
+      }
+      {
+        \tl_if_empty:nF {#4}
+          {
+            \a:mhchemsup
+            \__mhchem_output_withFont:n { #4 }
+            \b:mhchemsup
+          }
+		\tl_if_empty:nF {#6}
+		  { 
+            \a:mhchemsub
+            \__mhchem_output_withFont:n { #6 }
+            \b:mhchemsub
+		  }
+        \tl_if_empty:nF {#5#7} 
+          { 
+            \a:mhchemsup
+            \__mhchem_output_withFont:n { #5#7 }
+            \b:mhchemsup
+          }
+      }
+  }
+
+% replace original coreFive with our alternative version. it will work in picture math
+\HLet\__mhchem_output_coreFive:nnnnnnn\__mhchem_output_coreFivefourht:nnnnnnn
+
+\cs_set_protected:Npn \__mhchem_output_withFont:n #1  %. output #1 as math or text
+  {
+    \bool_if:NTF \l__mhchem_output_isMathMode_bool
+      { \mathrm {#1} }
+      { \text {#1} }
+  }
+
+\NewConfigure{mhchemoperator}{2}
+
+% ideally, the following commands should be redefined using \HLet, to support picture math. 
+% the current definition should work in MathML, I am not sure about normall HTML, as 
+\cs_set_protected:Npn \__mhchem_output_skipAfterAmount: { \HCode { ~ } }  % space for copy & paste
+\cs_set_protected:Npn \__mhchem_output_skipBeforeStateOfAggregation: {}
+\cs_set_protected:Npn \__mhchem_output_minus: { \HCode { − } }
+\cs_set_protected:Npn \__mhchem_output_operatorPlus:
+  { \a:mhchemoperator + \b:mhchemoperator  }
+\cs_set_protected:Npn \__mhchem_output_operatorMinus:
+  { \a:mhchemoperator\HCode {−} \b:mhchemoperator }
+\cs_set_protected:Npn \__mhchem_output_operatorEquals:
+  { \a:mhchemoperator =  \b:mhchemoperator }
+\cs_set_protected:Npn \__mhchem_output_operatorPlusMinus:
+  {\a:mhchemoperator \HCode {± } \b:mhchemoperator }
+\cs_set_protected:Npn \__mhchem_output_electronDot: { \HCode { • } }
+\cs_set_protected:Npn \__mhchem_output_additionCompound: { \HCode { · } }
+\cs_set_protected:Npn \__mhchem_output_excited: { \HCode { &\#x2731; } }
+\cs_set_protected:Npn \__mhchem_output_commaDecimal: { , }
+\cs_set_protected:Npn \__mhchem_output_commaEnumeration: {,\HCode {   } }
+\cs_set_protected:Npn \__mhchem_output_commaEnumerationSmall: {,\HCode{   } }
+  
+\cs_set_protected:Npn \__mhchem_output_bond_single: { \a:mhchemoperator{\HCode { − }}\b:mhchemoperator}
+\cs_set_protected:Npn \__mhchem_output_bond_double: { \a:mhchemoperator{\HCode { = }}\b:mhchemoperator}
+\cs_set_protected:Npn \__mhchem_output_bond_triple: { \a:mhchemoperator{\HCode { ≡ }}\b:mhchemoperator}
+% todo: add MathML support for these
+\cs_set_protected:Npn \__mhchem_output_bond_half:  % todo: improve
+  {\a:mhchembondhalf}
+\cs_set_protected:Npn \__mhchem_output_bond_oneAndHalf:  % todo: improve 
+  {\a:mhchembondoneandhalf}
+\cs_set_protected:Npn \__mhchem_output_bond_twoAndHalf:  % todo: improve
+  {\a:mhchembondtwoandhalf}
+\cs_set_protected:Npn \__mhchem_output_bond_twoAndHalff:  % todo: improve
+  {\a:mhchembondtwoandhalff}
+
+\NewConfigure{mhchembondhalf}{1}
+\NewConfigure{mhchembondoneandhalf}{1}
+\NewConfigure{mhchembondtwoandhalf}{1}
+\NewConfigure{mhchembondtwoandhalff}{1}
+\cs_set_protected:Npn \__mhchem_output_bond_dotdotdot: { \HCode { ··· } }
+\cs_set_protected:Npn \__mhchem_output_bond_dotdotdotdot: { \HCode { ···· } }
+\cs_set_protected:Npn \__mhchem_output_bond_rightArrow: { \HCode { &\#xffeb; } }
+\cs_set_protected:Npn \__mhchem_output_bond_leftArrow: { \HCode { &\#xffe9; } }
+
+
+
+\NewConfigure{mhchemarrow}{2}
+\NewConfigure{mhchemarrowabove}{2}
+
+\NewConfigure{mhchemarrowyields}{1}
+\NewConfigure{mhchemarrowyieldsLeft}{1}
+\NewConfigure{mhchemarrowyieldsLeftRight}{1}
+\NewConfigure{mhchemarrowmesomerism}{1}
+\NewConfigure{mhchemarrowequilibrium}{1}
+\NewConfigure{mhchemarrowequilibriumRight}{1}
+\NewConfigure{mhchemarrowequilibriumLeft}{1}
+
+
+
+
+\cs_set_protected:Npn \__mhchem_arrow_deployfourht:nnnnn #1#2#3#4#5
+  {
+    \a:mhchemarrow
+    \tl_if_empty:nF {#3#5}
+      {
+        \a:mhchemarrowabove
+        \str_case:nnF {#2}
+          {
+            {   } { \ce { #3 } }
+            { M } { \ensuremath { #3 } }
+            { T } { \text { #3 } }
+            { C } { \ce { #3 } }
+          }
+          { \msg_error:nnn { mhchem } { unexpected-arrow-type } {#2} }
+          \b:mhchemarrowabove
+      }
+    \str_case:nnF {#1}
+      {
+        { yields } {\a:mhchemarrowyields }
+        { yieldsLeft } {\a:mhchemarrowyieldsLeft }
+        { yieldsLeftRight } {\a:mhchemarrowyieldsLeftRight }  % todo: improve
+        { esomerism } {\a:mhchemarrowesomerism }  % todo: improve
+        { equilibrium } {\a:mhchemarrowequilibrium }  % todo: improve
+        { equilibriumRight } {\a:mhchemarrowequilibriumRight }  % todo: improve
+        { equilibriumLeft } {\a:mhchemarrowequilibriumLeft }  % todo: improve
+      }
+      { \msg_error:nnn { mhchem } { unexpected-arrow-type } {#1} }
+    \tl_if_empty:nF {#3#5}
+      {
+        \a:mhchemarrowabove
+        \str_case:nnF {#2}
+          {
+            {   } { \ce { #5 } }
+            { M } { \ensuremath { #5 } }
+            { T } { \text { #5 } }
+            { C } { \ce { #5 } }
+          }
+          { \msg_error:nnn { mhchem } { unexpected-arrow-type } {#2} }
+        \b:mhchemarrowabove
+      }
+    \b:mhchemarrow
+  }
+
+\HLet\__mhchem_arrow_deploy:nnnnn\__mhchem_arrow_deployfourht:nnnnn
+  
+\ExplSyntaxOff
+
+
+% Additional configurations for MathML
+
+% print mathml command or html, depending on if we are inside mathml or not
+\newcommand\:mhmathmlorhtml[2]{\ifmathml\a:mathml #1\else #2\fi}
+\newcommand\:mhonlyinmathml[1]{\ifmathml #1\fi}
+
+
+>>>
+
 %%%%%%%%%%%%%
 \Section{Ushort}
 %%%%%%%%%%%%%

Modified: trunk/lit/tex4ht-html4.tex
===================================================================
--- trunk/lit/tex4ht-html4.tex	2024-01-23 14:16:56 UTC (rev 1451)
+++ trunk/lit/tex4ht-html4.tex	2024-01-24 14:50:53 UTC (rev 1452)
@@ -21752,6 +21752,52 @@
 >>>
 
 
+%%%%%%%%%%%%%%%%%%%%%
+\section{mhchem}
+%%%%%%%%%%%%%%%%%%%%%
+
+\<configure html4 mhchem\><<<
+\typeout{***************** hello mhchem}
+\Configure{mhchemcf}{\HCode{<span class="mhchem">}}{\HCode{</span>}}
+\Configure{mhchemce}{\HCode{<span class="mhchem">}}{\HCode{</span>}}
+
+\Configure{mhchemisotope}{\HCode{<span class="mhchem-isotope">}}{\HCode{<br />&\#xfeff;}}{\HCode{</span>}}
+\Configure{mhchemsub}{\HCode {<sub class="mhchem-sub">}}{\HCode{</sub>} }
+\Configure{mhchemsup}{\HCode {<sup class="mhchem-sup">}}{\HCode{</sup>} }
+\Configure{mhchemoperator}{\HCode {<span class="mhchem-operator">}}{\HCode {</span>}}
+\Configure{mhchemarrow}{\HCode {<span class="mhchem-arrow">}}{\HCode{</span>}}
+\Configure{mhchemarrowabove}{\HCode {<span class="mhchem-above">}}{\HCode{</span>}}
+\Configure{mhchemarrowyields}{\HCode{<span class="mhchem-arrow-normal">&\#x27F6;</span>}}
+\Configure{mhchemarrowyieldsLeft}{\HCode{<span class="mhchem-arrow-normal">&\#x2190;</span>}}
+\Configure{mhchemarrowyieldsLeftRight}{\HCode{<span class="mhchem-arrow-normal">&\#x21c4;</span>}}  % todo: improve
+\Configure{mhchemarrowmesomerism}{\HCode{<span class="mhchem-arrow-normal">&\#x2194;</span>}}  % todo: improve
+\Configure{mhchemarrowequilibrium}{\HCode{<span class="mhchem-arrow-normal">&\#x21cc;</span>}}  % todo: improve
+\Configure{mhchemarrowequilibriumRight}{\HCode{<span class="mhchem-arrow-larger">&\#x21c0;</span><span class="mhchem-arrow-complement">&\#x21bd;</span>}}  % todo: improve
+\Configure{mhchemarrowequilibriumLeft}{\HCode{<span class="mhchem-arrow-complement">&\#x21c0;</span><span class="mhchem-arrow-larger">&\#x21bd;</span>}}  % todo: improve
+\Configure{mhchembondhalf}{\HCode{<span class="mhchem-bond-half-middle">&\#xfe4d;</span>}}
+\Configure{mhchembondoneandhalf}{\HCode{<span class="mhchem-rlap">−</span><span~class="mhchem-bond-half-top">&\#xfe4d;</span>}}
+\Configure{mhchembondtwoandhalf}{\HCode{<span class="mhchem-rlap">=</span><span~class="mhchem-bond-half-top">&\#xfe4d;</span>}}
+\Configure{mhchembondtwoandhalff}{\HCode{<span class="mhchem-rlap mhchem-bond-top">−</span><span class="mhchem-rlap mhchem-bond-bottom">−</span><span class="mhchem-bond-half-middle">&\#xfe4d;</span>}}
+
+\Css{.mhchem ~ .mhchem-cf { white-space: nowrap; }}
+\Css{.mhchem ~ .mhchem-isotope { font-size: 0.65em; line-height: 1; display: inline-block; vertical-align: sub; text-align: right; }}
+\Css{.mhchem ~ .mhchem-supsub  { font-size: 0.65em; line-height: 1; display: inline-block; vertical-align: sub; }}
+\Css{.mhchem ~ .mhchem-sup     { font-size: 0.65em; line-height: 1; display: inline-block; vertical-align: 68\%; }}
+\Css{.mhchem ~ .mhchem-sub     { font-size: 0.65em; line-height: 1; display: inline-block; vertical-align: sub; }}
+\Css{.mhchem ~ .mhchem-rlap { display: inline-block; width: 0; }}
+\Css{.mhchem ~ .mhchem-bond-half-top    { vertical-align: 60\%; }}
+\Css{.mhchem ~ .mhchem-bond-half-middle { vertical-align: 35\%; }}
+\Css{.mhchem ~ .mhchem-bond-top         { vertical-align: 20\%; }}
+\Css{.mhchem ~ .mhchem-bond-bottom      { vertical-align: -20\%; }}
+\Css{.mhchem ~ .mhchem-arrow { display: inline-flex; flex-direction: column; vertical-align: middle; }}
+\Css{.mhchem ~ .mhchem-arrow > span { line-height: 80\%; text-align: center; }}
+\Css{.mhchem ~ .mhchem-arrow > .mhchem-above { min-height: 1em; font-size: 60\%; }}
+\Css{.mhchem ~ .mhchem-arrow > .mhchem-below { min-height: 1em; font-size: 60\%; }}
+\Css{.mhchem ~ .mhchem-arrow > span.mhchem-arrow-normal { line-height: 40\%; }}
+\Css{.mhchem ~ .mhchem-arrow > span.mhchem-arrow-larger { line-height: 25\%; font-size: 150\%; }}
+\Css{.mhchem ~ .mhchem-arrow > span.mhchem-arrow-complement { line-height: 25\%; }}
+>>>
+
 %%%%%%%%%%%%%%%%%%%%%%
 \section{transparent}
 %%%%%%%%%%%%%%%%%%%%%%

Modified: trunk/lit/tex4ht-mathml.tex
===================================================================
--- trunk/lit/tex4ht-mathml.tex	2024-01-23 14:16:56 UTC (rev 1451)
+++ trunk/lit/tex4ht-mathml.tex	2024-01-24 14:50:53 UTC (rev 1452)
@@ -5509,8 +5509,60 @@
 >>>
 
 
+%%%%%%%%%%%%%%%%%
+\section{mhchem}
+%%%%%%%%%%%%%%%%
 
 
+\<configure mathml mhchem\><<<
+\Configure{mhchemcf}{\HCode{<\:mhmathmlorhtml{mrow}{span}\space class="mhchem-cf">}}{\HCode{</\:mhmathmlorhtml{mrow}{span}>}}
+\Configure{mhchemce}{\HCode{<\:mhmathmlorhtml{mrow}{span}\space class="mhchem-ce">}}{\HCode{</\:mhmathmlorhtml{mrow}{span}>}}
+
+\Configure{mhchemsub}{%
+  \:mhmathmlorhtml{%
+  \Send{BACK}%
+  {<\a:mathml msub><\a:mathml mrow\Hnewline>}%
+  \Tg</\a:mathml mrow>\Tg<\a:mathml mrow\Hnewline>\trap:base%
+  }{%
+  \HCode{<sub>}}%
+}{\:mhmathmlorhtml{\Tg</\a:mathml mrow>\TG</\a:mathml msub\Hnewline>}{\HCode{</sub>}}}
+\Configure{mhchemsup}{%
+  \:mhmathmlorhtml{
+  \Send{BACK}
+  {<\a:mathml msup><\a:mathml mrow\Hnewline>}%
+  \Tg</\a:mathml mrow>\Tg<\a:mathml mrow\Hnewline>\trap:base
+  }{%
+  \HCode{<sup>}}%
+}{\:mhmathmlorhtml{\Tg</\a:mathml mrow>\TG</\a:mathml msup\Hnewline>}{\HCode{</sup>}}}
+
+\Configure{mhchemoperator}{\HCode{<\:mhmathmlorhtml{mo}{span} class="mhchem-operator">}\PauseMathClass}{\EndPauseMathClass\HCode {</\:mhmathmlorhtml{mo}{span}>}}
+
+\Configure{mhchemarrow}{\HCode {<\:mhmathmlorhtml{mrow}{span} class="mhchem-arrow">\:mhonlyinmathml{\a:mhchemoperator}}}{\HCode{\:mhonlyinmathml{\b:mhchemoperator}</\:mhmathmlorhtml{mrow}{span}>}}
+\Configure{mhchemarrowabove}{\HCode{<\:mhmathmlorhtml{mrow}{span} class="mhchem-above">\:mhonlyinmathml{\a:mhchemoperator}}}{\HCode{\:mhonlyinmathml{\b:mhchemoperator}</\:mhmathmlorhtml{mrow}{span}>}}
+\Configure{mhchemarrowyields}{\HCode{<\:mhmathmlorhtml{mrow}{span} class="mhchem-arrow-normal">\:mhonlyinmathml{\a:mhchemoperator}&\#x2192;\:mhonlyinmathml{\b:mhchemoperator}</\:mhmathmlorhtml{mrow}{span}>}}
+\Configure{mhchemarrowyieldsLeft}{\HCode{<\:mhmathmlorhtml{mrow}{span} class="mhchem-arrow-normal">\:mhonlyinmathml{\a:mhchemoperator}&\#x2190;\:mhonlyinmathml{\b:mhchemoperator}</\:mhmathmlorhtml{mrow}{span}>} }
+\Configure{mhchemarrowyieldsLeftRight}{\HCode{<\:mhmathmlorhtml{mrow}{span} class="mhchem-arrow-normal">\:mhonlyinmathml{\a:mhchemoperator}&\#x21c4;\:mhonlyinmathml{\b:mhchemoperator}</\:mhmathmlorhtml{mrow}{span}>}}  % todo: improve
+\Configure{mhchemarrowmesomerism}{\HCode{<\:mhmathmlorhtml{mrow}{span} class="mhchem-arrow-normal">\:mhonlyinmathml{\a:mhchemoperator}&\#x2194;\:mhonlyinmathml{\b:mhchemoperator}</\:mhmathmlorhtml{mrow}{span}>}}  % todo: improve
+\Configure{mhchemarrowequilibrium}{\HCode{<\:mhmathmlorhtml{mrow}{span} class="mhchem-arrow-normal">\:mhonlyinmathml{\a:mhchemoperator}&\#x21cc;\:mhonlyinmathml{\b:mhchemoperator}</\:mhmathmlorhtml{mrow}{span}>}}  % todo: improve
+% this configuration leads to two arrows next to each other. but I cannot a
+% better configuration right now. this symbol doesn't have Unicode support
+\Configure{mhchemarrowequilibriumRight}
+{\HCode{<\:mhmathmlorhtml{mrow}{span} class="mhchem-arrow-larger">\:mhonlyinmathml{\a:mhchemoperator}&\#x21c0;\:mhonlyinmathml{\b:mhchemoperator}</\:mhmathmlorhtml{mrow}{span}>
+<\:mhmathmlorhtml{mrow}{span} class="mhchem-arrow-complement">\:mhonlyinmathml{\a:mhchemoperator}&\#x21bd;\:mhonlyinmathml{\b:mhchemoperator}</\:mhmathmlorhtml{mrow}{span}>}
+}  % todo: improve
+\Configure{mhchemarrowequilibriumLeft}
+{\HCode{<\:mhmathmlorhtml{mrow}{span} class="mhchem-arrow-complement">\:mhonlyinmathml{\a:mhchemoperator}&\#x21c0;\:mhonlyinmathml{\b:mhchemoperator}</\:mhmathmlorhtml{mrow}{span}>
+<\:mhmathmlorhtml{mrow}{span} class="mhchem-arrow-larger">\:mhonlyinmathml{\a:mhchemoperator}&\#x21bd;\:mhonlyinmathml{\b:mhchemoperator}</\:mhmathmlorhtml{mrow}{span}>}
+}  % todo: improve
+% this is not the right symbol
+% \Configure{mhchemarrowequilibriumRight}{\a:mhchemoperator\HCode{&\#x2942;}\b:mhchemoperator }  % todo: improve
+% \Configure{mhchemarrowequilibriumLeft}{\a:mhchemoperator\HCode{&\#x2943;}\b:mhchemoperator}  % todo: improve
+\Configure{mhchembondhalf}{\HCode{<span class="mhchem-bond-half-middle">&\#xfe4d;</span>}}
+\Configure{mhchembondoneandhalf}{\HCode{<span class="mhchem-rlap">−</span><span class="mhchem-bond-half-top">&\#xfe4d;</span>}}
+\Configure{mhchembondtwoandhalf}{\HCode{<span class="mhchem-rlap">=</span><span class="mhchem-bond-half-top">&\#xfe4d;</span>}}
+\Configure{mhchembondtwoandhalff}{\HCode{<span class="mhchem-rlap mhchem-bond-top">−</span><span class="mhchem-rlap mhchem-bond-bottom">−</span><span class="mhchem-bond-half-middle">&\#xfe4d;</span>}}
+>>>
+
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \chapter{Notes}
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



More information about the tex4ht-commits mailing list.