summaryrefslogtreecommitdiff
path: root/support
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-01-26 03:00:51 +0000
committerNorbert Preining <norbert@preining.info>2024-01-26 03:00:51 +0000
commit2eae12e56ca15396e8ff63b3a9b0d450d675dc5e (patch)
tree7e6e61de2a219478694da749de27e15fe7c69ac8 /support
parent768d5db2700eb846ed6616dc4839993f193b22cd (diff)
CTAN sync 202401260300
Diffstat (limited to 'support')
-rw-r--r--support/TeX4ht/source/ChangeLog8
-rw-r--r--support/TeX4ht/source/tex4ht-4ht.tex227
-rw-r--r--support/TeX4ht/source/tex4ht-html4.tex52
-rw-r--r--support/TeX4ht/source/tex4ht-mathml.tex56
4 files changed, 337 insertions, 6 deletions
diff --git a/support/TeX4ht/source/ChangeLog b/support/TeX4ht/source/ChangeLog
index 2d9c40eaf8..efbc9a4d5c 100644
--- a/support/TeX4ht/source/ChangeLog
+++ b/support/TeX4ht/source/ChangeLog
@@ -1,3 +1,11 @@
+2024-01-24 Michal Hoftich <michal.h21@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@gmail.com>
* tex4ht-sty.tex (tex4ht.sty): introduced \protected:edef as a
diff --git a/support/TeX4ht/source/tex4ht-4ht.tex b/support/TeX4ht/source/tex4ht-4ht.tex
index 1cba02fc9c..98412b5506 100644
--- a/support/TeX4ht/source/tex4ht-4ht.tex
+++ b/support/TeX4ht/source/tex4ht-4ht.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-4ht.tex 1448 2024-01-22 11:15:28Z michal_h21 $
+% $Id: tex4ht-4ht.tex 1452 2024-01-24 14:50:53Z michal_h21 $
% tex tex4ht-4ht or ht tex tex4ht-4ht
%
% Copyright 2009-2024 TeX Users Group
@@ -30794,6 +30794,231 @@ it come out as a complete mess.
\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 { &minus; } }
+\cs_set_protected:Npn \__mhchem_output_operatorPlus:
+ { \a:mhchemoperator + \b:mhchemoperator }
+\cs_set_protected:Npn \__mhchem_output_operatorMinus:
+ { \a:mhchemoperator\HCode {&minus;} \b:mhchemoperator }
+\cs_set_protected:Npn \__mhchem_output_operatorEquals:
+ { \a:mhchemoperator = \b:mhchemoperator }
+\cs_set_protected:Npn \__mhchem_output_operatorPlusMinus:
+ {\a:mhchemoperator \HCode {&plusmn; } \b:mhchemoperator }
+\cs_set_protected:Npn \__mhchem_output_electronDot: { \HCode { &bull; } }
+\cs_set_protected:Npn \__mhchem_output_additionCompound: { \HCode { &middot; } }
+\cs_set_protected:Npn \__mhchem_output_excited: { \HCode { &\#x2731; } }
+\cs_set_protected:Npn \__mhchem_output_commaDecimal: { , }
+\cs_set_protected:Npn \__mhchem_output_commaEnumeration: {,\HCode { &thinsp; } }
+\cs_set_protected:Npn \__mhchem_output_commaEnumerationSmall: {,\HCode{ &thinsp; } }
+
+\cs_set_protected:Npn \__mhchem_output_bond_single: { \a:mhchemoperator{\HCode { &minus; }}\b:mhchemoperator}
+\cs_set_protected:Npn \__mhchem_output_bond_double: { \a:mhchemoperator{\HCode { &equals; }}\b:mhchemoperator}
+\cs_set_protected:Npn \__mhchem_output_bond_triple: { \a:mhchemoperator{\HCode { &equiv; }}\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 { &middot;&middot;&middot; } }
+\cs_set_protected:Npn \__mhchem_output_bond_dotdotdotdot: { \HCode { &middot;&middot;&middot;&middot; } }
+\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}
%%%%%%%%%%%%%
diff --git a/support/TeX4ht/source/tex4ht-html4.tex b/support/TeX4ht/source/tex4ht-html4.tex
index 7a4de2d7f7..82cd70f74a 100644
--- a/support/TeX4ht/source/tex4ht-html4.tex
+++ b/support/TeX4ht/source/tex4ht-html4.tex
@@ -1,8 +1,8 @@
-% $Id: tex4ht-html4.tex 1423 2023-12-13 13:20:15Z michal_h21 $
+% $Id: tex4ht-html4.tex 1453 2024-01-24 22:08:34Z karl $
% Compile 4 times: latex tex4ht-html4
% Copy html4.4ht into the work directory before all but the last compilation.
%
-% Copyright 2009-2023 TeX Users Group
+% Copyright 2009-2024 TeX Users Group
% Copyright 1996-2009 Eitan M. Gurari
% Released under LPPL 1.3c+.
% See tex4ht-cpright.tex for license text.
@@ -65,7 +65,7 @@
\<html4\><<<
% html4.4ht (|version), generated from |jobname.tex
-% Copyright 2009-2023 TeX Users Group
+% Copyright 2009-2024 TeX Users Group
% Copyright |CopyYear.1997. Eitan M. Gurari
|<TeX4ht copywrite|>
>>>
@@ -21752,6 +21752,52 @@ users redefine the latter macro.
>>>
+%%%%%%%%%%%%%%%%%%%%%
+\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">&minus;</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">&minus;</span><span class="mhchem-rlap mhchem-bond-bottom">&minus;</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}
%%%%%%%%%%%%%%%%%%%%%%
diff --git a/support/TeX4ht/source/tex4ht-mathml.tex b/support/TeX4ht/source/tex4ht-mathml.tex
index 504bd4c910..f2eb4939ba 100644
--- a/support/TeX4ht/source/tex4ht-mathml.tex
+++ b/support/TeX4ht/source/tex4ht-mathml.tex
@@ -1,4 +1,4 @@
-% $Id: tex4ht-mathml.tex 1413 2023-11-21 16:43:06Z michal_h21 $$
+% $Id: tex4ht-mathml.tex 1453 2024-01-24 22:08:34Z karl $$
% compile 3 times: latex tex4ht-mathltx
% or xhlatex tex4ht-mathltx "html,3,sections+"
%
@@ -536,7 +536,7 @@ xmlns="http://www.w3.org/1999/xhtml"
\<mathml\><<<
% mathml.4ht (|version), generated from |jobname.tex
-% Copyright 2009-2023 TeX Users Group
+% Copyright 2009-2024 TeX Users Group
% Copyright |CopyYear.1999. Eitan M. Gurari
|<TeX4ht copywrite|>
>>>
@@ -5509,8 +5509,60 @@ with small shifting.
>>>
+%%%%%%%%%%%%%%%%%
+\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">&minus;</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">&minus;</span><span class="mhchem-rlap mhchem-bond-bottom">&minus;</span><span class="mhchem-bond-half-middle">&\#xfe4d;</span>}}
+>>>
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Notes}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%