You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
tex-compiler/texmf-dist/tex/latex/lwarp/lwarp-chemmacros.sty

870 lines
25 KiB

%%
%% This is file `lwarp-chemmacros.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% lwarp.dtx (with options: `chemmacros')
%% This is a generated file.
%% Copyright 2016-2020 Brian Dunn
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
\LWR@ProvidesPackagePass{chemmacros}[2017/08/28]
\ExplSyntaxOn
\newcommand{\@ifchemmacrosmoduleloaded}[1]{%
\@ifl@aded{\c__chemmacros_module_extension_tl}{\c__chemmacros_module_prefix_tl.#1}%
}
\ExplSyntaxOff
\DeclareDocumentEnvironment{polymerdelims}{}
{\begin{lateximage}[-chemmacros- polymer]}
{\end{lateximage}}
\DeclareDocumentEnvironment{redoxreaction}{m m}
{\begin{lateximage}[-chemmacros- redoxreaction]}
{\end{lateximage}}
\ExplSyntaxOn
\AtBeginDocument{
\@ifchemmacrosmoduleloaded{acid-base}{
\PackageInfo{lwarp}{Patching~chemmacros~module~acid-base}
\cs_gset_protected:Npn \chemmacros_p:n #1
{
\begingroup
\boolfalse{mathjax}
\LWR@subsingledollar*{
\textbackslash{}p\{\LWR@HTMLsanitize{#1}\}
}{
chemmacrosp\protect\LWR@HTMLsanitize{\detokenize\expandafter{#1}}%
}{
\group_begin:
\mbox
{
\chemmacros_p_style:n {p}
\ensuremath {#1}
}
\group_end:
}
\endgroup
}
\RenewDocumentCommand \pH {} {
\begingroup
\boolfalse{mathjax}
\LWR@subsingledollar*{\textbackslash{}pH}{chemmacros}{
\chemmacros_p:n { \chemmacros_chemformula:n {H} }
}
\endgroup
}
\RenewDocumentCommand \pOH {} {
\begingroup
\boolfalse{mathjax}
\LWR@subsingledollar*{\textbackslash{}pOH}{chemmacros}{
\chemmacros_p:n { \chemmacros_chemformula:n {OH} }
}
\endgroup
}
\RenewDocumentCommand \pKa {O{}}
{
\begingroup
\boolfalse{mathjax}
\LWR@subsingledollar*{\textbackslash{}pKa{[}#1{]}}{chemmacros #1}{
\chemmacros_p:n
{
\Ka \ifblank {#1} {}
{ {} \c_math_subscript_token { \chemmacros_bold:n {#1} } }
}
}
\endgroup
}
\RenewDocumentCommand \pKb {O{}}
{
\begingroup
\boolfalse{mathjax}
\LWR@subsingledollar*{\textbackslash{}pKb{[}#1{]}}{chemmacros #1}{
\chemmacros_p:n
{
\Kb \ifblank {#1} {}
{ {} \c_math_subscript_token { \chemmacros_bold:n {#1} } }
}
}
\endgroup
}
\LetLtxMacro\LWR@chemmacros@origKa\Ka
\renewcommand*{\Ka}{%
\begingroup
\boolfalse{mathjax}
\LWR@subsingledollar*{\textbackslash{}Ka}{chemmacros}{%
\LWR@chemmacros@origKa%
}%
\endgroup
}
\LetLtxMacro\LWR@chemmacros@origKb\Kb
\renewcommand*{\Kb}{%
\begingroup
\boolfalse{mathjax}
\LWR@subsingledollar*{\textbackslash{}Kb}{chemmacros}{%
\LWR@chemmacros@origKb%
}%
\endgroup
}
\LetLtxMacro\LWR@chemmacros@origKw\Kw
\renewcommand*{\Kw}{%
\begingroup
\boolfalse{mathjax}
\LWR@subsingledollar*{\textbackslash{}Kw}{chemmacros}{
\LWR@chemmacros@origKw
}
\endgroup
}
}{}% \@ifchemmacrosmoduleloaded
}% AtBeginDocument
\AtBeginDocument{
\@ifchemmacrosmoduleloaded{charges}{
\PackageInfo{lwarp}{Patching~chemmacros~module~charges}
\cs_gset_protected:Npn \fplus {
\begingroup
\boolfalse{mathjax}
\LWR@subsingledollar*{\textbackslash{}fplus}{chemmacros}
{ \LWR@origensuredmath{\chemformula_fplus:} }
\endgroup
}
\cs_gset_protected:Npn \fminus {
\begingroup
\boolfalse{mathjax}
\LWR@subsingledollar*{\textbackslash{}fminus}{chemmacros}
{ \LWR@origensuredmath{\chemformula_fminus:} }
\endgroup
}
}{}% \@ifchemmacrosmoduleloaded
}% AtBeginDocument
\AtBeginDocument{
\@ifchemmacrosmoduleloaded{nomenclature}{
\PackageInfo{lwarp}{Patching~chemmacros~module~nomenclature}
\cs_gset_protected:Npn \chemmacros_charge:n #1
{
\ifnumcomp{\value{LWR@lateximagedepth}}{>}{0}
{\chemmacros_chemformula:n { {}^{#1} }}
{
\ifmmode
{\chemmacros_chemformula:n { {}^{#1} }}
\else
{ \textsuperscript{\ensuremath{#1}} }
\fi
}
}
\LetLtxMacro\LWR@chemmacros@origchemprime\chemprime
\protected\def\chemprime { \HTMLunicode{2032} }
\appto\LWR@restoreorigformatting{%
\LetLtxMacro\chemprime\LWR@chemmacros@origchemprime%
}
\ChemCompatibilityFrom{5.8}
\cs_gset_protected:Npn \__chemmacros_cip:n #1
{
\tl_set:Nn \l__chemmacros_tmpa_tl {#1}
\int_step_inline:nnnn {0} {1} {9}
{
\tl_replace_all:Nnn \l__chemmacros_tmpa_tl
{##1}
{ { \l__chemmacros_cip_number_tl ##1} }
}
{
\l__chemmacros_cip_inner_tl
\LWR@textcurrentcolor{\LWR@textcurrentfont{% lwarp
\l__chemmacros_tmpa_tl
}}% lwarp
}
}
\EndChemCompatibility
\RenewDocumentCommand \Sconf { O{S} } {
\begin{lateximage}[\textbackslash{}Sconf{[}#1{]}]*
\chemmacros_sconf:n {#1}
\end{lateximage}
}
\RenewDocumentCommand \Rconf { O{R} } {
\begin{lateximage}[\textbackslash{}Rconf{[}#1{]}]*
\chemmacros_rconf:n {#1}
\end{lateximage}
}
\cs_gset_protected:Npn \chemmacros_hapto:n #1
{
\begingroup
\boolfalse{mathjax}
\LWR@subsingledollar*{\textbackslash{}hapto\{#1\}}{chemmacros}{
\chemmacros_coordination_symbol:nnnn
{ \l__chemmacros_coord_use_hyphen_bool }
{
\chemmacros_if_compatibility:nnTF {>} {5.7}
{ \c_true_bool }
{ \c_false_bool }
}
{ \chemeta }
{#1}
}
\endgroup
}
\cs_gset_protected:Npn \chemmacros_dento:n #1
{
\begingroup
\boolfalse{mathjax}
\LWR@subsingledollar*{\textbackslash{}dento\{#1\}}{chemmacros}{
\chemmacros_coordination_symbol:nnnn
{ \l__chemmacros_coord_use_hyphen_bool }
{
\chemmacros_if_compatibility:nnTF {>} {5.7}
{ \c_true_bool }
{ \c_false_bool }
}
{ \chemkappa }
{#1}
}
\endgroup
}
\cs_gset_protected:Npn \chemmacros_bridge:n #1
{
\begingroup
\boolfalse{mathjax}
\LWR@subsingledollar*{\textbackslash{}bridge\{#1\}}{chemmacros}{
\chemmacros_coordination_symbol:nnnn
{ \l__chemmacros_coord_use_hyphen_bool }
{ \l__chemmacros_bridge_super_bool }
{ \chemmu }
{#1}
}
\endgroup
}
}{}% \@ifchemmacrosmoduleloaded
}% AtBeginDocument
\AtBeginDocument{
\@ifchemmacrosmoduleloaded{particles}{
\PackageInfo{lwarp}{Patching~chemmacros~module~particles}
\cs_gset_protected:Npn \chemmacros_declare_nucleophile:Nn #1#2
{
\cs_set_protected:cpn {__chemmacros_ \chemmacros_remove_backslash:N #1:}
{
\bool_if:NTF \l__chemmacros_nucleophile_elpair_bool
{
\chemmacros_elpair:n { #2 }
\chemmacros_if_compatibility:nnT {>=} {5.3}
{ \skip_horizontal:N \l__chemmacros_nucleophile_dim }
\chemmacros_chemformula:n { {}^{-} }
}
{ \chemmacros_chemformula:n { #2^{-} } }
}
\DeclareDocumentCommand #1 {o}
{%
\begin{lateximage}%
\group_begin:%
\IfNoValueF {##1}%
{ \chemmacros_set_keys:nn {particles} {##1} }%
\use:c {__chemmacros_ \chemmacros_remove_backslash:N #1:}%
\group_end:%
\end{lateximage}%
}
}
\RenewChemNucleophile \Nuc {Nu}
\RenewChemNucleophile \ba {ba}
}{}% \@ifchemmacrosmoduleloaded
}% AtBeginDocument
\AtBeginDocument{
\@ifchemmacrosmoduleloaded{phases}{
\PackageInfo{lwarp}{Patching~chemmacros~module~phases}
\cs_undefine:N \chemmacros_phase:n
\cs_new_protected:Npn \chemmacros_phase:n #1
{
\mode_leave_vertical:
\bool_if:NTF \l__chemmacros_phases_sub_bool
{
\ifnumequal{\value{LWR@lateximagedepth}}{0}
{
\textsubscript{ (#1) }
}
{
\chemformula_subscript:n { (#1) }
}
}
{
\skip_horizontal:N \l__chemmacros_phases_space_dim
\chemmacros_text:n { (#1) }
}
}
}{}% \@ifchemmacrosmoduleloaded
}% AtBeginDocument
\AtBeginDocument{
\@ifchemmacrosmoduleloaded{mechanisms}{
\PackageInfo{lwarp}{Patching~chemmacros~module~mechanisms}
\chemmacros_define_keys:nn {textmechanisms}
{
type .choice: ,
type / .code:n =
{
\__chemmacros_set_mechanisms:nnn { S }
{
\textsubscript{N}
}
{ }
} ,
type / 1 .code:n =
{
\__chemmacros_set_mechanisms:nnn { S }
{
\textsubscript{N}
1
}
{ }
} ,
type / 2 .code:n =
{
\__chemmacros_set_mechanisms:nnn { S }
{
\textsubscript{N}
2
}
{ }
} ,
type / se .code:n =
{
\__chemmacros_set_mechanisms:nnn { S }
{
\textsubscript{E}
}
{ }
} ,
type / 1e .code:n =
{
\__chemmacros_set_mechanisms:nnn { S }
{
\textsubscript{E}
1
}
{ }
} ,
type / 2e .code:n =
{
\__chemmacros_set_mechanisms:nnn { S }
{
\textsubscript{E}
2
}
{ }
} ,
type / ar .code:n =
{
\__chemmacros_set_mechanisms:nnn { S }
{
\textsubscript{E}
}
{ Ar - }
} ,
type / e .code:n =
{ \__chemmacros_set_mechanisms:nnn { E } { } { } } ,
type / e1 .code:n =
{ \__chemmacros_set_mechanisms:nnn { E } { 1 } { } } ,
type / e2 .code:n =
{ \__chemmacros_set_mechanisms:nnn { E } { 2 } { } } ,
type / cb .code:n =
{
\__chemmacros_set_mechanisms:nnn { E }
{
1
\textsubscript{cb}
}
{ }
} ,
type .default:n =
}
\cs_gset_protected:Npn \chemmacros_mechanisms:n #1
{
\tl_if_blank:nTF {#1}
{ \chemmacros_set_keys:nn {textmechanisms} { type } }
{ \chemmacros_set_keys:nn {textmechanisms} { type = #1 } }
\mbox
{
\tl_use:N \l__chemmacros_mechanisms_ar_tl
\tl_use:N \l__chemmacros_mechanisms_type_tl
\tl_use:N \l__chemmacros_mechanisms_mol_tl
}
}
\appto\LWR@restoreorigformatting{%
\cs_set_protected:Npn \chemmacros_mechanisms:n #1%
{%
\tl_if_blank:nTF {#1}%
{ \chemmacros_set_keys:nn {mechanisms} { type } }%
{ \chemmacros_set_keys:nn {mechanisms} { type = #1 } }%
\mbox%
{%
\tl_use:N \l__chemmacros_mechanisms_ar_tl%
\tl_use:N \l__chemmacros_mechanisms_type_tl%
\tl_use:N \l__chemmacros_mechanisms_mol_tl%
}%
}%
}
}{}% \@ifchemmacrosmoduleloaded
}% AtBeginDocument
\AtBeginDocument{
\@ifchemmacrosmoduleloaded{newman}{
\PackageInfo{lwarp}{Patching~chemmacros~module~newman}
\RenewDocumentCommand \newman {od()m}%
{
\IfValueTF{#2}
{\begin{lateximage}[\textbackslash{}newman(#2)\{#3\}]*}
{\begin{lateximage}[\textbackslash{}newman\{#3\}]*}
\group_begin:
\IfNoValueF {#1} { \chemmacros_set_keys:nn {newman} {#1} }
\IfNoValueTF {#2}
{ \chemmacros_newman:nn { } {#3} }
{ \chemmacros_newman:nn {#2} {#3} }
\group_end:
\end{lateximage}
}%
}{}% \@ifchemmacrosmoduleloaded
}% AtBeginDocument
\AtBeginDocument{
\@ifchemmacrosmoduleloaded{orbital}{
\PackageInfo{lwarp}{Patching~chemmacros~module~orbital}
\RenewDocumentCommand \orbital {om}
{
\IfValueTF{#1}
{
\begin{lateximage}[%
\textbackslash{}orbital{[}\LWR@HTMLsanitize{#1}{]}\{#2\}%
]*[][margin-left: 1em ; margin-right: 1em]
}
{
\begin{lateximage}[%
\textbackslash{}orbital\{#2\}%
]*[][margin-left: 1em ; margin-right: 1em]
}
\group_begin:
\chemmacros_set_keys:nn {orbital/type} {#2}
\IfNoValueTF {#1}
{ \chemmacros_orbital:n { } }
{ \chemmacros_orbital:n {#1} }
\group_end:
\end{lateximage}
}
}{}% \@ifchemmacrosmoduleloaded
}% AtBeginDocument
\AtBeginDocument{
\@ifchemmacrosmoduleloaded{reactions}{
\PackageInfo{lwarp}{Patching~chemmacros~module~reactions}
\cs_gset_protected:Npn \chemmacros_declare_reaction_env:nnnn #1#2#3#4
{
\exp_args:Nnx \DeclareDocumentEnvironment {#1} { O{} \prg_replicate:nn {#3+0} {m} }
{
\boolfalse{mathjax}% lwarp
\ifdefvoid{\LWR@ThisAltText}{% lwarp
\ThisAltText{-chemmacros-~reaction}% lwarp
}{}% lwarp
\chemmacros_add_reaction_description:n {##1}
\__chemmacros_begin_reaction:
\chemmacros_reaction_read:nnw {#2} {#4}
}
{
\__chemmacros_end_reaction:
\gdef\LWR@ThisAltText{}% lwarp
}
}
\cs_generate_variant:Nn \chemmacros_declare_reaction_env:nnnn {nnnV}
\RenewChemReaction {reaction} {equation}
\RenewChemReaction {reaction*} {equation*}
\RenewChemReaction {reactions} {align}
\RenewChemReaction {reactions*} {align*}
}{}% \@ifchemmacrosmoduleloaded
}% AtBeginDocument
\AtBeginDocument{
\@ifchemmacrosmoduleloaded{redox}{
\PackageInfo{lwarp}{Patching~chemmacros~module~redox}
\NewDocumentCommand \LWR@chemmacros@ox { s m >{\SplitArgument{1}{,}}m }
{
\IfBooleanTF {#1}
{ \chemmacros_ox:nnnn {#1} {#2} #3 }
{ \chemmacros_ox:nnnn { } {#2} #3 }
}
\RenewDocumentCommand \ox { s O{} m }
{
\begingroup
\boolfalse{mathjax}
\IfBooleanTF {#1}
{
\LWR@subsingledollar*{% yes hash
\textbackslash{}ox*\{\LWR@HTMLsanitize{#3}\}% alt
}{%
star \protect\LWR@HTMLsanitize{\detokenize\expandafter{#2}}%
}{%
\LWR@chemmacros@ox* {#2} {#3}% contents
}%
}
{
\LWR@subsingledollar*{% yes hash
\textbackslash{}ox*\{\LWR@HTMLsanitize{#3}\}% alt
}{%
\protect\LWR@HTMLsanitize{\detokenize\expandafter{#2}}%
}{%
\LWR@chemmacros@ox {#2} {#3}% contents
}%
}
\endgroup
}
}{}% \@ifchemmacrosmoduleloaded
}% AtBeginDocument
\AtBeginDocument{
\@ifchemmacrosmoduleloaded{scheme}{
\PackageInfo{lwarp}{Patching~chemmacros~module~scheme}
\ifdefstring{\schemename}{los}{
\SetupFloatingEnvironment{scheme}{
name = \chemmacros_translate:n {scheme-name}
}
}{}
}{}% \@ifchemmacrosmoduleloaded
}% AtBeginDocument
\AtBeginDocument{
\@ifchemmacrosmoduleloaded{spectroscopy}{
\PackageInfo{lwarp}{Patching~chemmacros~module~spectroscopy}
\ChemCompatibilityTo{5.8}
\cs_gset_protected:Npn \__chemmacros_nmr_base:nn #1#2
{
\tl_if_blank:VF \g__chemmacros_nmr_element_coupled_tl
{
\tl_put_left:Nn \g__chemmacros_nmr_element_coupled_tl { \{ }
\tl_put_right:Nn \g__chemmacros_nmr_element_coupled_tl { \} }
}
\tl_put_left:Nn \g__chemmacros_nmr_element_coupled_tl {#2}
\textsuperscript{#1}
\bool_if:NTF \l__chemmacros_nmr_parse_bool
{ \chemformula_ch:nV {} \g__chemmacros_nmr_element_coupled_tl }
{ \chemmacros_chemformula:V \g__chemmacros_nmr_element_coupled_tl }
\tl_use:N \l__chemmacros_nmr_element_method_connector_tl
\tl_use:N \l__chemmacros_nmr_method_tl
}
\EndChemCompatibility
\ChemCompatibilityFrom{5.8}
\cs_gset_protected:Npn \__chemmacros_nmr_base:nn #1#2
{
\group_begin:
\tl_use:N \l__chemmacros_nmr_base_format_tl
\tl_if_blank:VF \g__chemmacros_nmr_element_coupled_tl
{
\tl_put_left:Nn \g__chemmacros_nmr_element_coupled_tl { \{ }
\tl_put_right:Nn \g__chemmacros_nmr_element_coupled_tl { \} }
}
\tl_put_left:Nn \g__chemmacros_nmr_element_coupled_tl {#2}
\textsuperscript{#1}
\tl_if_blank:VF \g__chemmacros_nmr_element_coupled_tl
{
\bool_if:NTF \l__chemmacros_nmr_parse_bool
{ \chemformula_ch:nV {} \g__chemmacros_nmr_element_coupled_tl }
{ \chemmacros_chemformula:V \g__chemmacros_nmr_element_coupled_tl }
}
\tl_use:N \l__chemmacros_nmr_element_method_connector_tl
\tl_use:N \l__chemmacros_nmr_method_tl
\group_end:
}
\EndChemCompatibility
\cs_gset_protected:Npn \chemmacros_nmr_position:n #1
{
\chemmacros_chemformula:x
{
\exp_not:V \g__chemmacros_nmr_element_tl
\bool_if:NF \l__chemmacros_nmr_position_side_bool
{
\tl_if_eq:NnTF \l__chemmacros_nmr_position_tl {^}% lwarp
{ \textsuperscript{\exp_not:n { {#1} }} }% lwarp
{ \textsubscript{\exp_not:n { {#1} }} }% lwarp
}
}
\bool_if:NT \l__chemmacros_nmr_position_side_bool
{
\tl_use:N \l__chemmacros_nmr_position_tl
\__chemmacros_nmr_position:n {#1}
}
}
\cs_gset_protected:Npn \__chemmacros_nmr_coupling:w (#1;#2)
{
\tl_set:Nn \l__chemmacros_nmr_coupling_bonds_tl
{
\l__chemmacros_nmr_coupling_bonds_pre_tl
#1
\l__chemmacros_nmr_coupling_bonds_post_tl
}
\bool_if:NTF \l__chemmacros_nmr_coupling_nuclei_sub_bool
{
\tl_set:Nn \l__chemmacros_nmr_coupling_nuclei_tl
{
\textsubscript% lwarp
{
\l__chemmacros_nmr_coupling_nuclei_pre_tl
\chemmacros_chemformula:n {#2}
\l__chemmacros_nmr_coupling_nuclei_post_tl
}
}
}
{
\tl_set:Nn \l__chemmacros_nmr_coupling_nuclei_tl
{
\l__chemmacros_nmr_coupling_nuclei_pre_tl
\chemmacros_chemformula:n {#2}
\l__chemmacros_nmr_coupling_nuclei_post_tl
}
}
\__chemmacros_nmr_coupling_aux_i:w
}
\AfterEndPreamble{% After \AtBeginDocument
\cs_gset_protected:Npn \chemmacros_nmr:nnnn #1#2#3#4
{
\bool_if:NT \l__chemmacros_nmr_list_bool { \item \scan_stop: }
\group_begin:
\mode_leave_vertical:
\bool_set_false:N \l__chemmacros_nmr_frequency_bool
\bool_set_false:N \l__chemmacros_nmr_solvent_bool
\tl_if_empty:nF {#3}
{ \bool_set_true:N \l__chemmacros_nmr_frequency_bool }
\tl_if_empty:nF {#4}
{ \bool_set_true:N \l__chemmacros_nmr_solvent_bool }
\bool_if:nT
{
\l__chemmacros_nmr_frequency_bool
||
\l__chemmacros_nmr_solvent_bool
}
{ \bool_set_true:N \l__chemmacros_nmr_delimiters_bool }
\bool_if:nT
{
\l__chemmacros_nmr_frequency_bool
&&
\l__chemmacros_nmr_solvent_bool
}
{ \bool_set_true:N \l__chemmacros_nmr_comma_bool }
\tl_if_empty:nTF {#2}
{
\__chemmacros_nmr_nucleus:VV
\l__chemmacros_nmr_isotope_default_tl
\l__chemmacros_nmr_element_default_tl
}
{ \__chemmacros_nmr_nucleus:w #2 \q_stop }
\mode_if_math:TF
{
\text
{
\group_begin:
\tl_use:N \l__chemmacros_nmr_format_tl
\LWR@textcurrentcolor{\LWR@textcurrentfont{% lwarp
\__chemmacros_nmr_base:VV
\g__chemmacros_nmr_isotope_tl
\g__chemmacros_nmr_element_tl
\bool_if:NT \l__chemmacros_nmr_delimiters_bool
{ ~ ( }
\bool_if:NT \l__chemmacros_nmr_frequency_bool
{ \__chemmacros_nmr_frequency:n {#3} }
\bool_if:NT \l__chemmacros_nmr_comma_bool
{ , ~ }
\bool_if:NT \l__chemmacros_nmr_solvent_bool
{ \chemmacros_chemformula:n {#4} }
\bool_if:NT \l__chemmacros_nmr_delimiters_bool
{ ) }
\tl_if_blank:nT {#1} {:~}
}}% lwarp
\group_end:
}
\tl_if_blank:nT {#1}
{
\delta
\text { \l__chemmacros_nmr_delta_tl }
\bool_if:NT \l__chemmacros_nmr_use_equal_bool {=}
}
}
{
\group_begin:
\tl_use:N \l__chemmacros_nmr_format_tl
\LWR@textcurrentcolor{\LWR@textcurrentfont{% lwarp
\__chemmacros_nmr_base:VV
\g__chemmacros_nmr_isotope_tl
\g__chemmacros_nmr_element_tl
\bool_if:NT \l__chemmacros_nmr_delimiters_bool
{~(}
\bool_if:NT \l__chemmacros_nmr_frequency_bool
{ \__chemmacros_nmr_frequency:n {#3} }
\bool_if:NT \l__chemmacros_nmr_comma_bool
{,~}
\bool_if:NT \l__chemmacros_nmr_solvent_bool
{
\bool_if:NTF \l__chemmacros_nmr_parse_bool
{\ch{#4}}% lwarp
{#4}
}
\bool_if:NT \l__chemmacros_nmr_delimiters_bool
{)}
}}% lwarp
\tl_if_blank:nT {#1} {:}
\group_end:
\tl_if_blank:nT {#1}
{
\tl_use:N \c_space_tl
\c_math_toggle_token
\delta
\c_math_toggle_token
\l__chemmacros_nmr_delta_tl
\bool_if:NT \l__chemmacros_nmr_use_equal_bool {~=}
}
}
\group_end:
}
}% AfterEndPremble
\RenewDocumentCommand \chemmacros_data:w { smo }
{
\bool_if:NT \l__chemmacros_nmr_list_bool { \item }
{
\tl_use:N \l__chemmacros_nmr_format_tl
\LWR@textcurrentcolor{\LWR@textcurrentfont{% lwarp
#2
\IfNoValueF {#3} { ~ ( #3 ) }
\IfBooleanT {#1} { \bool_if:NT \l__chemmacros_nmr_use_equal_bool { : } }
}}% lwarp
}
\IfBooleanF {#1} { \bool_if:NT \l__chemmacros_nmr_use_equal_bool { ~ = } }
}
}{}% \@ifchemmacrosmoduleloaded
}% AtBeginDocument
\AtBeginDocument{
\@ifchemmacrosmoduleloaded{thermodynamics}{
\PackageInfo{lwarp}{Patching~chemmacros~module~thermodynamics}
\cs_gset_protected:Npn \chemmacros_state:nn #1#2
{
\group_begin:
\boolfalse{mathjax}
\chemmacros_set_keys:nn {thermodynamics} {#1}
\LWR@subsingledollar*{% yes hashing
\textbackslash{}state\{\LWR@HTMLsanitize{#2}\}% alt
}{%
chemmacros_state% add'l hashing
#1% options
LSP \tl_use:N \l__chemmacros_state_sp_left_tl% super/subscripts
LSB \tl_use:N \l__chemmacros_state_sb_left_tl
RSP \tl_use:N \l__chemmacros_state_sp_right_tl
RSB \tl_use:N \l__chemmacros_state_sb_right_tl
}
{
\LWR@origensuredmath{
\chemmacros_text:V \l__chemmacros_state_pre_tl
\c_math_superscript_token
{ \chemmacros_text:V \l__chemmacros_state_sp_left_tl }
\tl_if_empty:NTF \l__chemmacros_state_sb_left_tl
{}
{
\c_math_subscript_token
{ \chemmacros_text:V \l__chemmacros_state_sb_left_tl }
}
#2
\c_math_superscript_token
{ \chemmacros_text:V \l__chemmacros_state_sp_right_tl }
\tl_if_empty:NTF \l__chemmacros_state_sb_right_tl
{}
{
\c_math_subscript_token
{ \chemmacros_text:V \l__chemmacros_state_sb_right_tl }
}
\chemmacros_text:V \l__chemmacros_state_post_tl
}
}
\group_end:
}
\cs_generate_variant:Nn \chemmacros_state:nn { nV }
\cs_gset_protected:Npn \chemmacros_declare_state:Nn #1#2
{
\chemmacros_define_keys:xn
{thermodynamics/\chemmacros_remove_backslash:N #1}
{
pre .meta:nn = {chemmacros/thermodynamics} { pre = ##1 } ,
post .meta:nn = {chemmacros/thermodynamics} { post = ##1 } ,
superscript-left .meta:nn = {chemmacros/thermodynamics} { superscript-left = ##1 } ,
superscript-right .meta:nn = {chemmacros/thermodynamics} { superscript-right = ##1 } ,
superscript .meta:n = { superscript-right = ##1 } ,
subscript-left .meta:nn = {chemmacros/thermodynamics} { subscript-left = ##1 } ,
subscript-right .meta:nn = {chemmacros/thermodynamics} { subscript-right = ##1 } ,
subscript .meta:n = { subscript-left = ##1 } ,
subscript-pos .choices:nn =
{ left , right }
{ \tl_set_eq:NN \l__chemmacros_state_sb_pos_tl \l_keys_choice_tl } ,
symbol .tl_set:N = \l__chemmacros_state_symbol_tl ,
unit .tl_set:N = \l__chemmacros_state_unit_tl
}
\DeclareDocumentCommand #1 { sO{}D(){}m }
{
\group_begin:
\chemmacros_set_keys:xn
{thermodynamics/\chemmacros_remove_backslash:N #1}
{#2}
\tl_if_blank:nF {##3}
{
\chemmacros_set_keys:nx {thermodynamics}
{ subscript-\l__chemmacros_state_sb_pos_tl = \exp_not:n {##3} }
}
\chemmacros_state:nV {##2} \l__chemmacros_state_symbol_tl
\chemmacros_set_keys_groups:nnn {thermodynamics} {variables} {##2}
\IfBooleanF {##1} { = ~ \SI {##4} { \l__chemmacros_state_unit_tl } }
\group_end:
}
}
\RenewChemState \enthalpy { symbol = H , unit = \kilo\joule\per\mole }
\RenewChemState \entropy { symbol = S , unit = \joule\per\kelvin\per\mole , pre = }
\RenewChemState \gibbs { symbol = G , unit = \kilo\joule\per\mole }
}{}% \@ifchemmacrosmoduleloaded
}% AtBeginDocument
\ExplSyntaxOff
\endinput
%%
%% End of file `lwarp-chemmacros.sty'.