summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2016-02-12 00:25:33 +0000
committerKarl Berry <karl@freefriends.org>2016-02-12 00:25:33 +0000
commite61d83b5ff5c38ecb67a00a7081b0be2e944e5d9 (patch)
tree66e24504a0cbc6e790f35ff70ed6ae2babc34cc9
parentd8bace3003c56a242824b6f10d6c6b5ee4f8057b (diff)
chemmacros (10feb16)
git-svn-id: svn://tug.org/texlive/trunk@39682 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/README2
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.pdfbin968732 -> 973781 bytes
-rw-r--r--Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.tex96
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.acid-base.code.tex128
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.base.code.tex46
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.charges.code.tex4
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.lang.code.tex6
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.nomenclature.code.tex35
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.particles.code.tex6
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.phases.code.tex3
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.reactions.code.tex10
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.redox.code.tex6
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.spectroscopy.code.tex3
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.thermodynamics.code.tex3
-rw-r--r--Master/texmf-dist/tex/latex/chemmacros/chemmacros.sty13
15 files changed, 228 insertions, 133 deletions
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
--- a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.pdf
+++ b/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.pdf
Binary files 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)