diff options
19 files changed, 618 insertions, 342 deletions
diff --git a/Master/texmf-dist/doc/latex/chemmacros/README b/Master/texmf-dist/doc/latex/chemmacros/README index 7483ec9d3f4..6153319d531 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.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/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.pdf b/Master/texmf-dist/doc/latex/chemmacros/chemmacros-manual.pdf Binary files differindex 56198337573..02badca2566 100644 --- a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.pdf +++ b/Master/texmf-dist/doc/latex/chemmacros/chemmacros-manual.pdf diff --git a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.tex b/Master/texmf-dist/doc/latex/chemmacros/chemmacros-manual.tex index 9bf20e87898..991742a7105 100644 --- a/Master/texmf-dist/doc/latex/chemmacros/chemmacros_en.tex +++ b/Master/texmf-dist/doc/latex/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/Master/texmf-dist/doc/latex/chemmacros/chemmacros.history b/Master/texmf-dist/doc/latex/chemmacros/chemmacros.history index fc78d0e1202..694c1039cee 100644 --- a/Master/texmf-dist/doc/latex/chemmacros/chemmacros.history +++ b/Master/texmf-dist/doc/latex/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/Master/texmf-dist/tex/latex/chemmacros/chemmacros-manual.cls b/Master/texmf-dist/tex/latex/chemmacros/chemmacros-manual.cls new file mode 100644 index 00000000000..179e588d55b --- /dev/null +++ b/Master/texmf-dist/tex/latex/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/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.base.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.base.code.tex index 3f84c9097b1..ed85a205e5e 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}{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/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.chemformula.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.chemformula.code.tex index 292b90747a2..7bc4be0b0ac 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.chemformula.code.tex +++ b/Master/texmf-dist/tex/latex/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/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.greek.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.greek.code.tex index afe973899de..ef9f8568e2b 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.greek.code.tex +++ b/Master/texmf-dist/tex/latex/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/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.mechanisms.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.mechanisms.code.tex index 2f272bb7400..812dede658b 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.mechanisms.code.tex +++ b/Master/texmf-dist/tex/latex/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/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.nomenclature.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.nomenclature.code.tex index 1175b3151e9..3e5b6b616d2 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 @@ -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/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.phases.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.phases.code.tex index 1ddcc094bb6..d305470efa9 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 @@ -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/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.reactions.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.reactions.code.tex index c30c5fac89e..0d2161cc2bb 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}{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/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.redox.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.redox.code.tex index cbc0b2e2428..2c0421b470f 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 @@ -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/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.scheme.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.scheme.code.tex index 057acbf70cd..97e1a11cb01 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.scheme.code.tex +++ b/Master/texmf-dist/tex/latex/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/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.spectroscopy.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.spectroscopy.code.tex index a1be3187aa9..c7e7037829c 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 @@ -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/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.units.code.tex b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.units.code.tex index 7b90faad3ad..e8c4595af87 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros.module.units.code.tex +++ b/Master/texmf-dist/tex/latex/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/Master/texmf-dist/tex/latex/chemmacros/chemmacros.sty b/Master/texmf-dist/tex/latex/chemmacros/chemmacros.sty index e18a84fe953..ca76b8ab2cb 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 {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/Master/texmf-dist/tex/latex/chemmacros/chemmacros4.sty b/Master/texmf-dist/tex/latex/chemmacros/chemmacros4.sty index a9f6b2dfd3f..bb392f5afd6 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros4.sty +++ b/Master/texmf-dist/tex/latex/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/Master/texmf-dist/tex/latex/chemmacros/chemmacros5.sty b/Master/texmf-dist/tex/latex/chemmacros/chemmacros5.sty index 1f5ecbc9396..e82088aa277 100644 --- a/Master/texmf-dist/tex/latex/chemmacros/chemmacros5.sty +++ b/Master/texmf-dist/tex/latex/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 |