%% mhchem.4ht
%% 2021-12-31
%% Copyright 2015-2021 Martin Hensel
%
%% This file is part of the mhchem bundle for LaTeX
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version 1.3c
% which is included as lppl-1-3c.txt.
%
% This work has the LPPL maintenance status "maintained".
% The Current Maintainer of this work is Martin Hensel.
%
% ( In order to fight spam, the maintainer's contact )
% ( information is "encrypted" with ROT13. )
% ( If you do not know ROT13 yet and have no tool for )
% ( decryption, simply do an Internet search for "ROT13". )
%
% ,---[ ROT 13 ]---
% | Gur Pheerag Znvagnvare bs guvf jbex vf Znegva Urafry
% | jub pna or pbagnpgrq ivn
% | zupurz@ZnegvaUrafry.qr
% | be ivn znvy
% | Znegva Urafry
% | Cbfgfge. 20
% | 09232 Unegznaafqbes
% | Treznal
% `----------
%
% This work consists of all files listed in manifest.txt.
%
%
\ExplSyntaxOn
\Css
{
.mhchem ~ .mhchem-cf { white-space: nowrap; }
.mhchem ~ .mhchem-isotope { font-size: 0.65em; line-height: 1; display: inline-block; vertical-align: sub; text-align: right; }
.mhchem ~ .mhchem-supsub { font-size: 0.65em; line-height: 1; display: inline-block; vertical-align: sub; }
.mhchem ~ .mhchem-sup { font-size: 0.65em; line-height: 1; display: inline-block; vertical-align: 68\%; }
.mhchem ~ .mhchem-sub { font-size: 0.65em; line-height: 1; display: inline-block; vertical-align: sub; }
.mhchem ~ .mhchem-rlap { display: inline-block; width: 0; }
.mhchem ~ .mhchem-bond-half-top { vertical-align: 60\%; }
.mhchem ~ .mhchem-bond-half-middle { vertical-align: 35\%; }
.mhchem ~ .mhchem-bond-top { vertical-align: 20\%; }
.mhchem ~ .mhchem-bond-bottom { vertical-align: -20\%; }
.mhchem ~ .mhchem-arrow { display: inline-flex; flex-direction: column; vertical-align: middle; }
.mhchem ~ .mhchem-arrow > span { line-height: 80\%; text-align: center; }
.mhchem ~ .mhchem-arrow > .mhchem-above { min-height: 1em; font-size: 60\%; }
.mhchem ~ .mhchem-arrow > .mhchem-below { min-height: 1em; font-size: 60\%; }
.mhchem ~ .mhchem-arrow > span.mhchem-arrow-normal { line-height: 40\%; }
.mhchem ~ .mhchem-arrow > span.mhchem-arrow-larger { line-height: 25\%; font-size: 150\%; }
.mhchem ~ .mhchem-arrow > span.mhchem-arrow-complement { line-height: 25\%; }
}
\cs_set_protected:Npn \__mhchem_output_begin_ce: { \HCode { } }
\cs_set_protected:Npn \__mhchem_output_end_ce: { \HCode { } }
\cs_set_protected:Npn \__mhchem_output_begin_cf: { \HCode { } }
\cs_set_protected:Npn \__mhchem_output_end_cf: { \HCode { } }
\cs_set_protected:Npn \__mhchem_output_coreFive: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}
{
\HCode { }
\__mhchem_output_withFont:n { #1 }
\HCode {
&\#xfeff; }
\__mhchem_output_withFont:n { #2 }
\HCode { }
}
\__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}
{
\HCode { }
\__mhchem_output_withFont:n { #6 }
\HCode { }
}
}
{
\tl_if_empty:nTF {#6}
{
\HCode { }
\__mhchem_output_withFont:n { #4#5#7 }
\HCode { }
}
{
\HCode { }
\__mhchem_output_withFont:n { #4#5#7 }
\HCode {
&\#xfeff; }
\__mhchem_output_withFont:n { #6 }
\HCode { }
}
}
}
{
\tl_if_empty:nF {#4}
{
\HCode { }
\__mhchem_output_withFont:n { #4 }
\HCode { }
}
\tl_if_empty:nF {#6}
{
\HCode { }
\__mhchem_output_withFont:n { #6 }
\HCode { }
}
\tl_if_empty:nF {#5#7}
{
\HCode { }
\__mhchem_output_withFont:n { #5#7 }
\HCode { }
}
}
}
\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} }
}
\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:
{ \HCode { ~ } + \HCode { ~ } }
\cs_set_protected:Npn \__mhchem_output_operatorMinus:
{ \HCode { ~ − ~ } }
\cs_set_protected:Npn \__mhchem_output_operatorEquals:
{ \HCode { ~ } = \HCode { ~ } }
\cs_set_protected:Npn \__mhchem_output_operatorPlusMinus:
{ \HCode { ~ ± ~ } }
\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: { \HCode { − } }
\cs_set_protected:Npn \__mhchem_output_bond_double: { \HCode { = } }
\cs_set_protected:Npn \__mhchem_output_bond_triple: { \HCode { ≡ } }
\cs_set_protected:Npn \__mhchem_output_bond_half: % todo: improve
{ \HCode { &\#xfe4d; } }
\cs_set_protected:Npn \__mhchem_output_bond_oneAndHalf: % todo: improve
{ \HCode { −&\#xfe4d; } }
\cs_set_protected:Npn \__mhchem_output_bond_twoAndHalf: % todo: improve
{ \HCode { =&\#xfe4d; } }
\cs_set_protected:Npn \__mhchem_output_bond_twoAndHalff: % todo: improve
{ \HCode { −−&\#xfe4d; } }
\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; } }
\cs_set_protected:Npn \__mhchem_arrow_deploy:nnnnn #1#2#3#4#5
{
\HCode { }
\tl_if_empty:nF {#3#5}
{
\HCode { }
\str_case:nnF {#2}
{
{ } { \ce { #3 } }
{ M } { \ensuremath { #3 } }
{ T } { \text { #3 } }
{ C } { \ce { #3 } }
}
{ \msg_error:nnn { mhchem } { unexpected-arrow-type } {#2} }
\HCode { }
}
\str_case:nnF {#1}
{
{ yields } { \HCode { &\#x2192; } }
{ yieldsLeft } { \HCode { &\#x2190; } }
{ yieldsLeftRight } { \HCode { &\#x21c4; } } % todo: improve
{ mesomerism } { \HCode { &\#x2194; } } % todo: improve
{ equilibrium } { \HCode { &\#x21cc; } } % todo: improve
{ equilibriumRight } { \HCode { &\#x21c0;&\#x21bd; } } % todo: improve
{ equilibriumLeft } { \HCode { &\#x21c0;&\#x21bd; } } % todo: improve
}
{ \msg_error:nnn { mhchem } { unexpected-arrow-type } {#1} }
\tl_if_empty:nF {#3#5}
{
\HCode { }
\str_case:nnF {#2}
{
{ } { \ce { #5 } }
{ M } { \ensuremath { #5 } }
{ T } { \text { #5 } }
{ C } { \ce { #5 } }
}
{ \msg_error:nnn { mhchem } { unexpected-arrow-type } {#2} }
\HCode { }
}
\HCode { }
}
\ExplSyntaxOff