summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/chemmacros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-02-04 03:01:28 +0000
committerNorbert Preining <norbert@preining.info>2020-02-04 03:01:28 +0000
commitfc358ce7332053945afe16ced2a271556cdccfb7 (patch)
treed723e8bbffaaffd6c8c6d51d46c54db70c61f67a /macros/latex/contrib/chemmacros
parent34897eebd22c3de968b64f09bb4a371d96cb0b89 (diff)
CTAN sync 202002040301
Diffstat (limited to 'macros/latex/contrib/chemmacros')
-rw-r--r--macros/latex/contrib/chemmacros/README7
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros-manual.cls382
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros-manual.pdf (renamed from macros/latex/contrib/chemmacros/chemmacros_en.pdf)bin947206 -> 970626 bytes
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros-manual.tex (renamed from macros/latex/contrib/chemmacros/chemmacros_en.tex)137
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros.history4
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros.module.base.code.tex31
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros.module.chemformula.code.tex18
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros.module.greek.code.tex18
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros.module.mechanisms.code.tex28
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros.module.nomenclature.code.tex143
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros.module.phases.code.tex2
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros.module.reactions.code.tex11
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros.module.redox.code.tex45
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros.module.scheme.code.tex39
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros.module.spectroscopy.code.tex23
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros.module.units.code.tex17
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros.sty20
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros4.sty4
-rw-r--r--macros/latex/contrib/chemmacros/chemmacros5.sty31
19 files changed, 618 insertions, 342 deletions
diff --git a/macros/latex/contrib/chemmacros/README b/macros/latex/contrib/chemmacros/README
index 7483ec9d3f..6153319d53 100644
--- a/macros/latex/contrib/chemmacros/README
+++ b/macros/latex/contrib/chemmacros/README
@@ -1,5 +1,5 @@
--------------------------------------------------------------------------
-the CHEMMACROS package v5.9 2019/11/17
+the CHEMMACROS package v5.10 2020/02/03
comprehensive support for typesetting chemistry documents
@@ -28,8 +28,9 @@ The chemmacros package consists of the following files
chemmacros4.sty
chemmacros5.sty,
== DOCUMENTATION FILES ==
- chemmacros_en.tex
- chemmacros_en.pdf,
+ chemmacros-manual.tex
+ chemmacros-manual.pdf
+ chemmacros-manual.cls
README
chemmacros.history
== MODULE CODE FILES ==
diff --git a/macros/latex/contrib/chemmacros/chemmacros-manual.cls b/macros/latex/contrib/chemmacros/chemmacros-manual.cls
new file mode 100644
index 0000000000..179e588d55
--- /dev/null
+++ b/macros/latex/contrib/chemmacros/chemmacros-manual.cls
@@ -0,0 +1,382 @@
+% --------------------------------------------------------------------------
+% the CHEMFORMULA package
+%
+% typeset chemical compounds and reactions
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% --------------------------------------------------------------------------
+% https://github.com/cgnieder/chemformula/
+% contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% If you have any ideas, questions, suggestions or bugs to report, please
+% feel free to contact me.
+% --------------------------------------------------------------------------
+% Copyright 2011--2020 Clemens Niederberger
+%
+% 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.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Clemens Niederberger.
+% --------------------------------------------------------------------------
+\ProvidesClass{chemmacros-manual}[2020/02/03]
+
+\LoadClass[load-preamble,add-index]{cnltx-doc}
+\RequirePackage{imakeidx}
+\RequirePackage[utf8]{inputenc}
+
+\RequirePackage[compatibility=newest]{chemmacros}
+\setcnltx{
+ package = {chemmacros},
+ info = {comprehensive support for typesetting chemistry documents},
+ url = https://github.com/cgnieder/chemmacros ,
+ authors = Clemens Niederberger ,
+ email = contact@mychemistry.eu ,
+ abstract = {%
+ \centering
+ \includegraphics{chemmacros-logo.pdf}
+ \par
+ } ,
+ quote-format = \small\biolinumLF ,
+ add-cmds = {
+ abinitio, activatechemgreekmapping, AddRxnDesc, anti, aq, aqi,
+ ba, bond, bridge,
+ cd, ch, changechemgreeksymbol, charrow, chcpd, chemabove, chemalpha,
+ chembeta, ChemCleverefSupport, chemdelta, chemDelta,
+ ChemFancyrefSupport, chemformula@bondlength, chemgamma, ChemModule,
+ chemomega, chemphi, chemPhi, chemsetup, chlewis, chname , cip, cis, ch,
+ CNMR,
+ data, DeclareChemArrow, DeclareChemBond, DeclareChemBondAlias,
+ 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,
+ gas, ghs, ghslistall, ghspic, gibbs, gram,
+ hapto, HNMR, Helmholtz, hydrogen,
+ IfChemCompatibilityF, IfChemCompatibilityT, IfChemCompatibilityTF, insitu,
+ invacuo, isotope, iupac,
+ Ka, Kb, Kw,
+ laevus, Lfi, listofreactions, lqd,
+ makepolymerdelims, mch, mega, meta, mhName,
+ NewChemArrow, NewChemBond, NewChemBondAlias,
+ 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,
+ ProvideChemEqConstant, ProvideChemIUPAC, ProvideChemIUPACShorthand,
+ ProvideChemLatin, ProvideChemNMR, ProvideChemNucleophile,
+ ProvideChemPartialCharge, ProvideChemParticle, ProvideChemPhase,
+ ProvideChemReaction,
+ ProvideChemState, prt,
+ Rad, redox, RemoveChemIUPACShorthand, RenewChemArrow, RenewChemBond,
+ RenewChemCharge, RenewChemEqConstant, renewchemgreekmapping,
+ RenewChemIUPAC, RenewChemIUPACShorthand, RenewChemLatin, RenewChemNMR,
+ RenewChemNucleophile, RenewChemPartialCharge, RenewChemParticle,
+ RenewChemPhase, RenewChemState,
+ Sf, scrm, scrp, second, selectchemgreekmapping, setchemformula,
+ ShowChemArrow, ShowChemBond, sld, Sod, state, sulfur,
+ trans,
+ usechemmodule,
+ val,
+ zusammen
+ } ,
+ add-silent-cmds = {
+ addplot,
+ bottomrule,
+ cancel, cdot, ce, cee, celsius, centering, chemfig, chemname, clap,
+ cnsetup, code, color, cstack, cstsetup,
+ DeclareInstance, DeclareSIUnit, definecolor, draw,
+ electronvolt, endtikzpicture,
+ footnotesize,
+ glqq, grqq,
+ hertz, hspace,
+ includegraphics, intertext, IUPAC,
+ joule,
+ kelvin, kilo,
+ latin, lc, lewis, Lewis, liquid, ltn,
+ metre, midrule, milli, mmHg, mole,
+ nano, nicefrac, num, numrange,
+ ominus, oplus,
+ percent, pgfarrowsdeclarealias, pgfarrowsrenewalias,
+ renewtagform, rightarrow,
+ sample, scriptscriptstyle, setchemfig, sfrac, shade,
+ shadedraw, shorthandoff, si, SI, sisetup, square, subsection,
+ textcolor, textendash, textsuperscript, tikz, tikzpicture, tiny, toprule,
+ upbeta, upeta, upgamma, usetikzlibrary,
+ volt, vphantom, vspave,
+ xspace,
+ z@, z@skip
+ } ,
+ index-setup = { othercode = \footnotesize , level = \section } ,
+ makeindex-setup = { columns = 2 , columnsep = 1em }
+}
+
+\RequirePackage{booktabs,array,longtable}
+
+\RequirePackage{chemfig,cancel,varioref,csquotes}
+
+\RequirePackage[
+ a4paper,
+ top = .1\paperheight,
+ bottom = .1\paperheight,
+ left = .2\paperwidth,
+ right = .1\paperwidth
+]{geometry}
+
+\def\libertine@figurestyle{LF}
+\RequirePackage{amsmath}
+\undef\lvert \undef\lVert
+\undef\rvert \undef\rVert
+\RequirePackage[libertine]{newtxmath}
+\def\libertine@figurestyle{OsF}
+
+\RequirePackage[biblatex]{embrac}
+\ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
+\ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
+
+\RequirePackage[accsupp]{acro}
+\acsetup{
+ long-format = \scshape ,
+ short-format = \scshape
+}
+
+\RequirePackage{fontawesome}
+\RequirePackage{datetime2}
+\DTMsetup{useregional=numeric,datesep=/}
+\newrobustcmd*\chemmacros@add@version[2]{%
+ \csdef{chemmacros@ver@#2}{%
+ \DTMdate{#1}%
+ \csgdef{chemmacros@ver@#2used}{}%
+ \csdef{chemmacros@ver@#2}{\DTMdate{#1}}%
+ }%
+}
+
+\newrobustcmd*\chemmacros@date[1]{%
+ \ifcsdef{chemmacros@ver@#1used}{}{ (\csuse{chemmacros@ver@#1})}}
+\newrobustcmd*\chemmacros@ifnew[1]{\ifcsstring{c_chemmacros_version_tl}{#1}}
+\newrobustcmd*\chemmacros@NEW{\faStarO\ New}
+
+\renewrobustcmd*\sinceversion[1]{%
+ \chemmacros@ifnew{#1}%
+ {\cnltx@version@note{\textcolor{red}{\chemmacros@NEW}}}%
+ {\cnltx@version@note{\GetTranslation{cnltx-introduced}~#1\chemmacros@date{#1}}}%
+}
+\renewrobustcmd*\changedversion[1]{%
+ \cnltx@version@note{\GetTranslation{cnltx-changed}~#1\chemmacros@date{#1}}%
+}
+
+\newnote*\sincechanged[2]{%
+ \GetTranslation{cnltx-introduced}~#1\chemmacros@date{#1},
+ changed with version~#2\chemmacros@date{#2}\chemmacros@ifnew{#2}{ \chemmacros@NEW}{}%
+}
+
+\RenewDocumentEnvironment{commands}{}
+ {%
+ \cnltx@set@catcode_{12}%
+ \let\command\cnltx@command
+ \cnltxlist
+ }
+ {\endcnltxlist}
+
+\RequirePackage{tcolorbox,xsimverb}
+\tcbuselibrary{skins,breakable}
+\tcbset{enhanced,enhanced jigsaw}
+
+\newtcolorbox{bewareofthedog}{
+ colback = white ,
+ colframe = red ,
+ underlay={%
+ \path[draw=none]
+ (interior.south west)
+ rectangle node[red]{\Huge\bfseries !}
+ ([xshift=-4mm]interior.north west);
+ }%
+}
+
+\newtcolorbox{cnltxcode}[1][]{
+ boxrule = 1pt ,
+ colback = cnltxbg ,
+ colframe = cnltx ,
+ arc = 5pt ,
+ beforeafter skip = .5\baselineskip ,%
+ #1%
+}
+
+\newcommand*\chemmacros@readoptions[1]{%
+ \catcode`\^^M=13
+ \chemmacros@read@options{#1}%
+}
+
+\begingroup
+\catcode`\^^M=13
+\gdef\chemmacros@read@options#1#2^^M{%
+ \endgroup
+ \ifblank{#2}{}{\chemmacros@read@options@#2}%
+ #1%
+ \XSIMfilewritestart*{\jobname.tmp}%
+}%
+\endgroup
+\def\chemmacros@read@options@[#1]{\pgfqkeys{/cnltx}{#1}}
+
+\RenewDocumentEnvironment{sourcecode}{}
+ {%
+ \begingroup
+ \chemmacros@readoptions{%
+ \setlength\cnltx@sidebysidewidth
+ {\dimexpr .45\columnwidth -\lst@xleftmargin -\lst@xrightmargin\relax}%
+ \expanded{%
+ \noexpand\lstset{
+ style=cnltx,
+ \ifboolexpe{ bool {cnltx@sidebyside} and not bool {cnltx@codeonly} }
+ {linewidth=\cnltx@sidebysidewidth,}{}%
+ \expandonce\cnltx@local@listings@options
+ }%
+ }%
+ \XSIMgobblechars{2}%
+ }%
+ }
+ {%
+ \XSIMfilewritestop
+ \cnltxcode[breakable]%
+ \lstinputlisting[style=cnltx]{\jobname.tmp}%
+ \endcnltxcode
+ }
+
+\RenewDocumentEnvironment{example}{}
+ {%
+ \begingroup
+ \chemmacros@readoptions{%
+ \setlength\cnltx@sidebysidewidth
+ {\dimexpr .45\columnwidth -\lst@xleftmargin -\lst@xrightmargin\relax}%
+ \expanded{%
+ \noexpand\lstset{
+ style=cnltx,
+ \ifboolexpe{ bool {cnltx@sidebyside} and not bool {cnltx@codeonly} }
+ {linewidth=\cnltx@sidebysidewidth,}{}%
+ \expandonce\cnltx@local@listings@options
+ }%
+ }%
+ \XSIMgobblechars{2}%
+ }%
+ }
+ {%
+ \XSIMfilewritestop
+ \ifbool{cnltx@sidebyside}
+ {%
+ \cnltxcode
+ \noindent
+ \minipage[c]{\cnltx@sidebysidewidth}%
+ \cnltx@pre@source@hook
+ \lstinputlisting[style=cnltx] {\jobname.tmp}%
+ \cnltx@after@source@hook
+ \endminipage\hfill
+ \minipage[c]{\cnltx@sidebysidewidth}%
+ \cnltx@pre@example@hook
+ \input {\jobname.tmp}%
+ \cnltx@after@example@hook
+ \endminipage
+ }
+ {%
+ \cnltxcode[breakable]%
+ \cnltx@pre@source@hook
+ \lstinputlisting{\jobname.tmp}%
+ \cnltx@after@source@hook
+ \tcblower
+ \cnltx@pre@example@hook
+ \input {\jobname.tmp}%
+ \cnltx@after@example@hook
+ }%
+ \endcnltxcode
+ }
+
+\RequirePackage[
+ backend=biber,
+ style=cnltx,
+ sortlocale=en_US,
+ indexing=cite]{biblatex}
+\RequirePackage{csquotes,varioref}
+\defbibheading{bibliography}{\section{References}}
+
+\RequirePackage[biblatex]{embrac}[2012/06/29]
+\ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
+\ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
+
+\chemmacros@add@version{2012-01-28}{3.0}
+\chemmacros@add@version{2012-01-30}{3.0a}
+\chemmacros@add@version{2012-02-03}{3.0b}
+\chemmacros@add@version{2012-02-05}{3.0c}
+\chemmacros@add@version{2012-02-10}{3.0d}
+\chemmacros@add@version{2012-02-19}{3.1}
+\chemmacros@add@version{2012-02-26}{3.1a}
+\chemmacros@add@version{2012-03-03}{3.1b}
+\chemmacros@add@version{2012-03-14}{3.1c}
+\chemmacros@add@version{2012-03-20}{3.2}
+\chemmacros@add@version{2012-05-07}{3.3}
+\chemmacros@add@version{2012-05-13}{3.3a}
+\chemmacros@add@version{2012-05-18}{3.3b}
+\chemmacros@add@version{2012-05-18}{3.3c}
+\chemmacros@add@version{2012-07-24}{3.3d}
+\chemmacros@add@version{2012-08-21}{3.3e}
+\chemmacros@add@version{2012-09-11}{3.4}
+\chemmacros@add@version{2012-10-03}{3.4a}
+\chemmacros@add@version{2013-01-04}{3.4b}
+\chemmacros@add@version{2013-01-28}{3.5}
+\chemmacros@add@version{2013-02-19}{3.5a}
+\chemmacros@add@version{2013-02-26}{3.6}
+\chemmacros@add@version{2013-02-27}{3.6a}
+\chemmacros@add@version{2013-04-19}{3.6b}
+\chemmacros@add@version{2013-07-06}{4.0}
+\chemmacros@add@version{2013-08-07}{4.0a}
+\chemmacros@add@version{2013-08-24}{4.1}
+\chemmacros@add@version{2013-10-28}{4.2}
+\chemmacros@add@version{2013-10-31}{4.2a}
+\chemmacros@add@version{2013-11-04}{4.2b}
+\chemmacros@add@version{2013-11-20}{4.2c}
+\chemmacros@add@version{2013-12-15}{4.2d}
+\chemmacros@add@version{2014-01-09}{4.2e}
+\chemmacros@add@version{2014-01-24}{4.3}
+\chemmacros@add@version{2014-01-29}{4.4}
+\chemmacros@add@version{2014-04-08}{4.5}
+\chemmacros@add@version{2014-06-30}{4.5a}
+\chemmacros@add@version{2014-08-08}{4.6}
+\chemmacros@add@version{2015-02-08}{4.7}
+\chemmacros@add@version{2015-09-11}{5.0}
+\chemmacros@add@version{2015-09-23}{5.1}
+\chemmacros@add@version{2015-10-14}{5.2}
+\chemmacros@add@version{2016-01-13}{5.3}
+\chemmacros@add@version{2016-01-23}{5.3a}
+\chemmacros@add@version{2016-02-10}{5.4}
+\chemmacros@add@version{2016-03-08}{5.5}
+\chemmacros@add@version{2016-05-02}{5.6}
+\chemmacros@add@version{2016-05-04}{5.6a}
+\chemmacros@add@version{2016-06-07}{5.7}
+\chemmacros@add@version{2016-06-08}{5.7a}
+\chemmacros@add@version{2016-10-05}{5.7b}
+\chemmacros@add@version{2016-12-28}{5.7c}
+\chemmacros@add@version{2017-04-17}{5.8}
+\chemmacros@add@version{2017-06-13}{5.8a}
+\chemmacros@add@version{2017-08-28}{5.8b}
+\chemmacros@add@version{2018-03-02}{5.8c}
+\chemmacros@add@version{2019-09-23}{5.8d}
+\chemmacros@add@version{2019-09-27}{5.8e}
+\chemmacros@add@version{2019-09-30}{5.8f}
+\chemmacros@add@version{2019-11-17}{5.9}
+\chemmacros@add@version{2020-01-16}{5.9a}
+\chemmacros@add@version{2020-02-03}{5.10}
+
+\endinput
diff --git a/macros/latex/contrib/chemmacros/chemmacros_en.pdf b/macros/latex/contrib/chemmacros/chemmacros-manual.pdf
index 5619833757..02badca256 100644
--- a/macros/latex/contrib/chemmacros/chemmacros_en.pdf
+++ b/macros/latex/contrib/chemmacros/chemmacros-manual.pdf
Binary files differ
diff --git a/macros/latex/contrib/chemmacros/chemmacros_en.tex b/macros/latex/contrib/chemmacros/chemmacros-manual.tex
index 9bf20e8789..991742a710 100644
--- a/macros/latex/contrib/chemmacros/chemmacros_en.tex
+++ b/macros/latex/contrib/chemmacros/chemmacros-manual.tex
@@ -30,133 +30,8 @@
%
% The Current Maintainer of this work is Clemens Niederberger.
% --------------------------------------------------------------------------
-\documentclass[load-preamble+]{cnltx-doc}
-\usepackage[utf8]{inputenc}
-\usepackage[compatibility=newest]{chemmacros}
-\setcnltx{
- package = {chemmacros},
- info = {comprehensive support for typesetting chemistry documents},
- url = https://github.com/cgnieder/chemmacros ,
- authors = Clemens Niederberger ,
- email = contact@mychemistry.eu ,
- abstract = {%
- \centering
- \includegraphics{chemmacros-logo.pdf}
- \par
- } ,
- quote-format = \small\biolinumLF ,
- add-cmds = {
- abinitio, activatechemgreekmapping, AddRxnDesc, anti, aq, aqi,
- ba, bond, bridge,
- cd, ch, changechemgreeksymbol, charrow, chcpd, chemabove, chemalpha,
- chembeta, ChemCleverefSupport, chemdelta, chemDelta,
- ChemFancyrefSupport, chemformula@bondlength, chemgamma, ChemModule,
- chemomega, chemphi, chemPhi, chemsetup, chlewis, chname , cip, cis, ch,
- CNMR,
- data, DeclareChemArrow, DeclareChemBond, DeclareChemBondAlias,
- 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,
- gas, ghs, ghslistall, ghspic, gibbs, gram,
- hapto, HNMR, Helmholtz, hydrogen,
- IfChemCompatibilityF, IfChemCompatibilityT, IfChemCompatibilityTF, insitu,
- invacuo, isotope, iupac,
- Ka, Kb, Kw,
- laevus, Lfi, listofreactions, lqd,
- makepolymerdelims, mch, mega, meta, mhName,
- NewChemArrow, NewChemBond, NewChemBondAlias,
- 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,
- ProvideChemEqConstant, ProvideChemIUPAC, ProvideChemIUPACShorthand,
- ProvideChemLatin, ProvideChemNMR, ProvideChemNucleophile,
- ProvideChemPartialCharge, ProvideChemParticle, ProvideChemPhase,
- ProvideChemReaction,
- ProvideChemState, prt,
- Rad, redox, RemoveChemIUPACShorthand, RenewChemArrow, RenewChemBond,
- RenewChemCharge, RenewChemEqConstant, renewchemgreekmapping,
- RenewChemIUPAC, RenewChemIUPACShorthand, RenewChemLatin, RenewChemNMR,
- RenewChemNucleophile, RenewChemPartialCharge, RenewChemParticle,
- RenewChemPhase, RenewChemState,
- Sf, scrm, scrp, second, selectchemgreekmapping, setchemformula,
- ShowChemArrow, ShowChemBond, sld, Sod, state, sulfur,
- trans,
- usechemmodule,
- val,
- zusammen
- } ,
- add-silent-cmds = {
- addplot,
- bottomrule,
- cancel, cdot, ce, cee, celsius, centering, chemfig, chemname, clap,
- cnsetup, code, color, cstack, cstsetup,
- DeclareInstance, DeclareSIUnit, definecolor, draw,
- electronvolt, endtikzpicture,
- footnotesize,
- glqq, grqq,
- hertz, hspace,
- includegraphics, intertext, IUPAC,
- joule,
- kelvin, kilo,
- latin, lc, lewis, Lewis, liquid, ltn,
- metre, midrule, milli, mmHg, mole,
- nano, nicefrac, num, numrange,
- ominus, oplus,
- percent, pgfarrowsdeclarealias, pgfarrowsrenewalias,
- renewtagform, rightarrow,
- sample, scriptscriptstyle, setchemfig, sfrac, shade,
- shadedraw, shorthandoff, si, SI, sisetup, square, subsection,
- textcolor, textendash, textsuperscript, tikz, tikzpicture, tiny, toprule,
- upbeta, upeta, upgamma, usetikzlibrary,
- volt, vphantom, vspave,
- xspace,
- z@, z@skip
- } ,
- index-setup = { othercode = \footnotesize , level = \section } ,
- makeindex-setup = { columns = 2 , columnsep = 1em }
-}
-
-\usepackage{booktabs,array,longtable}
-
-\usepackage{chemfig,cancel,varioref,csquotes}
-
-\usepackage[
- a4paper,
- top = .1\paperheight,
- bottom = .1\paperheight,
- left = .2\paperwidth,
- right = .1\paperwidth
-]{geometry}
+\documentclass{chemmacros-manual}
-
-\makeatletter
-\def\libertine@figurestyle{LF}
-\usepackage{amsmath}
-\undef\lvert \undef\lVert
-\undef\rvert \undef\rVert
-\usepackage[libertine]{newtxmath}
-\def\libertine@figurestyle{OsF}
-\makeatother
-
-\usepackage[biblatex]{embrac}
-\ChangeEmph{[}[,.02em]{]}[.055em,-.08em]
-\ChangeEmph{(}[-.01em,.04em]{)}[.04em,-.05em]
-
-\usepackage[accsupp]{acro}
-\acsetup{
- long-format = \scshape ,
- short-format = \scshape
-}
\DeclareAcronym{ghs}{
short = ghs ,
long = Globally Harmonized System of Classification and Labelling of
@@ -208,19 +83,17 @@
chemformula/format = \libertineLF
}
-\usepackage{siunitx}
-
\sisetup{
detect-mode=false,
mode=text,
text-rm=\libertineLF
}
-\usepackage{filecontents}
-
\defbibheading{bibliography}{\section{References}}
\addbibresource{\jobname.bib}
-\begin{filecontents*}{\jobname.bib}
+\addbibresource{cnltx.bib}
+
+\begin{filecontents*}[overwrite]{\jobname.bib}
@book{iupac:greenbook,
author = {E. Richard Cohan and Tomislav Cvita\v{s} and Jeremy G. Frey and
Bertil Holmstr\"om and Kozo Kuchitsu and Roberto Marquardt and Ian Mills and
@@ -1647,8 +1520,6 @@ modules. In the macro descriptions below \TF\ denotes that a \code{T}, an
\marg{true} \marg{false}]
Checks if class \meta{name} has been loaded. Also works after begin
document.
- \explcommand{chemmacros_leave_vmode:}
- Equivalent of \cs*{leavevmode}.
\explcommand{chemmacros_nobreak:}
Inserts a penalty of \num{10000}.
\explcommand{chemmacros_allow_break:}
diff --git a/macros/latex/contrib/chemmacros/chemmacros.history b/macros/latex/contrib/chemmacros/chemmacros.history
index fc78d0e120..694c1039ce 100644
--- a/macros/latex/contrib/chemmacros/chemmacros.history
+++ b/macros/latex/contrib/chemmacros/chemmacros.history
@@ -386,3 +386,7 @@ Version history
- define latin phrases on the go instead of at begin
document
2020/01/16 - version 5.9a - adapt to renaming of string case changing functions
+2020/02/03 - version 5.10 - define \torr as well as \Torr (units)
+ - prefer lazy boolean evaluation
+ - prefer the kernel commands to
+ \chemmacros_leave_vmode: and \chemmacros_tex_if:
diff --git a/macros/latex/contrib/chemmacros/chemmacros.module.base.code.tex b/macros/latex/contrib/chemmacros/chemmacros.module.base.code.tex
index 3f84c9097b..ed85a205e5 100644
--- a/macros/latex/contrib/chemmacros/chemmacros.module.base.code.tex
+++ b/macros/latex/contrib/chemmacros/chemmacros.module.base.code.tex
@@ -25,7 +25,7 @@
%
% The Current Maintainer of this work is Clemens Niederberger.
% --------------------------------------------------------------------------
-\ChemModule{base}{2020/01/16 basic chemmacros module}
+\ChemModule{base}{2020/02/02 basic chemmacros module}
% for the document hooks
\ChemCompatibilityFrom{5.1}
@@ -117,21 +117,27 @@
{
\exp_args:Nc \NewDocumentCommand {NewChem#1} {#2}
{
- \bool_if:nTF { \cs_if_free_p:c {##1} && \cs_if_free_p:c {end##1} }
- { #3 }
+ \bool_lazy_and:nnTF
+ { \cs_if_free_p:c {##1} }
+ { \cs_if_free_p:c {end##1} }
+ {#3}
{ \msg_error:nnn {chemmacros} {new-#1} {##1} }
}
\exp_args:Nc \NewDocumentCommand {RenewChem#1} {#2}
{
- \bool_if:nTF { \cs_if_free_p:c {##1} || \cs_if_free_p:c {end##1} }
+ \bool_lazy_or:nnTF
+ { \cs_if_free_p:c {##1} }
+ { \cs_if_free_p:c {end##1} }
{ \msg_error:nnn {chemmacros} {renew-#1} {##1} }
- { #3 }
+ {#3}
}
\exp_args:Nc \NewDocumentCommand {DeclareChem#1} {#2} {#3}
\exp_args:Nc \NewDocumentCommand {ProvideChem#1} {#2}
{
- \bool_if:nT { \cs_if_free_p:c {##1} && \cs_if_free_p:c {end##1} }
- { #3 }
+ \bool_lazy_and:nT
+ { \cs_if_free_p:c {##1} }
+ { \cs_if_free_p:c {end##1} }
+ {#3}
}
\msg_new:nnn {chemmacros} {new-#1}
{
@@ -178,7 +184,6 @@
\cs_new_eq:NN \chemmacros_ignore_spaces: \tex_ignorespaces:D
-\cs_new_protected:Npn \chemmacros_leave_vmode: { \hbox_unpack:N \c_empty_box }
\cs_new_protected:Npn \chemmacros_nobreak: { \tex_penalty:D 10000 \scan_stop: }
\cs_new_protected:Npn \chemmacros_allow_break: { \tex_penalty:D \c_zero_int }
\cs_new_protected:Npn \chemmacros_skip_nobreak:N #1
@@ -188,13 +193,6 @@
\chemmacros_nobreak:
}
-% do I use those at all?
-\prg_new_conditional:Npnn \chemmacros_tex_if:nn #1#2 {p,T,F,TF}
- { \use:c { if #1 } #2 \prg_return_true: \else: \prg_return_false: \fi: }
-
-\prg_new_conditional:Npnn \chemmacros_latex_if:n #1 {p,T,F,TF}
- { #1 { \prg_return_true: } { \prg_return_false: } }
-
% this is used at least in the `isotope' module
\prg_new_conditional:Npnn \chemmacros_if_is_int:n #1 {p,T,F,TF}
{
@@ -272,7 +270,7 @@
{
\cs_if_exist:cF {cref@#1@name}
{
- \chemmacros_tex_if:nnTF {@cref@capitalise} {}
+ \legacy_if:nTF {@cref@capitalise}
{ \crefname {#1} {#4} {#5} }
{ \crefname {#1} {#2} {#3} }
\Crefname {#1} {#4} {#5}
@@ -485,3 +483,4 @@
2016/05/04 - fix \ChemCleverefSupport
2017/08/28 - add missing hyperref check
2020/01/16 - adapt to renaming of string case changing functions
+2020/02/02 - lazy boolean evaluation
diff --git a/macros/latex/contrib/chemmacros/chemmacros.module.chemformula.code.tex b/macros/latex/contrib/chemmacros/chemmacros.module.chemformula.code.tex
index 292b90747a..7bc4be0b0a 100644
--- a/macros/latex/contrib/chemmacros/chemmacros.module.chemformula.code.tex
+++ b/macros/latex/contrib/chemmacros/chemmacros.module.chemformula.code.tex
@@ -25,7 +25,7 @@
%
% The Current Maintainer of this work is Clemens Niederberger.
% --------------------------------------------------------------------------
-\ChemModule{chemformula}{2016/05/03 integration of chemical formulas}
+\ChemModule{chemformula}{2020/02/02 integration of chemical formulas}
\RequirePackage{amstext}
\chemmacros_load_module:n {charges}
@@ -209,17 +209,12 @@
\AtEndPreamble
{
- \bool_if:nTF
- {
- !\l__chemmacros_formula_method_set_bool
- &&
- \chemmacros_if_compatibility_p:nn {>=} {5.2}
- &&
- \chemmacros_if_compatibility_p:nn {<} {5.6}
- }
- { \chemmacros_check_formula_method: }
+ \bool_if:NF \l__chemmacros_formula_method_set_bool
{
- \bool_if:NF \l__chemmacros_formula_method_set_bool
+ \bool_lazy_and:nnTF
+ { \chemmacros_if_compatibility_p:nn {>=} {5.2} }
+ { \chemmacros_if_compatibility_p:nn {<} {5.6} }
+ { \chemmacros_check_formula_method: }
{
\chemmacros_if_compatibility:nnTF {>=} {5.6}
{ \msg_info:nn {chemmacros} {default-formula-method} }
@@ -242,3 +237,4 @@
- don't automatically load an available method: load `chemformula'
if the users haven't decided for themselves and issue a warning
2016/05/03 - correct wrong method check
+2020/02/02 - lazy boolean evaluation
diff --git a/macros/latex/contrib/chemmacros/chemmacros.module.greek.code.tex b/macros/latex/contrib/chemmacros/chemmacros.module.greek.code.tex
index afe973899d..ef9f8568e2 100644
--- a/macros/latex/contrib/chemmacros/chemmacros.module.greek.code.tex
+++ b/macros/latex/contrib/chemmacros/chemmacros.module.greek.code.tex
@@ -25,9 +25,9 @@
%
% The Current Maintainer of this work is Clemens Niederberger.
% --------------------------------------------------------------------------
-\ChemModule{greek}{2015/06/09 upright greek symbols}
+\ChemModule{greek}{2020/02/02 upright greek symbols}
-\RequirePackage{chemgreek}[2015/04/09]
+\RequirePackage{chemgreek}[2020/01/16]
\msg_new:nnn {chemmacros} {no-greek}
{
@@ -45,19 +45,15 @@
% chemgreek selects a mapping if an unambiguous choice is possible, otherwise
% selects `default'. Warn the user in this case:
\AtBeginDocument{
- \bool_if:nT
- {
- \chemgreek_if_mapping_active_p:n {default} ||
- \chemgreek_if_mapping_active_p:n {var-default}
- }
+ \bool_lazy_or:nnT
+ { \chemgreek_if_mapping_active_p:n {default} }
+ { \chemgreek_if_mapping_active_p:n {var-default} }
{ \msg_warning:nn {chemmacros} {no-greek} }
}
% an option for manual selection:
\chemmacros_define_global_keys:n
- {
- greek .code:n = \chemmacros_choose_chemgreek_mapping:n {#1}
- }
+ { greek .code:n = \chemmacros_choose_chemgreek_mapping:n {#1} }
\cs_new_protected:Npn \chemmacros_choose_chemgreek_mapping:n #1
{
@@ -70,3 +66,5 @@
}
% --------------------------------------------------------------------------
+\file_input_stop:
+2020/02/02 - lazy boolean evaluation
diff --git a/macros/latex/contrib/chemmacros/chemmacros.module.mechanisms.code.tex b/macros/latex/contrib/chemmacros/chemmacros.module.mechanisms.code.tex
index 2f272bb740..812dede658 100644
--- a/macros/latex/contrib/chemmacros/chemmacros.module.mechanisms.code.tex
+++ b/macros/latex/contrib/chemmacros/chemmacros.module.mechanisms.code.tex
@@ -40,9 +40,9 @@
\cs_new_protected:Npn \__chemmacros_set_mechanisms:nnn #1#2#3
{
- \tl_set:Nn \l__chemmacros_mechanisms_type_tl { #1 }
- \tl_set:Nn \l__chemmacros_mechanisms_mol_tl { #2 }
- \tl_set:Nn \l__chemmacros_mechanisms_ar_tl { #3 }
+ \tl_set:Nn \l__chemmacros_mechanisms_type_tl {#1}
+ \tl_set:Nn \l__chemmacros_mechanisms_mol_tl {#2}
+ \tl_set:Nn \l__chemmacros_mechanisms_ar_tl {#3}
}
\chemmacros_define_keys:nn {mechanisms}
@@ -50,7 +50,7 @@
type .choice: ,
type / .code:n =
{
- \__chemmacros_set_mechanisms:nnn { S }
+ \__chemmacros_set_mechanisms:nnn {S}
{
\c_math_toggle_token
\c_math_subscript_token { \text {N} }
@@ -60,7 +60,7 @@
} ,
type / 1 .code:n =
{
- \__chemmacros_set_mechanisms:nnn { S }
+ \__chemmacros_set_mechanisms:nnn {S}
{
\c_math_toggle_token
\c_math_subscript_token { \text {N} }
@@ -71,7 +71,7 @@
} ,
type / 2 .code:n =
{
- \__chemmacros_set_mechanisms:nnn { S }
+ \__chemmacros_set_mechanisms:nnn {S}
{
\c_math_toggle_token
\c_math_subscript_token { \text {N} }
@@ -82,7 +82,7 @@
} ,
type / se .code:n =
{
- \__chemmacros_set_mechanisms:nnn { S }
+ \__chemmacros_set_mechanisms:nnn {S}
{
\c_math_toggle_token
\c_math_subscript_token { \text {E} }
@@ -92,7 +92,7 @@
} ,
type / 1e .code:n =
{
- \__chemmacros_set_mechanisms:nnn { S }
+ \__chemmacros_set_mechanisms:nnn {S}
{
\c_math_toggle_token
\c_math_subscript_token { \text {E} }
@@ -103,7 +103,7 @@
} ,
type / 2e .code:n =
{
- \__chemmacros_set_mechanisms:nnn { S }
+ \__chemmacros_set_mechanisms:nnn {S}
{
\c_math_toggle_token
\c_math_subscript_token { \text {E} }
@@ -114,7 +114,7 @@
} ,
type / ar .code:n =
{
- \__chemmacros_set_mechanisms:nnn { S }
+ \__chemmacros_set_mechanisms:nnn {S}
{
\c_math_toggle_token
\c_math_subscript_token { \text {E} }
@@ -123,14 +123,14 @@
{ Ar - }
} ,
type / e .code:n =
- { \__chemmacros_set_mechanisms:nnn { E } { } { } } ,
+ { \__chemmacros_set_mechanisms:nnn {E} { } { } } ,
type / e1 .code:n =
- { \__chemmacros_set_mechanisms:nnn { E } { 1 } { } } ,
+ { \__chemmacros_set_mechanisms:nnn {E} {1} { } } ,
type / e2 .code:n =
- { \__chemmacros_set_mechanisms:nnn { E } { 2 } { } } ,
+ { \__chemmacros_set_mechanisms:nnn {E} {2} { } } ,
type / cb .code:n =
{
- \__chemmacros_set_mechanisms:nnn { E }
+ \__chemmacros_set_mechanisms:nnn {E}
{
1
\c_math_toggle_token
diff --git a/macros/latex/contrib/chemmacros/chemmacros.module.nomenclature.code.tex b/macros/latex/contrib/chemmacros/chemmacros.module.nomenclature.code.tex
index 1175b3151e..3e5b6b616d 100644
--- a/macros/latex/contrib/chemmacros/chemmacros.module.nomenclature.code.tex
+++ b/macros/latex/contrib/chemmacros/chemmacros.module.nomenclature.code.tex
@@ -51,10 +51,10 @@
\msg_new:nnn {chemmacros} {let-iupac}
{
- You've~ tried~ to~ let~ the~ iupac~ command~ \token_to_str:N #1 ~ to~ the~
- iupac~ command~ \token_to_str:N #2 ,~ but~ the~ latter~ doesn't~ exist.~
- Use~ \token_to_str:N \NewChemIUPAC \c_space_tl instead~ or~declare~
- \token_to_str:N #2 \c_space_tl first.
+ You've~ tried~ to~ let~ the~ iupac~ command~ \token_to_str:N #1
+ \c_space_tl to~ the~ iupac~ command~ \token_to_str:N #2 ,~ but~ the~
+ latter~ doesn't~ exist.~ Use~ \token_to_str:N \NewChemIUPAC \c_space_tl
+ instead~ or~declare~ \token_to_str:N #2 \c_space_tl first.
}
\msg_new:nnn {chemmacros} {new-iupac-shorthand}
@@ -70,75 +70,87 @@
but~ this~ shorthand~ doesn't~ exist,~ yet.
}
+\msg_new:nnn {chemmacros} {show-iupac}
+ { \\ >~ \token_to_str:N #1=iupac~macro: \\ -> #2 }
+
+\msg_new:nnn {chemmacros} {no-iupac-command}
+ { \\ >~ \token_to_str:N #1=not~ defined~ as~ iupac~ macro }
+
+\cs_generate_variant:Nn \msg_show:nnnn {nnnV}
+
+% --------------------------------------------------------------------------
\prop_new:N \l__chemmacros_iupac_prop
-\cs_new_protected:Npn \chemmacros_new_iupac:Nn #1#2
+\cs_new_protected:Npn \__chemmacros_iupac_name:NN #1#2
+ { \str_set:Nx #2 { \chemmacros_remove_backslash:N #1 } }
+
+\cs_new_protected:Npn \__chemmacros_define_iupac:Nn #1#2
{
- \tl_set:Nx \l__chemmacros_tmpa_tl
- { \chemmacros_remove_backslash:N #1 }
- \prop_if_in:NVTF \l__chemmacros_iupac_prop \l__chemmacros_tmpa_tl
- { \msg_error:nnn {chemmacros} {new-iupac} {#1} }
- {
- \prop_put:NVn \l__chemmacros_iupac_prop
- \l__chemmacros_tmpa_tl
- {#2}
- }
+ \__chemmacros_iupac_name:NN #1 \l__chemmacros_tmpa_str
+ \prop_put:NVn \l__chemmacros_iupac_prop
+ \l__chemmacros_tmpa_str
+ {#2}
\chemmacros_make_iupac:
}
+\cs_generate_variant:Nn \__chemmacros_define_iupac:Nn {NV}
-\cs_new_protected:Npn \chemmacros_provide_iupac:Nn #1#2
+\cs_new_protected:Npn \__chemmacros_let_iupac:NN #1#2
{
+ \__chemmacros_iupac_name:NN #1 \l__chemmacros_tmpa_str
+ \__chemmacros_iupac_name:NN #2 \l__chemmacros_tmpb_str
\tl_set:Nx \l__chemmacros_tmpa_tl
- { \chemmacros_remove_backslash:N #1 }
- \prop_if_in:NVF \l__chemmacros_iupac_prop \l__chemmacros_tmpa_tl
- {
- \prop_put:NVn \l__chemmacros_iupac_prop
- \l__chemmacros_tmpa_tl
- {#2}
- }
- \chemmacros_make_iupac:
+ { \prop_item:NV \l__chemmacros_iupac_prop \l__chemmacros_tmpb_str }
+ \__chemmacros_define_iupac:NV #1 \l__chemmacros_tmpa_tl
}
-\cs_new_protected:Npn \chemmacros_define_iupac:Nn #1#2
+\cs_new_protected:Npn \chemmacros_show_iupac:N #1
{
- \tl_set:Nx \l__chemmacros_tmpa_tl
- { \chemmacros_remove_backslash:N #1 }
- \prop_put:NVn \l__chemmacros_iupac_prop
- \l__chemmacros_tmpa_tl
- {#2}
- \chemmacros_make_iupac:
+ \group_begin:
+ \__chemmacros_iupac_name:NN #1 \l__chemmacros_tmpa_str
+ \tl_set:Nx \l__chemmacros_tmpa_tl
+ { \prop_item:NV \l__chemmacros_iupac_prop \l__chemmacros_tmpa_str }
+ \tl_if_empty:NTF \l__chemmacros_tmpa_tl
+ { \msg_show:nnn {chemmacros} {no-iupac-command} {#1} }
+ { \msg_show:nnnV {chemmacros} {show-iupac} {#1} \l__chemmacros_tmpa_tl }
+ \group_end:
+ }
+
+\prg_new_protected_conditional:Npnn \chemmacros_if_iupac:N #1 {T,F,TF}
+ {
+ \__chemmacros_iupac_name:NN #1 \l__chemmacros_tmpa_str
+ \prop_if_in:NVTF \l__chemmacros_iupac_prop \l__chemmacros_tmpa_str
+ { \prg_return_true: }
+ { \prg_return_false: }
+ }
+
+\cs_new_protected:Npn \chemmacros_new_iupac:Nn #1#2
+ {
+ \chemmacros_if_iupac:NTF #1
+ { \msg_error:nnn {chemmacros} {new-iupac} {#1} }
+ { \__chemmacros_define_iupac:Nn #1 {#2} }
}
+\cs_new_protected:Npn \chemmacros_provide_iupac:Nn #1#2
+ {
+ \chemmacros_if_iupac:NF #1
+ { \__chemmacros_define_iupac:Nn #1 {#2} }
+ }
+
+\cs_new_protected:Npn \chemmacros_define_iupac:Nn #1#2
+ { \__chemmacros_define_iupac:Nn #1 {#2} }
+
\cs_new_protected:Npn \chemmacros_renew_iupac:Nn #1#2
{
- \tl_set:Nx \l__chemmacros_tmpa_tl
- { \chemmacros_remove_backslash:N #1 }
- \prop_if_in:NVTF \l__chemmacros_iupac_prop \l__chemmacros_tmpa_tl
- {
- \prop_put:NVn \l__chemmacros_iupac_prop
- \l__chemmacros_tmpa_tl
- {#2}
- }
+ \chemmacros_if_iupac:NTF #1
+ { \__chemmacros_define_iupac:Nn #1 {#2} }
{ \msg_error:nnn {chemmacros} {renew-iupac} {#1} }
- \chemmacros_make_iupac:
}
\cs_new_protected:Npn \chemmacros_let_iupac:NN #1#2
{
- \tl_set:Nx \l__chemmacros_tmpa_tl
- { \chemmacros_remove_backslash:N #1 }
- \tl_set:Nx \l__chemmacros_tmpb_tl
- { \chemmacros_remove_backslash:N #2 }
- \prop_get:NVNTF \l__chemmacros_iupac_prop
- \l__chemmacros_tmpb_tl
- \l__chemmacros_tmpc_tl
- {
- \prop_put:NVV \l__chemmacros_iupac_prop
- \l__chemmacros_tmpa_tl
- \l__chemmacros_tmpc_tl
- }
+ \chemmacros_if_iupac:NTF #2
+ { \__chemmacros_let_iupac:NN #1#2 }
{ \msg_error:nnnn {chemmacros} {let-iupac} {#1} {#2} }
- \chemmacros_make_iupac:
}
\ChemCompatibilityTo{5.2}
@@ -220,6 +232,7 @@
\NewDocumentCommand \LetChemIUPAC {mm}
{ \chemmacros_let_iupac:NN #1 #2 }
+% --------------------------------------------------------------------------
\chemmacros_define_keys:nn {nomenclature}
{
iupac .choice: ,
@@ -234,6 +247,7 @@
\bool_set_true:N \l__chemmacros_iupac_strict_bool ,
}
+% --------------------------------------------------------------------------
% stereo descriptors and other nomenclature commands
% Cahn-Ingold-Prelog
\dim_new:N \l__chemmacros_cip_kern_dim
@@ -643,6 +657,9 @@
}
}
+\NewDocumentCommand \ChemMakeIupacShorthands {}
+ { \chemmacros_make_shorthands: }
+
\NewDocumentCommand \DeclareChemIUPACShorthand {mm}
{ \chemmacros_define_iupac_shorthand:NN #1#2 }
@@ -674,20 +691,20 @@
\NewChemIUPACShorthand - \chemmacros_break_point_hyphen:
\ChemCompatibilityFrom{5.1}
-\NewChemIUPACShorthand ( \chemmacros_break_point_opening_paren:
-\NewChemIUPACShorthand ) \chemmacros_break_point_closing_paren:
-\NewChemIUPACShorthand [ \chemmacros_break_point_opening_bracket:
-\NewChemIUPACShorthand ] \chemmacros_break_point_closing_bracket:
+ \NewChemIUPACShorthand ( \chemmacros_break_point_opening_paren:
+ \NewChemIUPACShorthand ) \chemmacros_break_point_closing_paren:
+ \NewChemIUPACShorthand [ \chemmacros_break_point_opening_bracket:
+ \NewChemIUPACShorthand ] \chemmacros_break_point_closing_bracket:
\EndChemCompatibility
\ChemCompatibilityFrom{5.3}
-\NewChemIUPAC \chemprime { \ensuremath {{}^{\prime}} }
-\NewChemIUPACShorthand ' \chemprime
+ \NewChemIUPAC \chemprime { \ensuremath {{}^{\prime}} }
+ \NewChemIUPACShorthand ' \chemprime
\EndChemCompatibility
\ChemCompatibilityFrom{5.8c}
-\NewChemIUPAC \nonbreakinghyphen { \mbox{-} \nobreak \hspace{0pt} }
-\NewChemIUPACShorthand = \nonbreakinghyphen
+ \NewChemIUPAC \nonbreakinghyphen { \mbox{-} \nobreak \hspace{0pt} }
+ \NewChemIUPACShorthand = \nonbreakinghyphen
\EndChemCompatibility
\cs_new_protected:Npn \chemmacros_iupac:nn #1#2
@@ -697,13 +714,13 @@
\chemmacros_set_keys:nn {nomenclature} {#1}
\chemmacros_make_iupac:
\chemmacros_make_shorthands:
- % what's this vvv in here for?
- \chemmacros_ignore_spaces:
+ % \prop_show:N \l__chemmacros_iupac_shorthands_prop
\chemmacros_if_compatibility:nnT {<=} {5.2}
{ \chemmacros_define_deprecated:NN \- - }
\tl_set_rescan:Nnn \l__chemmacros_tmpa_tl
{ \chemmacros_activate_all_iupac_shorthands: }
{#2}
+ % \tl_analysis_show:N
\l__chemmacros_tmpa_tl
\group_end:
}
@@ -953,3 +970,5 @@
`cip-number-format'
2017/06/11 - change behaviour of \__chemmacros_break_point_insert:nnn so
it does nothing as last token in \iupac
+2020/01/02 - \chemmacros_show_iupac:N
+ - \chemmacros_if_iupac:NTF
diff --git a/macros/latex/contrib/chemmacros/chemmacros.module.phases.code.tex b/macros/latex/contrib/chemmacros/chemmacros.module.phases.code.tex
index 1ddcc094bb..d305470efa 100644
--- a/macros/latex/contrib/chemmacros/chemmacros.module.phases.code.tex
+++ b/macros/latex/contrib/chemmacros/chemmacros.module.phases.code.tex
@@ -80,7 +80,7 @@
\cs_new_protected:Npn \chemmacros_phase:n #1
{
- \chemmacros_leave_vmode:
+ \mode_leave_vertical:
\bool_if:NTF \l__chemmacros_phases_sub_bool
{ \chemformula_subscript:n { (#1) } }
{
diff --git a/macros/latex/contrib/chemmacros/chemmacros.module.reactions.code.tex b/macros/latex/contrib/chemmacros/chemmacros.module.reactions.code.tex
index c30c5fac89..0d2161cc2b 100644
--- a/macros/latex/contrib/chemmacros/chemmacros.module.reactions.code.tex
+++ b/macros/latex/contrib/chemmacros/chemmacros.module.reactions.code.tex
@@ -25,7 +25,7 @@
%
% The Current Maintainer of this work is Clemens Niederberger.
% --------------------------------------------------------------------------
-\ChemModule{reactions}{2019/09/27 reaction environments}
+\ChemModule{reactions}{2020/02/02 reaction environments}
\chemmacros_load_module:n {chemformula}
@@ -167,11 +167,9 @@
\AtEndPreamble
{
- \bool_if:nT
- {
- \chemmacros_if_package_loaded_p:n {tocbasic} ||
- \l__chemmacros_reactions_tocbasic_bool
- }
+ \bool_lazy_or:nnT
+ { \chemmacros_if_package_loaded_p:n {tocbasic} }
+ { \l__chemmacros_reactions_tocbasic_bool }
{
\RequirePackage {tocbasic}
\addtotoclist [float] {lor}
@@ -444,3 +442,4 @@
2016/05/04 - options `tag-open', `tag-close' and `before-tag'
2019/09/23 - added Norwegian translations
2019/09/27 - change `O{}' argument of reactions into `!O{}'
+2020/02/02 - lazy boolean evaluation
diff --git a/macros/latex/contrib/chemmacros/chemmacros.module.redox.code.tex b/macros/latex/contrib/chemmacros/chemmacros.module.redox.code.tex
index cbc0b2e242..2c0421b470 100644
--- a/macros/latex/contrib/chemmacros/chemmacros.module.redox.code.tex
+++ b/macros/latex/contrib/chemmacros/chemmacros.module.redox.code.tex
@@ -25,7 +25,7 @@
%
% The Current Maintainer of this work is Clemens Niederberger.
% --------------------------------------------------------------------------
-\ChemModule{redox}{2015/09/30 oxidation numbers, redox reactions}
+\ChemModule{redox}{2020/02/02 oxidation numbers, redox reactions}
\chemmacros_load_modules:n {tikz,xfrac}
@@ -85,18 +85,14 @@
\ChemCompatibilityTo{5.4}
\cs_new_protected:Npn \__chemmacros_ox_sign:n #1
{
- \bool_if:nT
- {
- \fp_compare_p:n { #1 > 0 } &&
- \l__chemmacros_ox_explicit_sign_bool
- }
+ \bool_lazy_and:nnT
+ { \fp_compare_p:n { #1 > 0 } }
+ { \l__chemmacros_ox_explicit_sign_bool }
{ \c_math_toggle_token + \c_math_toggle_token }
- \bool_if:nT
- {
- \fp_compare_p:n { #1 = 0 } &&
- \l__chemmacros_ox_explicit_sign_bool
- }
- { \c_math_toggle_token \pm \c_math_toggle_token }
+ \bool_lazy_and:nnT
+ { \fp_compare_p:n { #1 = 0 } }
+ { \l__chemmacros_ox_explicit_sign_bool }
+ { \c_math_toggle_token \pm \c_math_toggle_token }
\fp_compare:nT { #1 < 0 }
{ \c_math_toggle_token - \c_math_toggle_token }
}
@@ -104,19 +100,17 @@
\ChemCompatibilityFrom{5.4}
\cs_new_protected:Npn \__chemmacros_ox_sign:n #1
{
- \bool_if:nT
+ \bool_lazy_and:nnT
+ { \fp_compare_p:n { #1 > 0 } }
+ { \l__chemmacros_ox_explicit_sign_bool }
+ { \c_math_toggle_token + \c_math_toggle_token }
+ \bool_lazy_all:nT
{
- \fp_compare_p:n { #1 > 0 } &&
- \l__chemmacros_ox_explicit_sign_bool
+ { \fp_compare_p:n { #1 = 0 } }
+ { \l__chemmacros_ox_explicit_sign_bool }
+ { \l__chemmacros_ox_explicit_zero_sign_bool }
}
- { \c_math_toggle_token + \c_math_toggle_token }
- \bool_if:nT
- {
- \fp_compare_p:n { #1 = 0 } &&
- \l__chemmacros_ox_explicit_sign_bool &&
- \l__chemmacros_ox_explicit_zero_sign_bool
- }
- { \c_math_toggle_token \pm \c_math_toggle_token }
+ { \c_math_toggle_token \pm \c_math_toggle_token }
\fp_compare:nT { #1 < 0 }
{ \c_math_toggle_token - \c_math_toggle_token }
}
@@ -334,7 +328,7 @@
% TODO: add option to make `#2' be parsed as chem formula
\cs_new_protected:Npn \chemmacros_redox_partner:nn #1#2
{
- \chemmacros_tex_if:nnTF {measuring@} {}
+ \legacy_if:nTF {measuring@}
{
\group_begin:
\tikz[baseline=(#1.base)] { \node [inner~sep=0pt] (#1) {#2} ; }
@@ -437,4 +431,5 @@
% --------------------------------------------------------------------------
\file_input_stop:
2015/09/30 - new option `explicit-zero-sign'
-
+2020/02/02 - lazy boolean evaluation
+ - prefer \legacy_if:nTF over \chemmacros_if_tex:nnTF
diff --git a/macros/latex/contrib/chemmacros/chemmacros.module.scheme.code.tex b/macros/latex/contrib/chemmacros/chemmacros.module.scheme.code.tex
index 057acbf70c..97e1a11cb0 100644
--- a/macros/latex/contrib/chemmacros/chemmacros.module.scheme.code.tex
+++ b/macros/latex/contrib/chemmacros/chemmacros.module.scheme.code.tex
@@ -25,7 +25,7 @@
%
% The Current Maintainer of this work is Clemens Niederberger.
% --------------------------------------------------------------------------
-\ChemModule{scheme}{2019/09/23 a scheme floating environment}
+\ChemModule{scheme}{2020/02/02 a scheme floating environment}
\RequirePackage {chemnum}
@@ -80,7 +80,7 @@
\counterwithin {#1} {chapter}
\setcounter {#1} {0}
}
- \chemmacros_tex_if:nnT {artopt} {}
+ \legacy_if:nT {artopt}
{ \counterwithout {#1} {chapter} }
}
@@ -136,12 +136,15 @@
{
\prop_get:NnNT \l__chemmacros_float_methods_prop {#1}
\l__chemmacros_tmpa_tl
- \bool_if:nT
- { !\l__chemmacros_float_def_bool && \l__chemmacros_tmpa_tl }
{
- \bool_set_true:N \l__chemmacros_float_def_bool
- \tl_set:Nn \l__chemmacros_float_method_tl {#1}
- \msg_info:nnn {chemmacros} {float-method} {#1}
+ \bool_lazy_and:nnT
+ { !\l__chemmacros_float_def_bool }
+ { \l__chemmacros_tmpa_tl }
+ {
+ \bool_set_true:N \l__chemmacros_float_def_bool
+ \tl_set:Nn \l__chemmacros_float_method_tl {#1}
+ \msg_info:nnn {chemmacros} {float-method} {#1}
+ }
}
}
@@ -180,8 +183,9 @@
% #1: env name
\cs_new_protected:Npn \chemmacros_define_float:nn #1#2
{
- \bool_if:nT
- { !\cs_if_exist_p:c {#1} && !\cs_if_exist_p:c {end#1} }
+ \bool_lazy_and:nnT
+ { !\cs_if_exist_p:c {#1} }
+ { !\cs_if_exist_p:c {end#1} }
{
\bool_if:NTF \l__chemmacros_float_def_bool
{
@@ -209,15 +213,13 @@
\newenvironment {#1*}
{\@dblfloat{#1}}
{\end@dblfloat}
- \bool_if:nTF
- {
- \chemmacros_if_class_loaded_p:n {book} ||
- \chemmacros_if_class_loaded_p:n {report}
- }
+ \bool_lazy_or:nnTF
+ { \chemmacros_if_class_loaded_p:n {book} }
+ { \chemmacros_if_class_loaded_p:n {report} }
{
\cs_new_protected:cpn {listof#1s}
{
- \chemmacros_tex_if:nnTF {@twocolumn} {}
+ \legacy_if:nTF {@twocolumn}
{ \@restonecoltrue\onecolumn }
{ \@restonecolfalse }
\exp_args:NNx \chapter* {\exp_not:c {list#1name}}
@@ -225,8 +227,7 @@
{ \MakeUppercase \use:c {list#1name} }
{ \MakeUppercase \use:c {list#1name} }
\@starttoc {#2}
- \chemmacros_tex_if:nnT {@restonecol} {}
- { \twocolumn }
+ \legacy_if:nT {@restonecol} { \twocolumn }
}
}
{
@@ -319,5 +320,7 @@
2015/10/23 - add info message to float method detection
2016/01/23 - make the module compatible with chemscheme
2016/04/25 - cleveref and fancyref support
-2016/12/28 - bug fix: typo in \chemmacros_tex_if:nnTF usage
+2016/12/28 - bug fix: typo in \chemmacros_if_tex:nnTF usage
2019/03/23 - added Norwegian translations
+2020/02/03 - lazy boolean evaluation
+ - prefer \legacy_if:nTF over \chemmacros_if_tex:nnTF
diff --git a/macros/latex/contrib/chemmacros/chemmacros.module.spectroscopy.code.tex b/macros/latex/contrib/chemmacros/chemmacros.module.spectroscopy.code.tex
index a1be3187aa..c7e7037829 100644
--- a/macros/latex/contrib/chemmacros/chemmacros.module.spectroscopy.code.tex
+++ b/macros/latex/contrib/chemmacros/chemmacros.module.spectroscopy.code.tex
@@ -25,7 +25,7 @@
%
% The Current Maintainer of this work is Clemens Niederberger.
% --------------------------------------------------------------------------
-\ChemModule{spectroscopy}{2015/12/31 environment for spectroscopic data}
+\ChemModule{spectroscopy}{2020/02/02 environment for spectroscopic data}
\chemmacros_load_modules:n {chemformula}
\RequirePackage{siunitx}
@@ -268,26 +268,20 @@
{
\bool_if:NT \l__chemmacros_nmr_list_bool { \item \scan_stop: }
\group_begin:
- \chemmacros_leave_vmode:
+ \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_lazy_or:nnT
+ { \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_lazy_and:nnT
+ { \l__chemmacros_nmr_frequency_bool }
+ { \l__chemmacros_nmr_solvent_bool }
{ \bool_set_true:N \l__chemmacros_nmr_comma_bool }
\tl_if_empty:nTF {#2}
{
@@ -516,3 +510,4 @@
\file_input_stop:
2015/12/31 - new option `atom-number-space'
2017/01/27 - new option `nmr-base-format'
+2020/02/02 - lazy boolean evaluation
diff --git a/macros/latex/contrib/chemmacros/chemmacros.module.units.code.tex b/macros/latex/contrib/chemmacros/chemmacros.module.units.code.tex
index 7b90faad3a..e8c4595af8 100644
--- a/macros/latex/contrib/chemmacros/chemmacros.module.units.code.tex
+++ b/macros/latex/contrib/chemmacros/chemmacros.module.units.code.tex
@@ -25,7 +25,7 @@
%
% The Current Maintainer of this work is Clemens Niederberger.
% --------------------------------------------------------------------------
-\ChemModule{units}{2019/11/07 chemical units}
+\ChemModule{units}{2020/02/02 chemical units}
\RequirePackage{siunitx}
@@ -37,9 +37,18 @@
\DeclareSIUnit \moLar {\mole\per\liter}
\DeclareSIUnit \MolMass {\gram\per\mole}
\DeclareSIUnit \normal {\textsc{n}}
-\chemmacros_if_compatibility:nnTF {<} {5.8g}
- { \DeclareSIUnit \torr {torr} }
- { \DeclareSIUnit \Torr {Torr} }
+
+\ChemCompatibilityTo{5.8g}
+ \DeclareSIUnit \torr {torr}
+\EndChemCompatibility
+
+\ChemCompatibilityFrom{5.8h}
+ \DeclareSIUnit \Torr {Torr}
+\EndChemCompatibility
+
+\ChemCompatibilityFrom{5.10}
+ \DeclareSIUnit \torr {Torr}
+\EndChemCompatibility
\AtEndPreamble
{
diff --git a/macros/latex/contrib/chemmacros/chemmacros.sty b/macros/latex/contrib/chemmacros/chemmacros.sty
index e18a84fe95..ca76b8ab2c 100644
--- a/macros/latex/contrib/chemmacros/chemmacros.sty
+++ b/macros/latex/contrib/chemmacros/chemmacros.sty
@@ -31,10 +31,10 @@
% --------------------------------------------------------------------------
% package information:
-\tl_const:Nn \c_chemmacros_date_tl {2020/01/16}
+\tl_const:Nn \c_chemmacros_date_tl {2020/02/03}
\tl_const:Nn \c_chemmacros_version_major_number_tl {5}
-\tl_const:Nn \c_chemmacros_version_minor_number_tl {9}
-\tl_const:Nn \c_chemmacros_version_subrelease_tl {a}
+\tl_const:Nn \c_chemmacros_version_minor_number_tl {10}
+\tl_const:Nn \c_chemmacros_version_subrelease_tl {}
\tl_const:Nx \c_chemmacros_version_number_tl
{
\c_chemmacros_version_major_number_tl .
@@ -208,11 +208,9 @@
\cs_new_protected:Npn \ChemCompatibilityBetween #1#2#3 \EndChemCompatibility
{
- \bool_if:nT
- {
- \chemmacros_if_compatibility_p:nn {>=} {#1} &&
- \chemmacros_if_compatibility_p:nn {<} {#2}
- }
+ \bool_lazy_and:nnT
+ { \chemmacros_if_compatibility_p:nn {>=} {#1} }
+ { \chemmacros_if_compatibility_p:nn {<} {#2} }
{#3}
}
@@ -267,6 +265,8 @@
{ \RequirePackage{chemmacros4} }
{ \RequirePackage{chemmacros5} }
-% --------------------------------------------------------------------------
\file_input_stop:
-
+% --------------------------------------------------------------------------
+2020/02/03 - lazy boolean evaluation
+ - prefer the kernel commands to \chemmacros_leave_vmode: and
+ \chemmacros_tex_if:
diff --git a/macros/latex/contrib/chemmacros/chemmacros4.sty b/macros/latex/contrib/chemmacros/chemmacros4.sty
index a9f6b2dfd3..bb392f5afd 100644
--- a/macros/latex/contrib/chemmacros/chemmacros4.sty
+++ b/macros/latex/contrib/chemmacros/chemmacros4.sty
@@ -606,7 +606,7 @@
% --------------------------------------------------------------------------
% a few general functions:
-\cs_new_eq:NN \chemmacros_leave_vmode: \chemformula_leave_vmode:
+\cs_new_eq:NN \mode_leave_vertical: \chemformula_leave_vmode:
\cs_new_eq:NN \chemmacros_ignore_spaces: \tex_ignorespaces:D
\cs_new_eq:NN \chemmacros_nobreak: \chemformula_nobreak:
\cs_new_eq:NN \chemmacros_allow_break: \chemformula_allow_break:
@@ -2295,7 +2295,7 @@
{
\bool_if:NT \l__chemmacros_nmr_list_bool { \item \scan_stop: }
\group_begin:
- \chemmacros_leave_vmode:
+ \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 }
diff --git a/macros/latex/contrib/chemmacros/chemmacros5.sty b/macros/latex/contrib/chemmacros/chemmacros5.sty
index 1f5ecbc939..e82088aa27 100644
--- a/macros/latex/contrib/chemmacros/chemmacros5.sty
+++ b/macros/latex/contrib/chemmacros/chemmacros5.sty
@@ -85,19 +85,19 @@
% --------------------------------------------------------------------------
% variants of kernel functions:
-\cs_generate_variant:Nn \tl_if_eq:nnTF { xx , V }
-\cs_generate_variant:Nn \seq_set_split:Nnn { Nnx }
-\cs_generate_variant:Nn \prop_item:Nn { NV }
-\cs_generate_variant:Nn \seq_item:Nn { cV }
-\cs_generate_variant:Nn \int_to_arabic:n { V }
-\cs_generate_variant:Nn \tl_replace_once:Nnn { NnV }
-\cs_generate_variant:Nn \prop_gput:Nnn { cxx , NVf }
-\cs_generate_variant:Nn \msg_error:nnn { nnV }
-\cs_generate_variant:Nn \msg_warning:nnn { nnV }
-\cs_generate_variant:Nn \msg_warning:nnnn { nnV }
-\cs_generate_variant:Nn \vbox_set:Nn { NV }
-\cs_generate_variant:Nn \keys_define:nn { x }
-\cs_generate_variant:Nn \keys_set:nn { x , nx }
+\cs_generate_variant:Nn \tl_if_eq:nnTF {xx,V}
+\cs_generate_variant:Nn \seq_set_split:Nnn {Nnx}
+\cs_generate_variant:Nn \prop_item:Nn {NV}
+\cs_generate_variant:Nn \seq_item:Nn {cV}
+\cs_generate_variant:Nn \int_to_arabic:n {V}
+\cs_generate_variant:Nn \tl_replace_once:Nnn {NnV}
+\cs_generate_variant:Nn \prop_gput:Nnn {cxx,NVf}
+\cs_generate_variant:Nn \msg_error:nnn {nnV}
+\cs_generate_variant:Nn \msg_warning:nnn {nnV}
+\cs_generate_variant:Nn \msg_warning:nnnn {nnV}
+\cs_generate_variant:Nn \vbox_set:Nn {NV}
+\cs_generate_variant:Nn \keys_define:nn {x}
+\cs_generate_variant:Nn \keys_set:nn {x,nx}
% --------------------------------------------------------------------------
% temporary variables:
@@ -130,6 +130,10 @@
\clist_new:N \l__chemmacros_tmpb_clist
\clist_new:N \l__chemmacros_tmpc_clist
+\str_new:N \l__chemmacros_tmpa_str
+\str_new:N \l__chemmacros_tmpb_str
+\str_new:N \l__chemmacros_tmpc_str
+
% --------------------------------------------------------------------------
% module mechanism:
\tl_const:Nn \c__chemmacros_module_extension_tl {code.tex}
@@ -323,3 +327,4 @@ Version history
2015/10/14 - bug fix in the module hook mechanism
- bug fix in \chemmacros_if_module_loaded:n
- new `errorcheck' module
+2020/02/03 - add temporary string variables