From e61d83b5ff5c38ecb67a00a7081b0be2e944e5d9 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 12 Feb 2016 00:25:33 +0000 Subject: chemmacros (10feb16) git-svn-id: svn://tug.org/texlive/trunk@39682 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/chemmacros/README | 2 +- .../doc/latex/chemmacros/chemmacros_en.pdf | Bin 968732 -> 973781 bytes .../doc/latex/chemmacros/chemmacros_en.tex | 96 +++++++++++----- .../chemmacros.module.acid-base.code.tex | 128 +++++++++++---------- .../chemmacros/chemmacros.module.base.code.tex | 46 ++++++-- .../chemmacros/chemmacros.module.charges.code.tex | 4 +- .../chemmacros/chemmacros.module.lang.code.tex | 6 +- .../chemmacros.module.nomenclature.code.tex | 35 +++--- .../chemmacros.module.particles.code.tex | 6 +- .../chemmacros/chemmacros.module.phases.code.tex | 3 +- .../chemmacros.module.reactions.code.tex | 10 +- .../chemmacros/chemmacros.module.redox.code.tex | 6 +- .../chemmacros.module.spectroscopy.code.tex | 3 +- .../chemmacros.module.thermodynamics.code.tex | 3 +- .../texmf-dist/tex/latex/chemmacros/chemmacros.sty | 13 ++- 15 files changed, 228 insertions(+), 133 deletions(-) (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/chemmacros/README b/Master/texmf-dist/doc/latex/chemmacros/README index e8f4d2d667a..176c767b95f 100644 --- a/Master/texmf-dist/doc/latex/chemmacros/README +++ b/Master/texmf-dist/doc/latex/chemmacros/README @@ -1,5 +1,5 @@ -------------------------------------------------------------------------- -the CHEMMACROS package v5.3a 2016/01/23 +the CHEMMACROS package v5.4 2016/02/10 comprehensive support for typesetting chemistry documents diff --git a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.pdf b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.pdf index 599f8680ddf..a6796a8b15b 100644 Binary files a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.pdf and b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.pdf differ diff --git a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.tex b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.tex index 532decad6d7..aab0ed78b71 100644 --- a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.tex +++ b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.tex @@ -55,10 +55,11 @@ chemomega, chemphi, chemPhi, chemsetup, chlewis, chname , cip, cis, ch, CNMR, data, DeclareChemArrow, DeclareChemBond, DeclareChemBondAlias, - declarechemgreekmapping, DeclareChemCharge, DeclareChemIUPAC, - DeclareChemIUPACShorthand, DeclareChemLatin, DeclareChemNMR, - DeclareChemNucleophile, DeclareChemPartialCharge, DeclareChemParticle, - DeclareChemPhase, DeclareChemReaction, DeclareChemState, + DeclareChemCharge, DeclareChemEqConstant, declarechemgreekmapping, + DeclareChemIUPAC, DeclareChemIUPACShorthand, DeclareChemLatin, + DeclareChemNMR, DeclareChemNucleophile, DeclareChemPartialCharge, + DeclareChemParticle, DeclareChemPhase, DeclareChemReaction, + DeclareChemState, delm, delp, Delta, dexter, Dfi, el, ElPot, endo, entgegen, Enthalpy, enthalpy, entropy, fdelm, fdelp, fmch, fminus, fpch, fplus, fscrm, fscrp, @@ -70,20 +71,22 @@ laevus, Lfi, listofreactions, lqd, mch, mega, meta, mhName, NewChemArrow, NewChemBond, NewChemBondAlias, - newchemgreekmapping, NewChemCharge, NewChemIUPAC, NewChemIUPACShorthand, - NewChemLatin, NewChemNMR, NewChemNucleophile, NewChemPartialCharge, - NewChemParticle, NewChemPhase, NewChemReaction, NewChemState, + NewChemCharge, NewChemEqConstant, newchemgreekmapping, NewChemIUPAC, + NewChemIUPACShorthand, NewChemLatin, NewChemMacroset, NewChemNMR, + NewChemNucleophile, NewChemPartialCharge, NewChemParticle, NewChemPhase, + NewChemReaction, NewChemState, newman, nitrogen, NMR, Nu, Nuc, orbital, ortho, ox, OX, oxygen, para, pch, per, pH, phase, phosphorus, photon, pKa, pKb, pOH, pos, positron, Pot, ProvideChemArrow, ProvideChemBond, ProvideChemCharge, - ProvideChemIUPAC, ProvideChemIUPACShorthand, ProvideChemLatin, - ProvideChemNMR, ProvideChemNucleophile, ProvideChemPartialCharge, - ProvideChemParticle, ProvideChemPhase, ProvideChemReaction, + ProvideChemEqConstant, ProvideChemIUPAC, ProvideChemIUPACShorthand, + ProvideChemLatin, ProvideChemNMR, ProvideChemNucleophile, + ProvideChemPartialCharge, ProvideChemParticle, ProvideChemPhase, + ProvideChemReaction, ProvideChemState, prt, Rad, redox, RemoveChemIUPACShorthand, RenewChemArrow, RenewChemBond, - renewchemgreekmapping, renewChemCharge, RenewChemIUPAC, - RenewChemIUPACShorthand, RenewChemLatin, RenewChemNMR, + RenewChemCharge, RenewChemEqConstant, renewchemgreekmapping, + RenewChemIUPAC, RenewChemIUPACShorthand, RenewChemLatin, RenewChemNMR, RenewChemNucleophile, RenewChemPartialCharge, RenewChemParticle, RenewChemPhase, RenewChemState, Sf, scrm, scrp, second, selectchemgreekmapping, setchemformula, @@ -575,9 +578,8 @@ important and \emph{breaking} differences: \item The command family \cs*{NewChem\ldots}, \cs*{RenewChem\ldots} and \cs*{DeclareChem\ldots} has a new member \cs*{ProvideChem\ldots}. \item In \cs{iupac} the macro \cs*{-} no longer gives a dash with breaking - point. Instead \sym*{-} can be used directly\footnote{\cs*{-} will be - provided a bit longer for easing the upgrade step but will be dropped - eventually.}. + point. Instead \sym*{-} can be used directly\footnote{\cs*{-} is provided + up to and including v5.2 but is dropped in higher versions.}. \item The macro \cs{ox} has another default behaviour (\keyis{pos}{super}) and the starred version has another effect (\keyis{pos}{top}) than the same macro in earlier versions. Now the default behaviour follows @@ -780,6 +782,8 @@ allow to change the subscript of the constants: The subscript to \cs{Kb} and \cs{pKb}. \keyval{K-water}{text}\Module{acid-base}\Default{\cs{ChemTranslate}\Marg{K-water}} The subscript to \cs{Kw}. + \keyval{eq-constant}{text}\Module{acid-base}\Default{K} + The\sinceversion{5.4} symbol of the constants. \end{options} \begin{example} \pH, \pKa \par @@ -803,6 +807,29 @@ this you have two possibilities: \pKa \end{example} +The\sinceversion{5.4} constants \Ka, \Kb, and \Kw\ were defined using the +following commands: +\begin{commands} + \command{NewChemEqConstant}\marg{cs}\marg{name}\marg{subscript} + Define the constant \meta{cs} with the name \meta{name} and the subscript + \meta{subscript}. This also defines the default translation with the key + \meta{name} using \meta{subscript} as fallback translation (see + section~\vref{sec:lang-module} for details). It also defines the option + \meta{name} for setting the subscript. + \command{RenewChemEqConstant}\marg{cs}\marg{name}\marg{default appearance} + The same as \cs{NewChemEqConstant} but renews an existing command. + \command{DeclareChemEqConstant}\marg{cs}\marg{name}\marg{default appearance} + The same as \cs{NewChemEqConstant} but overwrites existing commands. + \command{ProvideChemEqConstant}\marg{cs}\marg{name}\marg{default appearance} + The same as \cs{NewChemEqConstant} but doesn't throw an error if \meta{cs} + already exists. +\end{commands} + +This is how \cs{Ka} is defined: +\begin{sourcecode} + \NewChemEqConstant \Ka {K-acid} { \mathrm{a} } +\end{sourcecode} + \subsection{The \chemmodule*{charges} Module}\label{sec:charges-module} The \chemmodule{charges} module loads the module \chemmodule{chemformula}. @@ -1551,9 +1578,6 @@ modules. In the macro descriptions below \TF\ denotes that a \code{T}, an \code{F} and a \code{TF} variant exist. In case of an expandable conditional (\expandablesymbol) also the predicate variant is available. \begin{commands} - \expandable\command*{chemmacros_is_int:n}[\TF\ \marg{number} \marg{true} - \marg{false}] - Checks if \meta{number} is an integer or not. \expandable\command*{chemmacros_if_loaded:nn}[\TF\ \Marg{\meta{package}|\meta{class}} \marg{name} \marg{true} \marg{false}] Checks if package (or class) \meta{name} has been loaded. Also works after @@ -1574,7 +1598,8 @@ modules. In the macro descriptions below \TF\ denotes that a \code{T}, an Inserts a penalty of \num{0}. \command*{chemmacros_skip_nobreak:N}[ \meta{skip/length variable}] Insert a horizontal skip while linebreak is disallowed. - \command*{chemmacros_if_is_int:n}[\TF\ \marg{input} \marg{true} \marg{false}] + \expandable\command*{chemmacros_if_is_int:n}[\TF\ \marg{input} \marg{true} + \marg{false}] Checks if \meta{input} is an integer or something else. \command*{chemmacros_if_bold:}[\TF\ \marg{true} \marg{false}] Checks if the current font weight is one of \chemboldchecks{or}. @@ -1586,22 +1611,32 @@ modules. In the macro descriptions below \TF\ denotes that a \code{T}, an Ensures that \meta{text} is placed in text mode. \command*{chemmacros_math:n}[ \marg{text}] Ensures that \meta{text} is placed in math mode. - \command*{chemmacros_new_macroset:nnn}[ \marg{type} \marg{arg spec} + \command*{chemmacros_new_macroset:nnn}[ \marg{name} \marg{arg spec} \marg{internal command call}] - A command to define a set of macros \cs*{NewChem\meta{type}}, - \cs*{RenewChem\meta{type}}, \cs*{DeclareChem\meta{type}} and - \cs*{ProvideChem\meta{type}}. \meta{arg spec} is any valid argument - specification for \pkg{xparse}'s \\ + \changedversion{5.3b}A command to define a set of macros + \cs*{NewChem\meta{name}}, \cs*{RenewChem\meta{name}}, + \cs*{DeclareChem\meta{name}} and \cs*{ProvideChem\meta{name}} where the + first letter of \meta{name} is converted to uppercase, other letters are + kept unchanged. \meta{arg spec} is any valid argument specification for + \pkg{xparse}'s \\ \cs{DeclareDocumentCommand}~\cite{bnd:l3packages}. \meta{internal command call} should be a macro which makes definitions \emph{without} error checks, \ie, define new macros or redefine existing ones like \cs*{def} does. This macro just should get the arguments passed on to. Have a look at the example below. + \command*{chemmacros_new_environment_macroset:nnn}[ \marg{name} \marg{arg spec} + \marg{internal command call}] + Like \cs*{chemmacros_new_macroset:nnn} but for environments. + \command{NewChemMacroset}[\sarg\marg{name}\marg{arg spec}\marg{internal + command call}] + A non-expl3 version of \cs*{chemmacros_new_macroset:nnn} for \LaTeXe\ + programmers. The starred version calls + \cs*{chemmacros_new_environment_macroset:nnn}. \end{commands} This is how the macros \cs{NewChemParticle}, \cs{RenewChemParticle}, \cs{DeclareChemParticle} and \cs{ProvideChemParticle} were defined: \begin{sourcecode} - \chemmacros_new_macroset:nnn {Particle} {mm} + \NewChemMacroset {Particle} {mm} { \chemmacros_define_particle:Nn #1 {#2} } \end{sourcecode} @@ -1767,9 +1802,10 @@ This module defines the following option: \begin{options} \keychoice{language}{auto,\meta{language}}\Default{auto} If set to \code{auto} \chemmacros\ will detect the language used by - \pkg{babel}~\cite{pkg:babel} or \pkg{ployglossia}~\cite{pkg:polyglossia} - automatically, fallback is English. Any language known to the - \pkg{translations} package is a valid value for \meta{language}. + \pkg{babel}~\cite{pkg:babel} or \pkg{polyglossia}~\cite{pkg:polyglossia} + automatically, the fallback translation is English and will be used if no + translation for the actual language is available. Any language known to + the \pkg{translations} package is a valid value for \meta{language}. \end{options} The language chosen via \option{language} is used for translation of certain @@ -2336,6 +2372,10 @@ There are a number of options that can be used to modify the typeset result: recommendation, \code{top} does not! \keybool{explicit-sign}\Module{redox}\Default{false} Shows the $+$ for positiv numbers and the $\pm$ for $0$. + \keybool{explizit-zero-sign}\Module{redox}\Default{true} + Only\sinceversion{5.4} if both \option{explicit-sign} and + \option{explicit-zero-sign} are set to \code{true} $\pm0$ will be + printed. \keychoice{decimal-marker}{comma,point}\Module{redox}\Default{point} Choice for the decimal marker for formal oxidation numbers like \ox{1.2,X}. \keychoice{align}{center,right}\Module{redox}\Default{center} diff --git a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.acid-base.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.acid-base.code.tex index e50bd859d98..97e9e05750c 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.acid-base.code.tex +++ b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.acid-base.code.tex @@ -25,69 +25,82 @@ % % The Current Maintainer of this work is Clemens Niederberger. % -------------------------------------------------------------------------- -\ChemModule{acid-base}{2015/06/09 acid/base} +\ChemModule{acid-base}{2016/02/04 acid/base} \chemmacros_load_modules:n {charges} % -------------------------------------------------------------------------- -\tl_new:N \l__chemmacros_k_acid_tl -\tl_new:N \l__chemmacros_k_base_tl -\tl_new:N \l__chemmacros_k_water_tl +% equilibrium constants: -\tl_set:Nn \l__chemmacros_k_acid_tl { \chemmacros_translate:n {K-acid} } -\tl_set:Nn \l__chemmacros_k_base_tl { \chemmacros_translate:n {K-base} } -\tl_set:Nn \l__chemmacros_k_water_tl { \chemmacros_translate:n {K-water} } +\tl_new:N \l__chemmacros_equilibrium_constant_tl +\tl_set:Nn \l__chemmacros_equilibrium_constant_tl {K} +\prop_new:N \l__chemmacros_eq_constants_prop -\keys_define:nn {chemmacros/acid-base} +\prg_new_conditional:Npnn \chemmacros_if_eq_constant:Nn #1#2 {T,F,TF} { - p-style .choice: , - p-style / slanted .code:n = \cs_set_eq:NN \chemmacros_p_style:n \textsl , - p-style / italics .code:n = \cs_set_eq:NN \chemmacros_p_style:n \textit , - p-style / upright .code:n = \cs_set_eq:NN \chemmacros_p_style:n \textup , - K-acid .tl_set:N = \l__chemmacros_k_acid_tl , - K-base .tl_set:N = \l__chemmacros_k_base_tl , - K-water .tl_set:N = \l__chemmacros_k_water_tl + \cs_if_exist:NTF #1 + { + \tl_if_eq:xnTF + { \prop_item:Nn \l__chemmacros_eq_constants_prop {#1} } + {#2} + { \prg_return_true: } + { \prg_return_false: } + } + { \prg_return_false: } } +\cs_generate_variant:Nn \tl_if_eq:nnTF {x} -\cs_new_eq:NN \chemmacros_p_style:n \textup - -\cs_new_protected:Npn \Ka +% #1: cs +% #2: translation id and option name +% #3: default translation +\cs_new_protected:Npn \chemmacros_define_eq_constant:Nnn #1#2#3 { - \ensuremath + \chemmacros_if_eq_constant:NnF {#1} {#2} + { + \cs_new_protected:Npn #1 {} + \prop_put:Nnn \l__chemmacros_eq_constants_prop {#1} {#2} + \tl_new:c {l__chemmacros_#2_tl} + \keys_define:nn {chemmacros/acid-base} + { #2 .tl_set:c = l__chemmacros_#2_tl } + } + \tl_set:cn + {l__chemmacros_#2_tl} + { \chemmacros_translate:n {#2} } + \DeclareTranslationFallback {#2} {#3} + \cs_set_protected:Npn #1 { - \chemmacros_bold:n + \ensuremath { - K - \c_math_subscript_token - { \l__chemmacros_k_acid_tl } + \chemmacros_bold:n + { + \l__chemmacros_equilibrium_constant_tl + \c_math_subscript_token + { \tl_use:c {l__chemmacros_#2_tl} } + } } } } -\cs_new_protected:Npn \Kb +\NewChemMacroset {EqConstant} {mmm} + { \chemmacros_define_eq_constant:Nnn #1 {#2} {#3} } + +\NewChemEqConstant \Ka {K-acid} { \mathrm{a} } +\NewChemEqConstant \Kb {K-base} { \mathrm{b} } +\NewChemEqConstant \Kw {K-water} { \mathrm{w} } + +\chemmacros_if_compatiblity:nnT {>=} {5.4} { - \ensuremath - { - \chemmacros_bold:n - { - K - \c_math_subscript_token - { \l__chemmacros_k_base_tl } - } - } + \keys_define:nn {chemmacros/acid-base} + { eq-constant .tl_set:N = \l__chemmacros_equilibrium_constant_tl } } -\cs_new_protected:Npn \Kw +\keys_define:nn {chemmacros/acid-base} { - \ensuremath - { - \chemmacros_bold:n - { - K - \c_math_subscript_token - { \l__chemmacros_k_water_tl } - } - } + p-style .choice: , + p-style / slanted .code:n = \cs_set_eq:NN \chemmacros_p_style:n \textsl , + p-style / italics .code:n = \cs_set_eq:NN \chemmacros_p_style:n \textit , + p-style / upright .code:n = \cs_set_eq:NN \chemmacros_p_style:n \textup , + p-style .initial:n = upright } \cs_new_protected:Npn \chemmacros_p:n #1 @@ -95,37 +108,34 @@ \group_begin: \mbox { - \chemmacros_p_style:n { p } - \ensuremath { #1 } + \chemmacros_p_style:n {p} + \ensuremath {#1} } \group_end: } -\NewDocumentCommand \p { m } - { \chemmacros_p:n { #1 } } - -\cs_new_protected:Npn \pH - { \chemmacros_p:n { \chemmacros_chemformula:n {H} } } - -\cs_new_protected:Npn \pOH - { \chemmacros_p:n { \chemmacros_chemformula:n {OH} } } +\NewDocumentCommand \p {m} { \chemmacros_p:n {#1} } +\NewDocumentCommand \pH {} { \chemmacros_p:n { \chemmacros_chemformula:n {H} } } +\NewDocumentCommand \pOH {} { \chemmacros_p:n { \chemmacros_chemformula:n {OH} } } -\NewDocumentCommand \pKa { o } +\NewDocumentCommand \pKa {o} { \chemmacros_p:n { - \Ka \IfNoValueF { #1 } - { {} \c_math_subscript_token { \chemmacros_bold:n { #1 } } } + \Ka \IfNoValueF {#1} + { {} \c_math_subscript_token { \chemmacros_bold:n {#1} } } } } -\NewDocumentCommand \pKb { o } +\NewDocumentCommand \pKb {o} { \chemmacros_p:n { - \Kb \IfNoValueF { #1 } - { {} \c_math_subscript_token { \chemmacros_bold:n { #1 } } } + \Kb \IfNoValueF {#1} + { {} \c_math_subscript_token { \chemmacros_bold:n {#1} } } } } % -------------------------------------------------------------------------- +\tex_endinput:D +2016/02/04 - \NewChemEqConstant and family, new option `eq-constant' diff --git a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.base.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.base.code.tex index d62b2b5aa7e..1f20afb1e25 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.base.code.tex +++ b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.base.code.tex @@ -25,7 +25,7 @@ % % The Current Maintainer of this work is Clemens Niederberger. % -------------------------------------------------------------------------- -\ChemModule{base}{2015/10/14 basic chemmacros module} +\ChemModule{base}{2016/02/09 basic chemmacros module} % for the document hooks \ChemCompatibilityFrom{5.1} @@ -60,20 +60,45 @@ % #3: internal command call \cs_new_protected:Npn \chemmacros_new_macroset:nnn #1#2#3 { - \exp_args:Nc \NewDocumentCommand {NewChem#1} {#2} + \exp_args:Nc \NewDocumentCommand + { + NewChem + \str_upper_case:f { \tl_head:n {#1} } + \tl_tail:n {#1} + } + {#2} { \cs_if_free:NTF ##1 { #3 } { \msg_error:nnn {chemmacros} {new-#1} {##1} } } - \exp_args:Nc \NewDocumentCommand {RenewChem#1} {#2} + \exp_args:Nc \NewDocumentCommand + { + RenewChem + \str_upper_case:f { \tl_head:n {#1} } + \tl_tail:n {#1} + } + {#2} { \cs_if_free:NTF ##1 { \msg_error:nnn {chemmacros} {renew-#1} {##1} } { #3 } } - \exp_args:Nc \NewDocumentCommand {DeclareChem#1} {#2} {#3} - \exp_args:Nc \NewDocumentCommand {ProvideChem#1} {#2} + \exp_args:Nc \NewDocumentCommand + { + DeclareChem + \str_upper_case:f { \tl_head:n {#1} } + \tl_tail:n {#1} + } + {#2} + {#3} + \exp_args:Nc \NewDocumentCommand + { + ProvideChem + \str_upper_case:f { \tl_head:n {#1} } + \tl_tail:n {#1} + } + {#2} { \cs_if_free:NT ##1 { #3 } } \msg_new:nnn {chemmacros} {new-#1} { @@ -88,9 +113,6 @@ } } -\NewDocumentCommand \NewChemMacroset {mmm} - { \cs_new_protected:Npn \chemmacros_new_macroset:nnn {#1} {#2} {#3} } - \cs_new_protected:Npn \chemmacros_new_environment_macroset:nnn #1#2#3 { \exp_args:Nc \NewDocumentCommand {NewChem#1} {#2} @@ -120,6 +142,13 @@ \msg_new:nnn {chemmacros} {renew-#1} { You've~ tried~ to~ renew~ the~ #1~ ##1,~ but~ it~ doesn't~ exist. } } + +\NewDocumentCommand \NewChemMacroset {smmm} + { + \IfBooleanTF {#1} + { \chemmacros_new_environment_macroset:nnn {#2} {#3} {#4} } + { \chemmacros_new_macroset:nnn {#2} {#3} {#4} } + } % -------------------------------------------------------------------------- % basic tools: @@ -307,3 +336,4 @@ 2015/09/23 - new conditionals \chemmacros_if_preamble:TF and \chemmacros_if_document:TF 2015/10/14 - load `errorcheck' module +2016/02/09 - starred version of \NewChemMacroset diff --git a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.charges.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.charges.code.tex index 1697b7e4a72..0ba5fc00519 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.charges.code.tex +++ b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.charges.code.tex @@ -118,10 +118,10 @@ } } -\chemmacros_new_macroset:nnn {Charge} {mm} +\NewChemMacroset {Charge} {mm} { \chemmacros_new_charge_command:Nn #1 {#2} } -\chemmacros_new_macroset:nnn {PartialCharge} {mm} +\NewChemMacroset {PartialCharge} {mm} { \chemmacros_new_partial_charge_command:Nn #1 {#2} } \cs_new_protected:Npn \scrm diff --git a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.lang.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.lang.code.tex index abcea92f071..0c58394caa6 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.lang.code.tex +++ b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.lang.code.tex @@ -25,7 +25,7 @@ % % The Current Maintainer of this work is Clemens Niederberger. % -------------------------------------------------------------------------- -\ChemModule{lang}{2015/11/17 language settings for chemmacros} +\ChemModule{lang}{2016/02/03 language settings for chemmacros} \RequirePackage{translations} @@ -102,15 +102,12 @@ \DeclareTranslation {German} {scheme-list} {Verzeichnis~ der~ Schemata} % -------------------------------------------------------------------------- -\DeclareTranslationFallback {K-acid} {\mathrm{a}} \DeclareTranslation {English} {K-acid} {\mathrm{a}} \DeclareTranslation {German} {K-acid} {\mathrm{s}} \DeclareTranslation {Dutch} {K-acid} {\mathrm{z}} -\DeclareTranslationFallback {K-base} {\mathrm{b}} \DeclareTranslation {English} {K-base} {\mathrm{b}} -\DeclareTranslationFallback {K-water} {\mathrm{w}} \DeclareTranslation {English} {K-water} {\mathrm{w}} % -------------------------------------------------------------------------- @@ -146,3 +143,4 @@ \tex_endinput:D 2015/11/17 - remove options `german' and `ngerman', starting with v5.3 +2016/02/03 - adapt to changes in `acid-base' module diff --git a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.nomenclature.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.nomenclature.code.tex index 551b03ae251..dd10e64107f 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.nomenclature.code.tex +++ b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.nomenclature.code.tex @@ -484,32 +484,35 @@ \prop_remove:Nn \l__chemmacros_iupac_shorthands_prop {#1} } -\prg_new_conditional:Npnn \chemmacros_if_shorthand:N #1 {p,T,F,TF} +\prg_new_conditional:Npnn \chemmacros_if_iupac_shorthand:N #1 {p,T,F,TF} { \seq_if_in:NnTF \l__chemmacros_iupac_shorthands_seq {#1} { \prg_return_true: } { \prg_return_false: } } -\cs_new_protected:Npn \chemmacros_for_all_shorthands_do:n #1 +\cs_new_protected:Npn \chemmacros_for_all_iupac_shorthands_do:n #1 { \seq_map_inline:Nn \l__chemmacros_iupac_shorthands_seq {#1} } \cs_new_protected:Npn \chemmacros_activate_iupac_shorthand:N #1 - { \chemmacros_if_shorthand:NT #1 { \char_set_catcode_active:N #1 } } + { \chemmacros_if_iupac_shorthand:NT #1 { \char_set_catcode_active:N #1 } } \cs_new_protected:Npn \chemmacros_activate_iupac_shorthands:n #1 { \tl_map_inline:nn {#1} { \chemmacros_activate_iupac_shorthand:N ##1 } } \cs_new_protected:Npn \chemmacros_activate_all_iupac_shorthands: { - \chemmacros_for_all_shorthands_do:n + \chemmacros_for_all_iupac_shorthands_do:n { \chemmacros_activate_iupac_shorthand:N ##1 } } \cs_new_protected:Npn \chemmacros_make_shorthands: { - \chemmacros_for_all_shorthands_do:n - { \prop_item:Nn \l__chemmacros_iupac_shorthands_prop {##1} } + \chemmacros_if_document:T + { + \chemmacros_for_all_iupac_shorthands_do:n + { \prop_item:Nn \l__chemmacros_iupac_shorthands_prop {##1} } + } } \NewDocumentCommand \DeclareChemIUPACShorthand {mm} @@ -517,20 +520,20 @@ \NewDocumentCommand \NewChemIUPACShorthand {mm} { - \chemmacros_if_shorthand:NTF #1 + \chemmacros_if_iupac_shorthand:NTF #1 { \msg_error:nnn {chemmacros} {new-iupac-shorthand} {#1} } { \chemmacros_define_iupac_shorthand:NN #1#2 } } \NewDocumentCommand \ProvideChemIUPACShorthand {mm} { - \chemmacros_if_shorthand:NTF #1 + \chemmacros_if_iupac_shorthand:NTF #1 { \chemmacros_define_iupac_shorthand:NN #1#2 } } \NewDocumentCommand \RenewChemIUPACShorthand {mm} { - \chemmacros_if_shorthand:NTF #1 + \chemmacros_if_iupac_shorthand:NTF #1 { \chemmacros_define_iupac_shorthand:NN #1#2 } { \msg_error:nnn {chemmacros} {renew-iupac-shorthand} {#1} } } @@ -552,8 +555,8 @@ \NewChemIUPACShorthand ' \chemprime \EndChemCompatibility -\group_begin: -\chemmacros_activate_all_iupac_shorthands: +% \group_begin: +% \chemmacros_activate_all_iupac_shorthands: \cs_new_protected:Npn \chemmacros_iupac:n #1 { @@ -561,6 +564,7 @@ \bool_set_true:N \l__chemmacros_inside_iupac_bool \chemmacros_make_iupac: \chemmacros_make_shorthands: + % what's this vvv in here for? \chemmacros_ignore_spaces: \chemmacros_if_compatiblity:nnT {<=} {5.2} { \chemmacros_define_deprecated:NN \- - } @@ -570,12 +574,12 @@ \l__chemmacros_tmpa_tl \group_end: } -\group_end: +% \group_end: +\ChemCompatibilityTo{5.2} % Thanks to Joseph Wright and Enrico Gregorio for the help on the curious % redefinition of \- and the end of the compilation % see http://tex.stackexchange.com/q/42405/5049 for reference -\ChemCompatibilityTo{5.2} \cs_set_protected:Npx \- { \exp_not:o { \- } } \cs_set_eq:NN \@dischyph \- \EndChemCompatibility @@ -674,7 +678,7 @@ \cs_new_protected:Npn \chemmacros_define_latin:Nn #1#2 { \cs_set_protected:Npn #1 { \chemmacros_latin:n {#2} } } -\chemmacros_new_macroset:nnn {Latin} {mm} +\NewChemMacroset {Latin} {mm} { \chemmacros_define_latin:Nn #1 {#2} } \AtBeginDocument @@ -737,7 +741,7 @@ \cs_set:Npn \nitrogen {N} \cs_set:Npn \sulfur {S} \cs_set:Npn \phosphorus {P} - \cs_set:Npn \chemprime {'} + \cs_set:Npn \chemprime {'} } } @@ -750,3 +754,4 @@ - fix bug in \RemoveChemIUPACShorthand 2016/01/02 - \chemprime 2016/01/23 - give shorthand definitions only inside \iupac +2016/01/25 - small improvements (?) of the shorthand code diff --git a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.particles.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.particles.code.tex index 373634815c1..a714cba19a0 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.particles.code.tex +++ b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.particles.code.tex @@ -34,7 +34,7 @@ \cs_new_protected:Nn \chemmacros_define_particle:Nn { \cs_set_protected:Npn #1 { \chemmacros_chemformula:n {#2} } } -\chemmacros_new_macroset:nnn {Particle} {mm} +\NewChemMacroset {Particle} {mm} { \chemmacros_define_particle:Nn #1 {#2} } % -------------------------------------------------------------------------- @@ -100,11 +100,9 @@ } } -\chemmacros_new_macroset:nnn {Nucleophile} {mm} +\NewChemMacroset {Nucleophile} {mm} { \chemmacros_declare_nucleophile:Nn #1 {#2} } - - % -------------------------------------------------------------------------- % particles: \NewChemParticle \el { e- } diff --git a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.phases.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.phases.code.tex index 5f913d3f0cd..f97b6491350 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.phases.code.tex +++ b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.phases.code.tex @@ -41,7 +41,8 @@ space .dim_set:N = \l__chemmacros_phases_space_dim } -\chemmacros_new_macroset:nnn {Phase} {mm} { \chemmacros_define_phase:Nn #1 {#2} } +\NewChemMacroset {Phase} {mm} + { \chemmacros_define_phase:Nn #1 {#2} } \cs_new_protected:Npn \chemmacros_define_phase:Nn #1#2 { diff --git a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.reactions.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.reactions.code.tex index bc58cd45ab2..3be548df8ed 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.reactions.code.tex +++ b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.reactions.code.tex @@ -25,7 +25,7 @@ % % The Current Maintainer of this work is Clemens Niederberger. % -------------------------------------------------------------------------- -\ChemModule{reactions}{2015/10/14 reaction environments} +\ChemModule{reactions}{2016/02/09 reaction environments} \chemmacros_load_module:n {chemformula} @@ -181,7 +181,10 @@ \__chemmacros_begin_reaction: \chemmacros_reaction_read:nnw {#2} {#4} } - { \__chemmacros_end_reaction: } + { + \__chemmacros_end_reaction: + \ignorespacesafterend + } } \cs_generate_variant:Nn \chemmacros_reaction_env:nnnn {nnnV} @@ -193,7 +196,7 @@ \end } -\chemmacros_new_environment_macroset:nnn {Reaction} {mO{}m} +\NewChemMacroset* {Reaction} {mO{}m} { \chemmacros_define_reaction:nnn {#1} {#3} {#2} } \NewChemReaction {reaction} {equation} @@ -207,3 +210,4 @@ 2015/09/15 - adapt to `method' option => do not use chemformula's macros directly 2015/10/14 - new option `list-heading-cmd' +2016/02/09 - added \ignorespacesafterend to environments diff --git a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.redox.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.redox.code.tex index 0da0a2e61e6..cb2cc5db0ef 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.redox.code.tex +++ b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.redox.code.tex @@ -82,7 +82,7 @@ \group_end: } -\ChemCompatibilityTo{5.1} +\ChemCompatibilityTo{5.3} \cs_new_protected:Npn \__chemmacros_ox_sign:n #1 { \bool_if:nT @@ -101,7 +101,7 @@ { \c_math_toggle_token - \c_math_toggle_token } } \EndChemCompatibility -\ChemCompatibilityFrom{5.2} +\ChemCompatibilityFrom{5.4} \cs_new_protected:Npn \__chemmacros_ox_sign:n #1 { \bool_if:nT @@ -286,7 +286,7 @@ \ChemCompatibilityFrom{5.4} \keys_define:nn {chemmacros/redox} { - explicit-zero-sign .bool_set:N \l__chemmacros_ox_explicit_zero_sign_bool , + explicit-zero-sign .bool_set:N = \l__chemmacros_ox_explicit_zero_sign_bool , explicit-zero-sign .default:n = true } \EndChemCompatibility diff --git a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.spectroscopy.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.spectroscopy.code.tex index 4991ad2722f..7dac76c2625 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.spectroscopy.code.tex +++ b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.spectroscopy.code.tex @@ -218,7 +218,8 @@ } } -\chemmacros_new_macroset:nnn {NMR} {mm} { \chemmacros_define_nmr:Nn #1 {#2} } +\NewChemMacroset {NMR} {mm} + { \chemmacros_define_nmr:Nn #1 {#2} } \NewDocumentCommand \NMR { sG{}D(){}O{} } { diff --git a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.thermodynamics.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.thermodynamics.code.tex index f4915b0ec5f..3905aaf5987 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.thermodynamics.code.tex +++ b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.thermodynamics.code.tex @@ -125,7 +125,8 @@ } } -\chemmacros_new_macroset:nnn {State} {mm} { \chemmacros_declare_state:Nn #1 {#2} } +\NewChemMacroset {State} {mm} + { \chemmacros_declare_state:Nn #1 {#2} } % -------------------------------------------------------------------------- % predefined: diff --git a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.sty b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.sty index c557d7e1239..5ffd6a34089 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.sty +++ b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.sty @@ -31,10 +31,10 @@ % -------------------------------------------------------------------------- % package information: -\tl_const:Nn \c_chemmacros_date_tl {2016/01/23} +\tl_const:Nn \c_chemmacros_date_tl {2016/02/10} \tl_const:Nn \c_chemmacros_version_major_number_tl {5} -\tl_const:Nn \c_chemmacros_version_minor_number_tl {3} -\tl_const:Nn \c_chemmacros_version_subrelease_tl {a} +\tl_const:Nn \c_chemmacros_version_minor_number_tl {4} +\tl_const:Nn \c_chemmacros_version_subrelease_tl {} \tl_const:Nx \c_chemmacros_version_number_tl {\c_chemmacros_version_major_number_tl.\c_chemmacros_version_minor_number_tl} \tl_const:Nx \c_chemmacros_version_tl @@ -498,3 +498,10 @@ Version history - TikZ decoration `wave' (tikz) 2016/01/23 - version 5.3a - compatibility with chemscheme package (scheme) - IUPAC shorthands only defined within \iupac (nomenclature) +2016/02/10 - version 5.4 - \NewChemEqConstant and family, new option + `eq-constant' (acid-base) + - added \ignorespacesafterend to environments + (reactions) + - fixed erroneous definition of \NewChemMacroset + (base) + - new option `explicit-zero-sign' (redox) -- cgit v1.2.3