From cb33be94e6d58477c394350360dc7b482612c18c Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 4 Nov 2011 23:16:57 +0000 Subject: chemmacros (4nov11) git-svn-id: svn://tug.org/texlive/trunk@24494 c570f23f-e606-0410-a88d-b1316a301751 --- .../tex/latex/chemmacros/chemmacros-version1.cfg | 2 +- .../texmf-dist/tex/latex/chemmacros/chemmacros.sty | 261 ++++++++++++++------- 2 files changed, 174 insertions(+), 89 deletions(-) (limited to 'Master/texmf-dist/tex/latex/chemmacros') diff --git a/Master/texmf-dist/tex/latex/chemmacros/chemmacros-version1.cfg b/Master/texmf-dist/tex/latex/chemmacros/chemmacros-version1.cfg index 7aa9dbcfb5b..a7dd522d55f 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros-version1.cfg +++ b/Master/texmf-dist/tex/latex/chemmacros/chemmacros-version1.cfg @@ -4,7 +4,7 @@ % - macros and commands for chemists - % % --------------------------------------------------------------------------- % % - Clemens Niederberger - % -% - 2011/10/28 - % +% - 2011/11/03 - % % --------------------------------------------------------------------------- % % - http://www.mychemistry.eu/ - % % - contact@mychemistry.eu - % diff --git a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.sty b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.sty index 659757ef0cd..0aeffae3755 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.sty +++ b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.sty @@ -4,7 +4,7 @@ % - macros and commands for chemists - % % --------------------------------------------------------------------------- % % - Clemens Niederberger - % -% - 2011/10/28 - % +% - 2011/11/03 - % % --------------------------------------------------------------------------- % % - http://www.mychemistry.eu/ - % % - contact@mychemistry.eu - % @@ -36,7 +36,7 @@ { \@ifpackageloaded{mhchem}{} { \RequirePackage[ version=3 ]{ mhchem } } } -\ProvidesExplPackage {chemmacros} {2011/10/27} {2.0} {macros and commands for chemists} +\ProvidesExplPackage {chemmacros} {2011/11/03} {2.0a} {macros and commands for chemists} \bool_new:N \l_chemmacros_version_one_bool \bool_set_false:N \l_chemmacros_version_one_bool @@ -65,6 +65,7 @@ \bool_new:N \l_chemmacros_chemstyle_bool \bool_new:N \l_chemmacros_hyperref_bool \bool_new:N \l_chemmacros_varioref_bool +\bool_new:N \l_chemmacros_chemfig_bool \AtBeginDocument { @@ -77,6 +78,9 @@ \@ifpackageloaded { hyperref } { \bool_set_true:N \l_chemmacros_hyperref_bool } { \bool_set_false:N \l_chemmacros_hyperref_bool } + \@ifpackageloaded { chemfig } + { \bool_set_true:N \l_chemmacros_chemfig_bool } + { \bool_set_false:N \l_chemmacros_chemfig_bool } } % --------------------------------------------------------------------------- % @@ -160,12 +164,6 @@ See~the~documentation~for~more~information. } -\msg_set:nnn { chemmacros } { circled=chemfig } - { - You~used~the~option~"circled~=~chemfig"~but~did~not~load~the~package~ - chemfig.~Option~"circled~=~formal"~will~be~used~instead. - } - \msg_set:nnn { chemmacros } { ox } { \token_to_str:N \ox \c_space_tl : ~ #1 ~ \msg_line_context: . @@ -181,29 +179,25 @@ \token_to_str:N \redox \c_space_tl : ~ #1 ~ \msg_line_context: . } -\msg_set:nnn { chemmacros } { already-defined } +\msg_set:nnn { chemmacros } { chemfig } { - The~command/environment ~ #1 ~ \msg_line_context: \c_space_tl - is~already~defined. - } - -\msg_set:nnnn { chemmacros } { outside-MOdiagram } - { You~can't~use~#1~outside~the~MOdiagram~environment. } - { - The~command~#1~can~only~be~used~inside~the~MOdiagram~ - environment~\msg_line_context: . + You~need~to~load~the~chemfig~package~in~order~to~make~ + \exp_after:wN \token_to_str:N \cs:w #1 \cs_end: \c_space_tl + work~properly~\msg_line_context: . } \msg_set:nnn { chemmacros } { setnewstate } { - The~state~\tl_to_str:n { \ #1 } \c_space_tl already~exists.~You~need~to~ - use~\token_to_str:N \renewstate \c_space_tl to~alter~it. + The~state~ \exp_after:wN \token_to_str:N \cs:w #1 \cs_end: + \c_space_tl already~exists.~You~need~to~use~ + \token_to_str:N \renewstate \c_space_tl to~alter~it. } \msg_set:nnn { chemmacros } { renewstate } { - The~state~\tl_to_str:n { \ #1 } \c_space_tl isn't~set~up~yet.~You~need~to~ - use~\token_to_str:N \setnewstate \c_space_tl to~create~it. + The~state~\exp_after:wN \token_to_str:N \cs:w #1 \cs_end: + \c_space_tl isn't~set~up~yet.~You~need~to~use~ + \token_to_str:N \setnewstate \c_space_tl to~create~it. } % --------------------------------------------------------------------------- % @@ -234,26 +228,65 @@ % --------------------------------------------------------------------------- % % circled charge signs -\cs_new_nopar:Npn \chemmacros_fplus_aux: - { - \raise.1ex\hbox{\scalebox{.65}{\textcircled{\lower.1ex\hbox{$+$}}}} - } +% Definition inspired by chemstyle's definition of \standarsstate +% \cs_new_nopar:Npn \chemmacros_fplus_aux: +% { +% \raise.1ex\hbox{\scalebox{.65}{\textcircled{\lower.1ex\hbox{$+$}}}} +% } +% \cs_new_nopar:Npn \chemmacros_fplus: +% { +% \mode_if_math:TF +% { \text { \chemmacros_fplus_aux: } } +% { \chemmacros_fplus_aux: } +% } + \cs_new_nopar:Npn \chemmacros_fplus: - { - \mode_if_math:TF - { \text { \chemmacros_fplus_aux: } } - { \chemmacros_fplus_aux: } + { \ensuremath { \chemmacros_fplus_aux_i: } } +\cs_new_nopar:Npn \chemmacros_fplus_aux_i: + { \mathpalette \chemmacros_fplus_aux_ii: \bigcirc } +\cs_new_nopar:Npn \chemmacros_fplus_aux_ii: #1#2 + { + \ooalign + { + \tex_hfil:D + $#1+$ + \tex_hfil:D + \tex_cr:D + \tex_hfil:D + $#1#2$ + \tex_hfil:D + \tex_cr:D + } } -\cs_new_nopar:Npn \chemmacros_fminus_aux: - { - \raise.1ex\hbox{\scalebox{.65}{\textcircled{\lower.1ex\hbox{$-$}}}} - } +% \cs_new_nopar:Npn \chemmacros_fminus_aux: +% { +% \raise.1ex\hbox{\scalebox{.65}{\textcircled{\lower.1ex\hbox{$-$}}}} +% } +% \cs_new_nopar:Npn \chemmacros_fminus: +% { +% \mode_if_math:TF +% { \text { \chemmacros_fminus_aux: } } +% { \chemmacros_fminus_aux: } +% } + \cs_new_nopar:Npn \chemmacros_fminus: - { - \mode_if_math:TF - { \text { \chemmacros_fminus_aux: } } - { \chemmacros_fminus_aux: } + { \ensuremath { \chemmacros_fminus_aux_i: } } +\cs_new_nopar:Npn \chemmacros_fminus_aux_i: + { \mathpalette \chemmacros_fminus_aux_aux_ii: \bigcirc } +\cs_new_nopar:Npn \chemmacros_fminus_aux_aux_ii: #1#2 + { + \ooalign + { + \tex_hfil:D + $#1-$ + \tex_hfil:D + \tex_cr:D + \tex_hfil:D + $#1#2$ + \tex_hfil:D + \tex_cr:D + } } % use directly: @@ -419,6 +452,10 @@ { \ensuremath { \scriptstyle \chemmacros_formal_minus: } } \cs_new_nopar:Npn \fscrp { \ensuremath { \scriptstyle \chemmacros_formal_plus: } } +\cs_new_nopar:Npn \fsscrm + { \ensuremath { \scriptscriptstyle \chemmacros_formal_minus: } } +\cs_new_nopar:Npn \fsscrp + { \ensuremath { \scriptscriptstyle \chemmacros_formal_plus: } } % --------------------------------------------------------------------------- % % ions, molecules @@ -431,11 +468,63 @@ { \chemmacros_atom:n { H3O } \pch \chemmacros_xspace: } \cs_new_nopar:Npn \water { \chemmacros_atom:n { H2O } \chemmacros_xspace: } -\cs_new_nopar:Npn \Nu - { \chemmacros_atom:n { Nu } \mch \chemmacros_xspace: } + +\NewDocumentCommand \Nu { o } + { + \IfNoValueF { #1 } { \keys_set:nn { chemmacros / particle } { #1 } } + \bool_if:NTF \l_chemmacros_particle_elpair_bool + { \chemmacros_elpair:n { Nu } } + { \chemmacros_atom:n { Nu } } + \mch \chemmacros_xspace: + } + \cs_new_nopar:Npn \El { \chemmacros_atom:n { E } \pch \chemmacros_xspace: } +\NewDocumentCommand \ba { o } + { + \IfNoValueF { #1 } { \keys_set:nn { chemmacros / particle } { #1 } } + \bool_if:NTF \l_chemmacros_particle_elpair_bool + { \chemmacros_elpair:n { ba } } + { \chemmacros_atom:n { ba } } + \mch \chemmacros_xspace: + } + +\cs_new_nopar:Npn \chemmacros_elpair:n #1 + { + \bool_if:NTF \l_chemmacros_chemfig_bool + { + \bool_if:NTF \l_chemmacros_elpair_dots_bool + { \Lewis { 0: , #1 } } + { \Lewis { 0 , #1 } } + } + { + \msg_warning:nnx { chemmacros } { chemfig } { #1 } + \chemmacros_atom:n { #1 } + } + } + +\bool_new:N \l_chemmacros_particle_elpair_bool +\bool_new:N \l_chemmacros_elpair_dots_bool + +\keys_define:nn { chemmacros / particle } + { + elpair .choice: , + elpair / false .code:n = + { \bool_set_false:N \l_chemmacros_particle_elpair_bool } , + elpair / dots .code:n = + { + \bool_set_true:N \l_chemmacros_particle_elpair_bool + \bool_set_true:N \l_chemmacros_elpair_dots_bool + } , + elpair / dash .code:n = + { + \bool_set_true:N \l_chemmacros_particle_elpair_bool + \bool_set_false:N \l_chemmacros_elpair_dots_bool + } , + elpair .default:n = dots + } + % --------------------------------------------------------------------------- % % stereo descriptors and sim. % Cahn-Ingold-Prelog @@ -1373,34 +1462,27 @@ % --------------------------------------------------------------------------- % % thermodynamics et.al. % \standardstate as defined by the chemstyle package. Thanks to Joseph Wright -% \AtBeginDocument -% { - \cs_if_exist:NF \standardstate +\cs_if_exist:NF \standardstate + { + \cs_new_nopar:Npn \standardstate + { \ensuremath { \chemmacros_standardstate: } } + \cs_new_nopar:Npn \chemmacros_standardstate: + { \mathpalette \chemmacros_standardstate_aux: \circ } + \cs_new_nopar:Npn \chemmacros_standardstate_aux: #1#2 { - \cs_new_nopar:Npn \standardstate + \ooalign { - \ensuremath { \chemmacros_standardstate: } - } - \cs_new_nopar:Npn \chemmacros_standardstate: - { - \mathpalette \chemmacros_standardstate_aux: \circ - } - \cs_new_nopar:Npn \chemmacros_standardstate_aux: #1#2 - { - \ooalign - { - \tex_hfil:D - $#1-$ - \tex_hfil:D - \tex_cr:D - \tex_hfil:D - $#1#2$ - \tex_hfil:D - \tex_cr:D - } + \tex_hfil:D + $#1-$ + \tex_hfil:D + \tex_cr:D + \tex_hfil:D + $#1#2$ + \tex_hfil:D + \tex_cr:D } } -% } + } % --------------------------------------------------------------------------- % % \State @@ -2324,28 +2406,31 @@ % --------------------------------------------------------------------------- % Version history -2011/05/15 version 1.0 - CTAN release -2011/06/22 version 1.1 - "LaTeXified" whole package for safer usage - - less user work required (like loading package after - another) - - more particle macros - - latin phrases - - extra units - - acid/base commands - - \mech - - \NMR - - \mhName, \setmhName, \newreaction, phases - - \renewstate, \setstatesubscript - - improved orbitals - - simpler package options, option german, bpchem - - bug fixes -2011/10/28 version 2.0 - rewritten in expl3 - - customization via \chemsetup - - new commands \p, \fplus, \fminus, \fpch, \fmch, \fscrp, - \fsrcm, \fdelp, \fdelm, \orbital, \chemsetup - - various commands have a new syntax - - removed: \setmhName, \setredoxdist, \setstatesubscript, - \porb, \phorb, \pxorb, \pyorb, \pzorb, \setorbheight, - \solid, \liquid - - reaction environments work with hyperref and varioref +2011/05/15 version 1.0 - CTAN release +2011/06/22 version 1.1 - "LaTeXified" whole package for safer usage + - less user work required (like loading package after + another) + - more particle macros + - latin phrases + - extra units + - acid/base commands + - \mech + - \NMR + - \mhName, \setmhName, \newreaction, phases + - \renewstate, \setstatesubscript + - improved orbitals + - simpler package options, option german, bpchem + - bug fixes +2011/10/28 version 2.0 - rewritten in expl3 + - customization via \chemsetup + - new commands \p, \fplus, \fminus, \fpch, \fmch, \fscrp, + \fsrcm, \fdelp, \fdelm, \orbital, \chemsetup + - various commands have a new syntax + - removed: \setmhName, \setredoxdist, \setstatesubscript, + \porb, \phorb, \pxorb, \pyorb, \pzorb, \setorbheight, + \solid, \liquid + - reaction environments work with hyperref and varioref +2011/11/03 version 2.0a - minor bug fixes + - new feature for \Nu + - new command \ba % --------------------------------------------------------------------------- % \ No newline at end of file -- cgit v1.2.3