From 61b8d58232b999b6cc966aee9152fb86bbb759cd Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Fri, 1 Nov 2019 03:00:46 +0000 Subject: CTAN sync 201911010300 --- .../biblatex-contrib/biblatex-ext/CHANGES.md | 14 + .../biblatex-ext/biblatex-ext-oa-doiapi.sty | 2 +- .../biblatex-ext/biblatex-ext-oa.sty | 2 +- .../biblatex-ext/biblatex-ext-oasymb-l3draw.sty | 2 +- .../biblatex-ext/biblatex-ext-oasymb-pict2e.sty | 2 +- .../biblatex-ext/biblatex-ext-oasymb-tikz.sty | 2 +- .../biblatex-ext/biblatex-ext-tabular.sty | 2 +- .../biblatex-contrib/biblatex-ext/biblatex-ext.pdf | Bin 718456 -> 710746 bytes .../biblatex-contrib/biblatex-ext/biblatex-ext.tex | 67 +- .../biblatex-contrib/biblatex-ext/blxextdoiapi.lua | 4 +- .../biblatex-ext/ext-alphabetic-verb.bbx | 2 +- .../biblatex-ext/ext-alphabetic-verb.cbx | 2 +- .../biblatex-ext/ext-alphabetic.bbx | 2 +- .../biblatex-ext/ext-alphabetic.cbx | 2 +- .../biblatex-ext/ext-authortitle-common.bbx | 2 +- .../biblatex-ext/ext-authortitle-comp.bbx | 2 +- .../biblatex-ext/ext-authortitle-comp.cbx | 2 +- .../biblatex-ext/ext-authortitle-ibid.bbx | 2 +- .../biblatex-ext/ext-authortitle-ibid.cbx | 6 +- .../biblatex-ext/ext-authortitle-icomp.bbx | 2 +- .../biblatex-ext/ext-authortitle-icomp.cbx | 2 +- .../biblatex-ext/ext-authortitle-tcomp.bbx | 2 +- .../biblatex-ext/ext-authortitle-tcomp.cbx | 2 +- .../biblatex-ext/ext-authortitle-terse.bbx | 2 +- .../biblatex-ext/ext-authortitle-terse.cbx | 2 +- .../biblatex-ext/ext-authortitle-ticomp.bbx | 2 +- .../biblatex-ext/ext-authortitle-ticomp.cbx | 2 +- .../biblatex-ext/ext-authortitle.bbx | 2 +- .../biblatex-ext/ext-authortitle.cbx | 2 +- .../biblatex-ext/ext-authoryear-common.bbx | 2 +- .../biblatex-ext/ext-authoryear-comp.bbx | 2 +- .../biblatex-ext/ext-authoryear-comp.cbx | 2 +- .../biblatex-ext/ext-authoryear-ecomp.bbx | 2 +- .../biblatex-ext/ext-authoryear-ecomp.cbx | 2 +- .../biblatex-ext/ext-authoryear-ibid.bbx | 2 +- .../biblatex-ext/ext-authoryear-ibid.cbx | 2 +- .../biblatex-ext/ext-authoryear-icomp.bbx | 2 +- .../biblatex-ext/ext-authoryear-icomp.cbx | 2 +- .../biblatex-ext/ext-authoryear-iecomp.bbx | 2 +- .../biblatex-ext/ext-authoryear-iecomp.cbx | 2 +- .../biblatex-ext/ext-authoryear-tcomp.bbx | 2 +- .../biblatex-ext/ext-authoryear-tcomp.cbx | 2 +- .../biblatex-ext/ext-authoryear-tecomp.bbx | 2 +- .../biblatex-ext/ext-authoryear-tecomp.cbx | 2 +- .../biblatex-ext/ext-authoryear-terse.bbx | 2 +- .../biblatex-ext/ext-authoryear-terse.cbx | 2 +- .../biblatex-ext/ext-authoryear-ticomp.bbx | 2 +- .../biblatex-ext/ext-authoryear-ticomp.cbx | 2 +- .../biblatex-ext/ext-authoryear-tiecomp.bbx | 2 +- .../biblatex-ext/ext-authoryear-tiecomp.cbx | 4 +- .../biblatex-ext/ext-authoryear.bbx | 2 +- .../biblatex-ext/ext-authoryear.cbx | 2 +- .../biblatex-ext/ext-biblatex-aux.def | 6 +- .../biblatex-ext/ext-dashed-common.bbx | 2 +- .../biblatex-ext/ext-numeric-comp.bbx | 2 +- .../biblatex-ext/ext-numeric-comp.cbx | 2 +- .../biblatex-ext/ext-numeric-verb.bbx | 2 +- .../biblatex-ext/ext-numeric-verb.cbx | 2 +- .../biblatex-contrib/biblatex-ext/ext-numeric.bbx | 2 +- .../biblatex-contrib/biblatex-ext/ext-numeric.cbx | 2 +- .../biblatex-contrib/biblatex-ext/ext-standard.bbx | 6 +- .../biblatex-ext/ext-verbose-ibid.bbx | 2 +- .../biblatex-ext/ext-verbose-ibid.cbx | 2 +- .../biblatex-ext/ext-verbose-inote.bbx | 2 +- .../biblatex-ext/ext-verbose-inote.cbx | 2 +- .../biblatex-ext/ext-verbose-note.bbx | 2 +- .../biblatex-ext/ext-verbose-note.cbx | 2 +- .../biblatex-ext/ext-verbose-trad1.bbx | 2 +- .../biblatex-ext/ext-verbose-trad1.cbx | 2 +- .../biblatex-ext/ext-verbose-trad2.bbx | 2 +- .../biblatex-ext/ext-verbose-trad2.cbx | 2 +- .../biblatex-ext/ext-verbose-trad3.bbx | 2 +- .../biblatex-ext/ext-verbose-trad3.cbx | 2 +- .../biblatex-contrib/biblatex-ext/ext-verbose.bbx | 2 +- .../biblatex-contrib/biblatex-ext/ext-verbose.cbx | 2 +- .../biblatex-iso690/biblatex-iso690.pdf | Bin 166874 -> 167673 bytes .../biblatex-iso690/biblatex-iso690.tex | 42 +- .../biblatex-iso690/iso-authoryear.bbx | 44 +- .../biblatex-contrib/biblatex-iso690/iso.bbx | 694 +++--- .../biblatex-iso690/polish-iso.lbx | 18 + macros/latex/contrib/modiagram/README | 4 +- macros/latex/contrib/modiagram/modiagram.sty | 2387 ++++++++++---------- macros/latex/contrib/modiagram/modiagram_en.pdf | Bin 618728 -> 528067 bytes macros/latex/contrib/modiagram/modiagram_en.tex | 325 +-- macros/latex/contrib/preview/README | 6 +- macros/latex/contrib/preview/preview.dtx | 6 +- macros/latex/contrib/preview/preview.ins | 2 +- macros/latex/contrib/preview/preview.pdf | Bin 170731 -> 170712 bytes 88 files changed, 1944 insertions(+), 1825 deletions(-) create mode 100644 macros/latex/contrib/biblatex-contrib/biblatex-iso690/polish-iso.lbx (limited to 'macros/latex') diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/CHANGES.md b/macros/latex/contrib/biblatex-contrib/biblatex-ext/CHANGES.md index bc259954df..f5a42585e2 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/CHANGES.md +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/CHANGES.md @@ -1,5 +1,19 @@ # Changelog +## Version 0.8a (2019-10-31) + +See + +### Fixed + +- The default value of `\servoldelim` was documented as + and should be `\jourvoldelim`. + Previous versions had `\addspace` (the default value of + `\jourvoldelim`) instead. +- Reenabled visible space in documentation. +- Typo in `ext-authoryear-tiecomp.cbx`. + + ## Version 0.8 (2019-08-25) See diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa-doiapi.sty b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa-doiapi.sty index dba1e204e8..a80d535253 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa-doiapi.sty +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa-doiapi.sty @@ -1,5 +1,5 @@ \ProvidesPackage{biblatex-ext-oa-doiapi} - [2019/08/25 v0.8 Obtain open access information from DOI via + [2019/10/31 v0.8a Obtain open access information from DOI via unpaywall.org and doi.org (MW)] \RequirePackage{etoolbox} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa.sty b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa.sty index b50f981b74..346810e4cc 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa.sty +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oa.sty @@ -1,5 +1,5 @@ \ProvidesPackage{biblatex-ext-oa} - [2019/08/25 v0.8 mark open access in biblatex bibliographies (MW)] + [2019/10/31 v0.8a mark open access in biblatex bibliographies (MW)] \protected\def\extblx@oa@error#1#2{% \PackageError{biblatex-ext-oa}{#1}{#2.}} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-l3draw.sty b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-l3draw.sty index 1ff0120b6f..5ee5666a93 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-l3draw.sty +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-l3draw.sty @@ -1,7 +1,7 @@ \RequirePackage{expl3} \ProvidesExplPackage {biblatex-ext-oasymb-l3draw} - {2019/08/25} {0.8} + {2019/10/31} {0.8a} {open access symbols with l3draw (MW)} \RequirePackage{xparse} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-pict2e.sty b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-pict2e.sty index ce8fe2411a..bf027bddc2 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-pict2e.sty +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-pict2e.sty @@ -1,5 +1,5 @@ \ProvidesPackage{biblatex-ext-oasymb-pict2e} - [2019/08/25 v0.8 open access symbols with pict2e (MW)] + [2019/10/31 v0.8a open access symbols with pict2e (MW)] \RequirePackage{etoolbox} \RequirePackage{kvoptions} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-tikz.sty b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-tikz.sty index ec5c3c3cea..467b9e9ab1 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-tikz.sty +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-oasymb-tikz.sty @@ -1,5 +1,5 @@ \ProvidesPackage{biblatex-ext-oasymb-tikz} - [2019/08/25 v0.8 open access symbols with TikZ (MW)] + [2019/10/31 v0.8a open access symbols with TikZ (MW)] \RequirePackage{etoolbox} \RequirePackage{kvoptions} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-tabular.sty b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-tabular.sty index adbe6d3859..a3e8ac141b 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-tabular.sty +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext-tabular.sty @@ -1,5 +1,5 @@ \ProvidesPackage{biblatex-ext-tabular} - [2019/08/25 v0.8 tabular bibliographies for biblatex (MW)] + [2019/10/31 v0.8a tabular bibliographies for biblatex (MW)] % Code based on Audrey's % (https://tex.stackexchange.com/users/4483/audrey) diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.pdf index 11f1bc404c..4a662b837d 100644 Binary files a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.pdf and b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.pdf differ diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.tex b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.tex index 3d9f5da103..cb882a105b 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.tex +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/biblatex-ext.tex @@ -463,7 +463,7 @@ \newcommand*{\ctan}{\mkbibacro{CTAN}} \newcommand*{\gitbaseurl}{https://github.com/moewew/biblatex-ext} -\newcommand*{\extblxversion}{0.8} +\newcommand*{\extblxversion}{0.8a} \newcommand*{\biber}{Biber} \newcommand*{\gitissuelink}[1]{% \href{\gitbaseurl/issues/#1}{issue \##1 on github}} @@ -484,14 +484,12 @@ \newcommand*{\hmpdr}{$\bm{\rangle}$} \fi -\iffontspec \def\textvisiblespace{% \raisebox{-2.2pt}{% \mbox{\kern.04em\vrule \@height.5ex \@width.12ex}% \vbox{\hrule \@width.2em \@height.12ex}% \hbox{\vrule \@height.5ex \@width.12ex}% \kern.04em}} -\fi % Bourbaki dangerous bend symbol by Heiko Oberdiek % https://tex.stackexchange.com/users/16967/heiko-oberdiek @@ -531,7 +529,7 @@ author = {Moritz Wemheuer}, link = {mwemheu@gmail.com},% revision = {\extblxversion}, - date = {\DTMDate{2019-08-25}}, + date = {\DTMDate{2019-10-31}}, } \hypersetup{% @@ -744,8 +742,8 @@ available on \ctan\fnurl{https://ctan.org/pkg/latex-sciences-humaines}. If you read German you may be interested in Dominik Waßenhoven's two-part series \foreignlanguage{ngerman}{\emph{Bibliographien erstellen mit \sty{biblatex}}} in \foreignlanguage{ngerman}{\emph{Die \TeX nische Komödie}} -2/2008\fnurl{https://www.dante.de/DTK/Ausgaben/2008-2.pdf} (pp.~53--75) -and 4/2008\fnurl{https://www.dante.de/DTK/Ausgaben/dtk08-4.pdf} (pp.~31--51). +2/2008\fnurl{https://archiv.dante.de/DTK/PDF/komoedie_2008_2.pdf} (pp.~53--75) +and 4/2008\fnurl{https://archiv.dante.de/DTK/PDF/komoedie_2008_4.pdf} (pp.~31--51). Please keep in mind that some of these texts were written a while ago and that \sty{biblatex} is actively developed: technical details may have changed and new features make some things easier. @@ -983,7 +981,7 @@ This style is like \blxstyle{ext-authortitle-ticomp}, but it is based on Sigfridsson and Ryde \quad ibid. \quad Knuth 1984, 1986 \end{bibexample} -\styleitem{ext-authoryear-teicomp} +\styleitem{ext-authoryear-tiecomp} A compact author-year citation style that combines \blxstyle{ext-authoryear-ticomp} and \blxstyle{ext-authoryear-iecomp}. \begin{bibexample} @@ -1008,6 +1006,9 @@ for the standard files without significant changes in output. Whether or not to display \enquote{in:} before the journal information in \bibtype{article} entries. All other entry types are not affected by this option. +If it is desired to remove the \enquote{in:} for more entry types or +a more specific behaviour is required, then it is still going to be +necessary to modify the bibmacro~\bibmacro{in:}. \begingroup \makeatletter @@ -1040,15 +1041,20 @@ All other entry types are not affected by this option. This option controls if \bibtype{inbook}, \bibtype{incollection} and \bibtype{inproceedings} entries that are tied to a parent entry with \bibfield{xref} or \bibfield{crossref} should cite their parent in the -bibliography if the parent is listed in the bibliography as a separate entry. -With the default setting \kvopt{citexref}{false} the parent is not cited, the -entry is shown as in the standard styles. If the option is set to -\optval{true}, the block following the \enquote{in:} is replaced by a citation -to the parent entry. -The option itself does \emph{not} cause the parent entry to be added to the -bibliography, this needs to happen either explicitly by citing the parent -(this includes \cmd{nocite}) or implicitly via the \opt{minxrefs} or -\opt{mincrossrefs} option. +bibliography \emph{if} the parent is listed in the bibliography as a +separate entry. +With the default setting \kvopt{citexref}{false} the parent is not +cited, the entry is shown as in the standard styles. +If the option is set to \optval{true}, the block following the +\enquote{in:} is replaced by a citation to the parent entry. + +\begin{remindbox} +The option itself does \emph{not} cause the parent entry to be added +to the bibliography automatically. +This needs to happen either explicitly by citing the parent +(possibly with \cmd{nocite}) +or implicitly via the \opt{minxrefs} or \opt{mincrossrefs} option. +\end{remindbox} \nocite{westfahl:frontier} \begin{bibexample}[title={\kvopt{citexref}{true}}] @@ -1133,7 +1139,8 @@ for the entry types \bibtype{inbook}, \bibtype{incollection} and This option only has an effect if \hyperopt{innamebeforetitle} is set to \optval{true}. -\begin{bibexample}[title={\kvopt{innameidem}{true}}] +\begin{bibexample}[title={\kvopt{innameidem}{true}} + {\small (and \kvopt{innamebeforetitle}{true})}] \togglefalse{bbx:isbn} \makeatletter \renewbibmacro*{bbx:in:editor}[1]{% @@ -1155,7 +1162,8 @@ This option only has an effect if \hyperopt{innamebeforetitle} is set to \exampleprintbib{gaonkar:in} \end{bibexample} -\begin{bibexample}[title={\kvopt{innameidem}{false}}] +\begin{bibexample}[title={\kvopt{innameidem}{false}} + {\small (and \kvopt{innamebeforetitle}{true})}] \togglefalse{bbx:isbn} \makeatletter \renewbibmacro*{bbx:in:editor}[1]{% @@ -1883,15 +1891,17 @@ The default is a colon followed by a space. \csitem{publocdelim} -The delimiter between \bibfield{publisher}\slash\bibfield{organization}\slash +The delimiter between \bibfield{publisher}\slash +\bibfield{organization}\slash \bibfield{institution} and \bibfield{location}. The default is a comma followed by a space. -This delimiter is not used by the default style, since the standard order of -fields is \bibfield{location}, \bibfield{publisher}\slash +This delimiter is not used by the default style, since the standard +order of fields is \bibfield{location}, \bibfield{publisher}\slash \bibfield{organization}\slash\bibfield{institution}, \bibfield{date}. -You could use \cmd{publocdelim} if you changed the order of these fields to -\bibfield{publisher}\slash\bibfield{organization}\slash\bibfield{institution}, -\bibfield{location} \bibfield{date} with +You could use \cmd{publocdelim} if you changed the order of these +fields to \bibfield{publisher}\slash\bibfield{organization}\slash +\bibfield{institution}, \bibfield{location} \bibfield{date} by +redefining the bibmacro~\bibmacro{pubinstorg+location+date} as follows. \begin{biblatexcode} \renewbibmacro*{pubinstorg+location+date}[1]{% \printlist{#1}% @@ -2246,7 +2256,7 @@ A general-purpose bibliography macro to catch This bibliography macro has one mandatory argument: the name of a list field, sensible values are \bibfield{publisher}, \bibfield{institution} and \bibfield{organization}. - +By default the macro is defined and used as follows. \begin{biblatexcode} \newbibmacro*{pubinstorg+location+date}[1]{% \printlist{location}% @@ -2999,7 +3009,7 @@ uses \LaTeX3's \sty{l3draw} package. The main purpose of these packages is to define the macro \cmd{oasymbol} for use with \sty{biblatex-ext-oa}. -All packages define a similar set of macros, so they are not indended to +All packages define a similar set of macros, so they are not indended to be loaded together. If used as stand-alone packages, all packages only have one option. @@ -3167,6 +3177,11 @@ See also \filename{CHANGES.md}. The numbers on the right indicate the relevant section of the manual. \begin{changelog} +\begin{release}{0.8a}{2019-10-31} + \item Fixed default value of \hypercmd{servoldelim}\see{sec:opt:punct} + \item Fixed bug in \blxstyle{ext-authoryear-tiecomp}% + \see{sec:styles:new} +\end{release} \begin{release}{0.8}{2019-08-25} \item Added \hypercmd{AtIntrocite} \see{sec:opt:style} \item Require \sty{biblatex} v3.13 (2010/08/17)\see{sec:req} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/blxextdoiapi.lua b/macros/latex/contrib/biblatex-contrib/biblatex-ext/blxextdoiapi.lua index 74d3badfaf..4162323db3 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/blxextdoiapi.lua +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/blxextdoiapi.lua @@ -2,8 +2,8 @@ blxextdoiapi = blxextdoiapi or {} local blxextdoiapi_module = { name = "blxextdoiapi", - version = "v0.8", - date = "2019/08/25", + version = "v0.8a", + date = "2019/10/31", description = "Obtain open access information from DOI via unpaywall.org", author = "Moritz Wemheuer", license = "LPPL v1.3c", diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.bbx index 04b3ee0d37..25512f8e9e 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-alphabetic-verb.bbx} - [2019/08/25 v0.8 extended biblatex alphabetic-verb + [2019/10/31 v0.8a extended biblatex alphabetic-verb bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.cbx index ab41c4ab9c..3697b20f03 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic-verb.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-alphabetic-verb.cbx} - [2019/08/25 v0.8 extended biblatex alphabetic-verb citation style + [2019/10/31 v0.8a extended biblatex alphabetic-verb citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.bbx index 6cf2f9cc24..7a84d4046a 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-alphabetic.bbx} - [2019/08/25 v0.8 extended biblatex alphabetic bibliography style (MW)] + [2019/10/31 v0.8a extended biblatex alphabetic bibliography style (MW)] \RequireBibliographyStyle{ext-standard} \RequireBibliographyStyle{alphabetic} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.cbx index c1a112d4c2..28a2355424 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-alphabetic.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-alphabetic.cbx} - [2019/08/25 v0.8 extended biblatex alphabetic citation style (MW)] + [2019/10/31 v0.8a extended biblatex alphabetic citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} {}{}{}{} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-common.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-common.bbx index 81469dad16..56c9699104 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-common.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-common.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authortitle-common.bbx} - [2019/08/25 v0.8 common files for extended biblatex + [2019/10/31 v0.8a common files for extended biblatex authortitle bibliography styles (MW)] \RequireBibliographyStyle{ext-dashed-common} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.bbx index 4db77269e8..089545e46f 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authortitle-comp.bbx} - [2019/08/25 v0.8 extended biblatex authortitle-comp + [2019/10/31 v0.8a extended biblatex authortitle-comp bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.cbx index 85d3719eb2..fc8c3eaff3 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-comp.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authortitle-comp.cbx} - [2019/08/25 v0.8 extended biblatex authortitle-comp + [2019/10/31 v0.8a extended biblatex authortitle-comp citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.bbx index b7d76a87e7..b35479b188 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authortitle-ibid.bbx} - [2019/08/25 v0.8 extended biblatex authortitle-ibid + [2019/10/31 v0.8a extended biblatex authortitle-ibid bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.cbx index ce9f7eb7a4..88f6fa3dbf 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ibid.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authortitle-ibid.cbx} - [2019/08/25 v0.8 extended biblatex authortitle-ibid + [2019/10/31 v0.8a extended biblatex authortitle-ibid citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} @@ -22,7 +22,7 @@ \DeclareFieldFormat{extblx@innerfootcitedelims}{% \csuse{mkinner\blx@delimcontext delims}{#1}} -\newbibmacro*{textcite}{% +\renewbibmacro*{textcite}{% \global\boolfalse{cbx:loccit}% \printnames{labelname}% \setunit*{% @@ -43,7 +43,7 @@ \printtext[bibhyperref]{% \printfield[citetitle]{labeltitle}}}} -\newbibmacro*{textcite:postnote}{% +\renewbibmacro*{textcite:postnote}{% \ifthenelse{\iffieldundef{postnote}\OR\boolean{cbx:loccit}} {\ifbool{cbx:parens} {\csuse{extblx@citedelim@\blx@delimcontext @inner@close}} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.bbx index 5c5b86db91..5cf503d9f3 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authortitle-icomp.bbx} - [2019/08/25 v0.8 extended biblatex authortitle-icomp + [2019/10/31 v0.8a extended biblatex authortitle-icomp bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.cbx index 520a2f64af..aafde9ca5e 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-icomp.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authortitle-icomp.cbx} - [2019/08/25 v0.8 extended biblatex authortitle-icomp + [2019/10/31 v0.8a extended biblatex authortitle-icomp citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.bbx index 490cb69f97..1c1eeb7796 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authortitle-tcomp.bbx} - [2019/08/25 v0.8 extended biblatex authortitle-tcomp + [2019/10/31 v0.8a extended biblatex authortitle-tcomp bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.cbx index c15b1d2f3b..1f0466fb11 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-tcomp.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authortitle-tcomp.cbx} - [2019/08/25 v0.8 extended biblatex authortitle-tcomp + [2019/10/31 v0.8a extended biblatex authortitle-tcomp citation style (MW)] \RequireCitationStyle{ext-authortitle-comp} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.bbx index f70b1514e9..f763ae2409 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authortitle-terse.bbx} - [2019/08/25 v0.8 extended biblatex authortitle-terse + [2019/10/31 v0.8a extended biblatex authortitle-terse bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.cbx index 271da41adc..10520a454d 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-terse.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authortitle-terse.cbx} - [2019/08/25 v0.8 extended biblatex authortitle-terse + [2019/10/31 v0.8a extended biblatex authortitle-terse citation style (MW)] \RequireCitationStyle{ext-authortitle} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.bbx index db70b368fe..df92f34694 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authortitle-ticomp.bbx} - [2019/08/25 v0.8 extended biblatex authortitle-ticomp + [2019/10/31 v0.8a extended biblatex authortitle-ticomp bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.cbx index 4083e1017a..9f693a0849 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle-ticomp.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authortitle-ticomp.cbx} - [2019/08/25 v0.8 extended biblatex authortitle-ticomp citation style + [2019/10/31 v0.8a extended biblatex authortitle-ticomp citation style (MW)] \RequireCitationStyle{ext-authortitle-icomp} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.bbx index 6bf346328f..e7c2b83076 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authortitle.bbx} - [2019/08/25 v0.8 extended biblatex authortitle + [2019/10/31 v0.8a extended biblatex authortitle bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.cbx index b21db8a3eb..05aebdc575 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authortitle.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authortitle.cbx} - [2019/08/25 v0.8 extended biblatex authortitle citation style (MW)] + [2019/10/31 v0.8a extended biblatex authortitle citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} {}{}{}{} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-common.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-common.bbx index 5a695f45cd..4ce7e4f7b8 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-common.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-common.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-common.bbx} - [2019/08/25 v0.8 common files for extended biblatex + [2019/10/31 v0.8a common files for extended biblatex authoryear bibliography styles (MW)] \RequireBibliographyStyle{ext-dashed-common} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.bbx index f78811b001..bfdf8ce2d7 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-comp.bbx} - [2019/08/25 v0.8 extended biblatex authoryear-comp + [2019/10/31 v0.8a extended biblatex authoryear-comp bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.cbx index a7d58c4b89..36350c71e5 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-comp.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-comp.cbx} - [2019/08/25 v0.8 extended biblatex authoryear-comp + [2019/10/31 v0.8a extended biblatex authoryear-comp citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.bbx index f523905a56..2c2d1ec3d6 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-ecomp.bbx} - [2019/08/25 v0.8 biblatex authoryear-ecomp + [2019/10/31 v0.8a biblatex authoryear-ecomp bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.cbx index e5b854525b..2aec3a302e 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ecomp.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-ecomp.cbx} - [2019/08/25 v0.8 biblatex authoryear-ecomp + [2019/10/31 v0.8a biblatex authoryear-ecomp citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.bbx index 06f793fb34..40b695debb 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-ibid.bbx} - [2019/08/25 v0.8 extended biblatex authoryear-ibid + [2019/10/31 v0.8a extended biblatex authoryear-ibid bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.cbx index f1af66fa0c..a66d3f9e48 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ibid.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-ibid.cbx} - [2019/08/25 v0.8 extended biblatex authoryear-ibid + [2019/10/31 v0.8a extended biblatex authoryear-ibid citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.bbx index 48c17b68de..34f5a8ec07 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-icomp.bbx} - [2019/08/25 v0.8 extended biblatex authoryear-icomp + [2019/10/31 v0.8a extended biblatex authoryear-icomp bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.cbx index 6772404b07..d0f2fb339c 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-icomp.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-icomp.cbx} - [2019/08/25 v0.8 extended biblatex authoryear-icomp + [2019/10/31 v0.8a extended biblatex authoryear-icomp citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.bbx index aa39267537..a1f152b0f5 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-iecomp.bbx} - [2019/08/25 v0.8 biblatex authoryear-iecomp + [2019/10/31 v0.8a biblatex authoryear-iecomp bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.cbx index c789e84887..352302aa72 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-iecomp.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-iecomp.cbx} - [2019/08/25 v0.8 biblatex authoryear-iecomp + [2019/10/31 v0.8a biblatex authoryear-iecomp citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.bbx index f137e11c29..d5fd08577b 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-tcomp.bbx} - [2019/08/25 v0.8 extended biblatex authoryear-tcomp + [2019/10/31 v0.8a extended biblatex authoryear-tcomp bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.cbx index 95b91eb332..f0cb6b455e 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tcomp.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-tcomp.cbx} - [2019/08/25 v0.8 extended biblatex authoryear-tcomp + [2019/10/31 v0.8a extended biblatex authoryear-tcomp citation style (MW)] \RequireCitationStyle{ext-authoryear-comp} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.bbx index 3bd056f4f7..5a32feef67 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-tecomp.bbx} - [2019/08/25 v0.8 extended biblatex authoryear-tecomp + [2019/10/31 v0.8a extended biblatex authoryear-tecomp bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.cbx index 7432847991..670161944b 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tecomp.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-tecomp.cbx} - [2019/08/25 v0.8 extended biblatex authoryear-tecomp + [2019/10/31 v0.8a extended biblatex authoryear-tecomp citation style (MW)] \RequireCitationStyle{ext-authoryear-ecomp} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.bbx index e191693619..63a772cce3 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-terse.bbx} - [2019/08/25 v0.8 extended biblatex authoryear-terse + [2019/10/31 v0.8a extended biblatex authoryear-terse bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.cbx index e9bbd308da..a4ca634f10 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-terse.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-terse.cbx} - [2019/08/25 v0.8 extended biblatex authoryear-terse + [2019/10/31 v0.8a extended biblatex authoryear-terse citation style (MW)] \RequireCitationStyle{ext-authoryear} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.bbx index 0f2595cd2f..b92aa1d67d 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-ticomp.bbx} - [2019/08/25 v0.8 extended biblatex authoryear-ticomp + [2019/10/31 v0.8a extended biblatex authoryear-ticomp bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.cbx index 22c7fef241..e8fa9f03fe 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-ticomp.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-ticomp.cbx} - [2019/08/25 v0.8 extended biblatex authoryear-ticomp citation style + [2019/10/31 v0.8a extended biblatex authoryear-ticomp citation style (MW)] \RequireCitationStyle{ext-authoryear-icomp} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.bbx index 2ae7bb415c..9f500c9272 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear-tiecomp.bbx} - [2019/08/25 v0.8 extended biblatex authoryear-tiecomp + [2019/10/31 v0.8a extended biblatex authoryear-tiecomp bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.cbx index f7645662c9..6fe1cfc3d6 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear-tiecomp.cbx @@ -1,8 +1,8 @@ \ProvidesFile{ext-authoryear-tiecomp.cbx} - [2019/08/25 v0.8 extended biblatex authoryear-tiecomp citation style + [2019/10/31 v0.8a extended biblatex authoryear-tiecomp citation style (MW)] -\RequireCitationStyle{ext-authoryear-icomp} +\RequireCitationStyle{ext-authoryear-iecomp} \ExecuteBibliographyOptions{singletitle, uniquename, uniquelist, autocite=inline} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.bbx index c3c7b31505..96651c4a3c 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear.bbx} - [2019/08/25 v0.8 extended biblatex authoryear bibliography style (MW)] + [2019/10/31 v0.8a extended biblatex authoryear bibliography style (MW)] \RequireBibliographyStyle{ext-standard} \RequireBibliographyStyle{authoryear} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.cbx index 7ae2631f45..947ce8ee3f 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-authoryear.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-authoryear.cbx} - [2019/08/25 v0.8 extended biblatex authoryear citation style (MW)] + [2019/10/31 v0.8a extended biblatex authoryear citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} {}{}{}{} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-biblatex-aux.def b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-biblatex-aux.def index 3c58ae4eba..9e73d9e93b 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-biblatex-aux.def +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-biblatex-aux.def @@ -1,9 +1,9 @@ \ProvidesFile{ext-biblatex-aux.def} - [2019/08/25 v0.8 auxiliaries for extended biblatex citation style + [2019/10/31 v0.8a auxiliaries for extended biblatex citation style (MW)] -\def\extblx@requiredbiblatexversion{3.13} -\def\extblx@requiredbiblatexdate{2019/08/17} +\def\extblx@requiredbiblatexversion{3.13a} +\def\extblx@requiredbiblatexdate{2019/08/31} \newrobustcmd*{\extblx@info}{\PackageInfo{biblatex-ext}} \newrobustcmd*{\extblx@warning}{\PackageWarning{biblatex-ext}} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-dashed-common.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-dashed-common.bbx index 39fd8ebe34..314a62bbe3 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-dashed-common.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-dashed-common.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-dashed-common.bbx} - [2019/08/25 v0.8 common files for extended biblatex + [2019/10/31 v0.8a common files for extended biblatex dashed bibliography styles (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.bbx index bddca69e7f..bedb51962f 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-numeric-comp.bbx} - [2019/08/25 v0.8 extended biblatex numeric-comp + [2019/10/31 v0.8a extended biblatex numeric-comp bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.cbx index b189bf44c1..3c8bd92f0b 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-comp.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-numeric-comp.cbx} - [2019/08/25 v0.8 extended biblatex numeric-comp citation style (MW)] + [2019/10/31 v0.8a extended biblatex numeric-comp citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} {}{}{}{} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.bbx index d7789dddce..c3e0d604ff 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-numeric-verb.bbx} - [2019/08/25 v0.8 extended biblatex numeric-verb + [2019/10/31 v0.8a extended biblatex numeric-verb bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.cbx index ce8243f789..8e9ccdea43 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric-verb.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-numeric-verb.cbx} - [2019/08/25 v0.8 extended biblatex numeric-verb citation style (MW)] + [2019/10/31 v0.8a extended biblatex numeric-verb citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} {}{}{}{} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.bbx index 557dfd61d3..596f8158d6 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-numeric.bbx} - [2019/08/25 v0.8 extended biblatex numeric bibliography style (MW)] + [2019/10/31 v0.8a extended biblatex numeric bibliography style (MW)] \RequireBibliographyStyle{ext-standard} \RequireBibliographyStyle{numeric} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.cbx index 01a0c79892..b01a2a4b4f 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-numeric.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-numeric.cbx} - [2019/08/25 v0.8 extended biblatex numeric citation style (MW)] + [2019/10/31 v0.8a extended biblatex numeric citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} {}{}{}{} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-standard.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-standard.bbx index 5e74514fe7..9261dc5358 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-standard.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-standard.bbx @@ -1,9 +1,9 @@ -% biblatex-ext v0.8 (2019-08-25) +% biblatex-ext v0.8a (2019-10-31) % Maintainer: Moritz Wemheuer % Licence: LaTeX Project Public License v1.3c or later % \ProvidesFile{ext-standard.bbx} - [2019/08/25 v0.8 extended biblatex standard style (MW)] + [2019/10/31 v0.8a extended biblatex standard style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} {}{}{}{} @@ -1100,7 +1100,7 @@ \newcommand*{\jourvoldelim}{\addspace} \newcommand*{\jourserdelim}{\newunitpunct} -\newcommand*{\servoldelim}{\addspace} +\newcommand*{\servoldelim}{\jourvoldelim} \newcommand*{\volnumdatedelim}{\addspace} \renewbibmacro*{journal+issuetitle}{% diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.bbx index 428ef76828..50dd95ab6d 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-verbose-ibid.bbx} - [2019/08/25 v0.8 extended biblatex verbose-ibid + [2019/10/31 v0.8a extended biblatex verbose-ibid bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.cbx index d1014c044c..af422e088d 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-ibid.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-verbose-ibid.cbx} - [2019/08/25 v0.8 extended biblatex verbose-ibid citation style (MW)] + [2019/10/31 v0.8a extended biblatex verbose-ibid citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} {}{}{}{} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.bbx index 54b6319b6c..188e934f2f 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-verbose-inote.bbx} - [2019/08/25 v0.8 extended biblatex verbose-inote + [2019/10/31 v0.8a extended biblatex verbose-inote bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.cbx index 6ccbcafef9..cc73a75d86 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-inote.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-verbose-inote.cbx} - [2019/08/25 v0.8 extended biblatex verbose-inote citation style (MW)] + [2019/10/31 v0.8a extended biblatex verbose-inote citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} {}{}{}{} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.bbx index 7d0dee6e15..961dfd2657 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-verbose-note.bbx} - [2019/08/25 v0.8 extended biblatex verbose-note + [2019/10/31 v0.8a extended biblatex verbose-note bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.cbx index 70e624bda3..d190b1239e 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-note.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-verbose-note.cbx} - [2019/08/25 v0.8 extended biblatex verbose-note citation style (MW)] + [2019/10/31 v0.8a extended biblatex verbose-note citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} {}{}{}{} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.bbx index 61aa077319..07c3ea5ee4 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-verbose-trad1.bbx} - [2019/08/25 v0.8 extended biblatex verbose-trad1 + [2019/10/31 v0.8a extended biblatex verbose-trad1 bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.cbx index 11abe6687b..579c1d174a 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad1.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-verbose-trad1.cbx} - [2019/08/25 v0.8 extended biblatex verbose-trad1 citation style (MW)] + [2019/10/31 v0.8a extended biblatex verbose-trad1 citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} {}{}{}{} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.bbx index 64decc4220..ad6c0126e6 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-verbose-trad2.bbx} - [2019/08/25 v0.8 extended biblatex verbose-trad2 + [2019/10/31 v0.8a extended biblatex verbose-trad2 bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.cbx index 4bc2d228bc..2fbccd925d 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad2.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-verbose-trad2.cbx} - [2019/08/25 v0.8 extended biblatex verbose-trad2 citation style (MW)] + [2019/10/31 v0.8a extended biblatex verbose-trad2 citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} {}{}{}{} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.bbx index fdb35faac3..37ab51f746 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-verbose-trad3.bbx} - [2019/08/25 v0.8 extended biblatex verbose-trad3 + [2019/10/31 v0.8a extended biblatex verbose-trad3 bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.cbx index d4d9d2e6c9..2f08f90582 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose-trad3.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-verbose-trad3.cbx} - [2019/08/25 v0.8 extended biblatex verbose-trad3 citation style (MW)] + [2019/10/31 v0.8a extended biblatex verbose-trad3 citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} {}{}{}{} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.bbx index 5ea86de444..a06f52cb02 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.bbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-verbose.bbx} - [2019/08/25 v0.8 extended biblatex verbose + [2019/10/31 v0.8a extended biblatex verbose bibliography style (MW)] \RequireBibliographyStyle{ext-standard} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.cbx b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.cbx index b0164a718f..b2db78d2b9 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.cbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-ext/ext-verbose.cbx @@ -1,5 +1,5 @@ \ProvidesFile{ext-verbose.cbx} - [2019/08/25 v0.8 extended biblatex verbose citation style (MW)] + [2019/10/31 v0.8a extended biblatex verbose citation style (MW)] \blx@inputonce{ext-biblatex-aux.def}{auxiliary code for ext-biblatex} {}{}{}{} diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.pdf b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.pdf index c165500314..99bf7c4a52 100644 Binary files a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.pdf and b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.pdf differ diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.tex b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.tex index 3ec1ca4d9b..1ff35be97a 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.tex +++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/biblatex-iso690.tex @@ -23,6 +23,7 @@ ,sortlocale=cs_CZ ,bibencoding=UTF8 ,spacecolon=false + % ,isbn=false %,block=ragged ]{biblatex} @@ -34,7 +35,7 @@ url={https://github.com/michal-h21/biblatex-iso690}, author={Michal Hoftich}, email={michal.h21@gmail.com}, - revision={0.3.2}, + revision={0.3.3}, date={\today}} \hypersetup{% @@ -124,7 +125,7 @@ The international standard ISO 690 prescribes exactly 3 methods of citation. However, based on the user input, this package contains more of them. -\subsubsection{Official methods} +\subsubsection{Standardized methods} \begin{description} \item[iso-authoryear] name and date system, so-called Harvard style @@ -134,7 +135,7 @@ more of them. There is also one more system of running notes, which is not implemented yet. -\subsubsection{Unofficial methods} +\subsubsection{Non-standardized methods} \begin{description} \item[iso-alphabetic] alphabetic system @@ -149,9 +150,9 @@ Frequently used package options are \begin{description} \item[style] style to be used for bibliographic references and citations. -Four possibilities are available, \t|iso-authoryear| commonly known as -“Harvard system”, \t|iso-numeric| as a numeric system, \t|iso-alphabetic| -and \t|iso-authortitle|. +Four possibilities are available for the \t|biblatex-iso690| package, +\t|iso-authoryear| commonly known as “Harvard system”, \t|iso-numeric| as a +numeric system, \t|iso-alphabetic| and \t|iso-authortitle|. \item[backend] backend program for generating bibliographic entries. \biber is the default one for the \biblatex package, providing a large variety @@ -161,7 +162,8 @@ are far behind the possibilities of \biber. \biber is the recommended backend. \item[autolang] controls which language environment is used. The most significant value is \t|other|, which supports printing localization terms in the language of the resource or language specific hyphenation. -Default value is \t|none|, which disables this feature. +Default value for \biblatex package is \t|none|, which disables this feature. +Default value for \t|biblatex-iso690| package is \t|other|. \item[sortlocale] responsible for sorting the bibliography according to the entered \t|locale| identifier. It should usually be set to one using the @@ -198,6 +200,18 @@ encoding of the \t|tex| file. \textit{availability and access} is possible by setting the option to \t|false|. Otherwise it will be printed in the \textit{notes} section. Default value is \t|true|. + + \item[doi] enable or disable printing of the DOI number. Default value is + \t|true|. + + \item[isbn] enable or disable printing of the ISBN, ISSN and other standard + identifiers. Default value is \t|true|. + + \item[eprint] enable or disable printing of the eprint field. Default value + is \t|true|. + + \item[url] enable or disable printing of the URL. Default value is \t|true|. + \end{description} @@ -507,7 +521,19 @@ in a reference. The field \t|library| serves for this purpose. \begin{changelog} -\begin{release}{0.3.2}{2016-04-25} +\begin{release}{0.3.3}{2019-10-30} +\item Doc better wording +\item Enable multilingual references by default +\item Added isbn, doi, url and eprint options for blocking corresponding fields +\item Printing out (the same) editors also in the consecutive entries -- + get rid of the dash as default (\t|iso-authoryear| style) +\item Removed deprecated \biblatex\ options +\item Changed URL address for DOI records +\item Clean up of indentation and spacing in the source code +\item Renamed \t|editor| macro to \t|incollection-editor| +\end{release} + +\begin{release}{0.3.2}{2017-04-25} \item Synchronized \t|iso-numeric| bibliography environment with original \t|numeric| style \item Added support for alphabetic bibliographic style (\t|iso-alphabetic|) \item Incompatible change: \t|thesisinfolast| package option changed to \t|thesisinfoinnotes| diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.bbx index 707a82f64e..a7a84cb7bc 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso-authoryear.bbx @@ -8,7 +8,7 @@ \def\printextrayear{% \ifentrytype{patent} {} - {\printfield{year}\printfield{extrayear}}% + {\printfield{year}\printfield{extradate}}% } % remove second appearance of year in a reference @@ -45,47 +45,5 @@ \usebibmacro{setpageref}% \finentry} -\renewbibmacro*{editor}{% - \usebibmacro{bbx:editor}{editorstrg}} -\newbibmacro*{bbx:editor}[1]{% - \ifboolexpr{ - test \ifuseeditor - and - not test {\ifnameundef{editor}} - } - {\usebibmacro{bbx:dashcheck} - {\bibnamedash} - {\usebibmacro{bbx:savehash}% - \printnames{editor}% - \addspace% - \mkbibparens{\usebibmacro{#1}}}% - \clearname{editor}}% - {\global\undef\bbx@lasthash - \usebibmacro{labeltitle}}}% - -\newbibmacro*{bbx:dashcheck}[2]{% - \ifboolexpr{ - test {\iffieldequals{fullhash}{\bbx@lasthash}} - and - not test \iffirstonpage - and - ( - not bool {bbx@inset} - or - test {\iffieldequalstr{entrysetcount}{1}} - ) - } - {#1} - {#2}} - -\newbibmacro*{labeltitle}{% - \iffieldundef{label} - {\iffieldundef{shorttitle} - {\usebibmacro{titles}{}{emph}% - \clearfield{title}% - \clearfield{subtitle}% - \clearfield{titleaddon}} - {\printfield{shorttitle}}} - {\printfield{label}}} \endinput diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso.bbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso.bbx index 92c8a78e9b..c4d0f16531 100644 --- a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso.bbx +++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/iso.bbx @@ -4,6 +4,7 @@ \DeclareLanguageMapping{english}{english-iso} \DeclareLanguageMapping{slovak}{slovak-iso} \DeclareLanguageMapping{german}{german-iso} +\DeclareLanguageMapping{polish}{polish-iso} \NewBibliographyString{at,bysupervisor,urlalso} %options @@ -28,20 +29,43 @@ \settoggle{bbx:thesisinfoinnotes}{#1}% \typeout{Printing thesis info at the end enabled: #1}} +\newtoggle{bbx:url} +\DeclareBibliographyOption{url}[true]{% + \settoggle{bbx:url}{#1}% + \typeout{Showing URL field enabled: #1}} + +\newtoggle{bbx:isbn} +\DeclareBibliographyOption{isbn}[true]{% + \settoggle{bbx:isbn}{#1}% + \typeout{Showing ISBN field enabled: #1}} + +\newtoggle{bbx:doi} +\DeclareBibliographyOption{doi}[true]{% + \settoggle{bbx:doi}{#1}% + \typeout{Showing DOI field enabled: #1}} + +\newtoggle{bbx:eprint} +\DeclareBibliographyOption{eprint}[true]{% + \settoggle{bbx:eprint}{#1}% + \typeout{Showing eprint field enabled: #1}} \ExecuteBibliographyOptions{% - spacecolon=false - ,pagetotal=false - ,shortnumeration=false - ,thesisinfoinnotes=true - %sorting=nyt - ,maxnames=9 - ,minnames=1 - ,citetracker=true - %,autolang=other - ,date=year - ,urldate=edtf - ,seconds=true + spacecolon=false, + pagetotal=false, + shortnumeration=false, + thesisinfoinnotes=true, + url=true, + isbn=true, + doi=true, + eprint=true, + % sorting=nyt, + maxnames=9, + minnames=1, + citetracker=true, + autolang=other, + date=year, + urldate=iso, + seconds=true, } \newbibmacro*{begentry}{} @@ -108,38 +132,38 @@ \DeclareFieldFormat[article,periodical]{pages}{% \iftoggle{bbx:shortnum} {#1} - {\mainsstring{pages}\addspace\printtext{#1}} + {\mainsstring{pages}\addspace\printtext{#1}}% } \DeclareFieldFormat*{pagetotal}{\mkbibbrackets{\mkmlpagetotal[bookpagination]{#1}}} \DeclareFieldFormat*{number}{\bibsstring{number}\addspace\printtext{#1}} \DeclareFieldFormat[article,periodical]{number}{% \iftoggle{bbx:shortnum} {\mkbibparens{#1}} - {\bibsstring{number}\addspace\printtext{#1}} + {\bibsstring{number}\addspace\printtext{#1}}% } \DeclareFieldFormat[patent]{number}{#1} \DeclareFieldFormat*{url}{% \iffieldundef{urlyear} - {\mainlstring{urlalso}\addcolon\space\url{#1}} - {\mainlstring{urlfrom}\addcolon\space\url{#1}} + {\mainlstring{urlalso}\addcolon\space\url{#1}} + {\mainlstring{urlfrom}\addcolon\space\url{#1}}% } \DeclareFieldFormat{doi}{% - \printtext{DOI}\addcolon\space% + \printtext{DOI}\addcolon\space \ifhyperref - {\href{http://dx.doi.org/#1}{\nolinkurl{#1}}} - {\nolinkurl{#1}} + {\href{https://doi.org/#1}{\nolinkurl{#1}}} + {\nolinkurl{#1}}% } \DeclareFieldFormat{howpublished}{\mkbibbrackets{#1}} \DeclareFieldFormat[online]{howpublished}{% \iffieldundef{howpublished} {\mkbibbrackets{online}} - {\mkbibbrackets{#1}} + {\mkbibbrackets{#1}}% } \DeclareFieldFormat{type}{% \ifbibstring{#1} {\mainlstring{#1}} - {#1} + {#1}% } \DeclareFieldFormat{supervisor}{% @@ -147,12 +171,12 @@ %We must handle more than one isbn and issn \DeclareFieldFormat{isbn}{% -%\renewcommand*{\do}[1]{\printtext{ISBN}\addspace#1\adddot\addspace}% -\printtext{ISBN}\addspace#1}% + %\renewcommand*{\do}[1]{\printtext{ISBN}\addspace#1\adddot\addspace}% + \printtext{ISBN}\addspace#1}% \DeclareFieldFormat{issn}{% -\renewcommand*{\do}[1]{\printtext{ISSN}\addspace#1\adddot\addspace}% -\docsvfield{issn}}% + \renewcommand*{\do}[1]{\printtext{ISSN}\addspace#1\adddot\addspace}% + \docsvfield{issn}}% \DeclareFieldFormat{isan}{\printtext{ISAN}\addspace#1} \DeclareFieldFormat{ismn}{\printtext{ISMN}\addspace#1} @@ -208,28 +232,22 @@ \newbibmacro*{names:subsidiary}{% \usebibmacro{byeditor}% - \newunit% + \newunit \usebibmacro{bytranslator}% } -\renewbibmacro*{editor}{% - \ifboolexpr{ - test \ifuseeditor - and - not test {\ifnameundef{editor}} - } - {\printnames{editor}% - \addspace% - \mkbibparens{\usebibmacro{editorstrg}}% - \clearname{editor}}% - {}} +% https://github.com/michal-h21/biblatex-iso690/issues/68#issuecomment-435650072 +\DeclareFieldFormat{editortype}{\mkbibparens{#1}} +\DeclareDelimFormat{editortypedelim}{\addspace} + + \newbibmacro*{thesissupervisor}{% \ifnameundef{supervisor} {} {\printtext{\mainlstring{bysupervisor}}% \addspace% - \printnames{supervisor}} + \printnames{supervisor}}% } %titles @@ -246,7 +264,7 @@ \printfield{#1subtitle}}% \setunit{\addspace}}% \printfield{#1titleaddon}% - \newunit% + \newunit }% \newbibmacro{volume}{% @@ -279,7 +297,7 @@ \newbibmacro{periodical:titles}{% \usebibmacro{titles}{}{emph}% - \newunit% + \newunit \iffieldundef{issuetitle} {\iffieldundef{journaltitle} {} @@ -346,18 +364,20 @@ %standard identifiers \newbibmacro*{identifier}{% - \printfield{isan}% - \newunit% - \printfield{isbn}% - \newunit% - \printfield{ismn}% - \newunit% - \printfield{isrn}% - \newunit% - \printfield{issn}% - \newunit% - \printfield{iswc}% - \newunit% + \iftoggle{bbx:isbn} + {\printfield{isan}% + \newunit + \printfield{isbn}% + \newunit + \printfield{ismn}% + \newunit + \printfield{isrn}% + \newunit + \printfield{issn}% + \newunit + \printfield{iswc}% + \newunit} + {}% } %availability and access @@ -373,9 +393,15 @@ \newbibmacro*{availability+access}{% \iffieldundef{doi} {\iffieldundef{eprint} - {\printfield{url}} - {\usebibmacro{from-eprint}}} - {\usebibmacro{from-doi}}% + {\iftoggle{bbx:url} + {\printfield{url}} + {}} + {\iftoggle{bbx:eprint} + {\usebibmacro{from-eprint}} + {}}} + {\iftoggle{bbx:doi} + {\usebibmacro{from-doi}} + {}}% } %location @@ -497,299 +523,299 @@ %bibliography drivers \DeclareBibliographyDriver{book}{% -\usebibmacro{bibindex}% -\usebibmacro{begentry}% -\usebibmacro{names:primary}% -\setunit{\labelnamepunct}\newblock% -\usebibmacro{multi:titles}% -\setunit{\addspace}% -\usebibmacro{medium-type}% -\newunit\newblock% -\printfield{edition}% -\newunit\newblock% -\usebibmacro{names:subsidiary}% -\newunit\newblock% -\usebibmacro{location+publisher+date}% -\newunit% -\printfield{version}% -\setunit{\addspace}% -\usebibmacro{urldate}% -\newunit\newblock% -\usebibmacro{series+number}% -\newunit\newblock% -\usebibmacro{identifier}% -\newunit\newblock% -\usebibmacro{availability+access}% -\newunit\newblock% -\usebibmacro{location}% -\setunit{\addspace}% -\iftoggle{bbx:totalpages} - {\printfield{pagetotal}} - {}% -\newunit\newblock% -\printfield{note}% -\newunit\newblock% -\setunit{\bibpagerefpunct}\newblock% -\usebibmacro{pageref}% -\usebibmacro{finentry}}% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{names:primary}% + \setunit{\labelnamepunct}\newblock + \usebibmacro{multi:titles}% + \setunit{\addspace}% + \usebibmacro{medium-type}% + \newunit\newblock + \printfield{edition}% + \newunit\newblock + \usebibmacro{names:subsidiary}% + \newunit\newblock + \usebibmacro{location+publisher+date}% + \newunit + \printfield{version}% + \setunit{\addspace}% + \usebibmacro{urldate}% + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \usebibmacro{identifier}% + \newunit\newblock + \usebibmacro{availability+access}% + \newunit\newblock + \usebibmacro{location}% + \setunit{\addspace}% + \iftoggle{bbx:totalpages} + {\printfield{pagetotal}} + {}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \usebibmacro{finentry}} \DeclareBibliographyDriver{periodical}{% -\usebibmacro{bibindex}% -\usebibmacro{begentry}% -% names macro just because of author-year style -\usebibmacro{names:primary}% -\setunit{\labelnamepunct}\newblock%% -\usebibmacro{periodical:titles}% -\setunit{\addspace}% -\usebibmacro{medium-type}% -\newunit\newblock -\printfield{edition}% -\newunit\newblock% -\usebibmacro{location+publisher+date}% -\setunit*{\addcomma\addspace}% -\usebibmacro{serial:numeration}% -\setunit{\addspace}% -\usebibmacro{urldate}% -\newunit\newblock% -\usebibmacro{identifier}% -\newunit\newblock% -\usebibmacro{availability+access}% -\newunit\newblock% -\usebibmacro{location}% -\newunit\newblock% -\printfield{note}% -\newunit\newblock% -\setunit{\bibpagerefpunct}\newblock% -\usebibmacro{pageref}% -\usebibmacro{finentry}}% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + % names macro just because of author-year style + \usebibmacro{names:primary}% + \setunit{\labelnamepunct}\newblock + \usebibmacro{periodical:titles}% + \setunit{\addspace}% + \usebibmacro{medium-type}% + \newunit\newblock + \printfield{edition}% + \newunit\newblock + \usebibmacro{location+publisher+date}% + \setunit*{\addcomma\addspace}% + \usebibmacro{serial:numeration}% + \setunit{\addspace}% + \usebibmacro{urldate}% + \newunit\newblock + \usebibmacro{identifier}% + \newunit\newblock + \usebibmacro{availability+access}% + \newunit\newblock + \usebibmacro{location}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \usebibmacro{finentry}}% \DeclareBibliographyDriver{article}{% -\usebibmacro{bibindex}% -\usebibmacro{begentry}% -\usebibmacro{names:primary}% -\setunit{\labelnamepunct}\newblock% -\usebibmacro{titles}{}{}% -\newunit\newblock% -\usebibmacro{titles}{journal}{emph}% -\setunit{\addspace}% -\usebibmacro{medium-type}% -\newunit\newblock% -\printfield{edition}% -\newunit\newblock% -\usebibmacro{date} -\setunit*{\addcomma\addspace}% -\usebibmacro{serial:numeration}% -\setunit{\bibpagespunct}% -\printfield{pages}% -\setunit{\addspace}% -\usebibmacro{urldate}% -\newunit\newblock% -\usebibmacro{identifier}% -\newunit\newblock% -\usebibmacro{availability+access}% -\newunit\newblock% -\usebibmacro{location}% -\newunit\newblock% -\printfield{note}% -\setunit{\bibpagerefpunct}\newblock% -\usebibmacro{pageref}%% -\usebibmacro{finentry}}% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{names:primary}% + \setunit{\labelnamepunct}\newblock + \usebibmacro{titles}{}{}% + \newunit\newblock + \usebibmacro{titles}{journal}{emph}% + \setunit{\addspace}% + \usebibmacro{medium-type}% + \newunit\newblock + \printfield{edition}% + \newunit\newblock + \usebibmacro{date} + \setunit*{\addcomma\addspace}% + \usebibmacro{serial:numeration}% + \setunit{\bibpagespunct}% + \printfield{pages}% + \setunit{\addspace}% + \usebibmacro{urldate}% + \newunit\newblock + \usebibmacro{identifier}% + \newunit\newblock + \usebibmacro{availability+access}% + \newunit\newblock + \usebibmacro{location}% + \newunit\newblock + \printfield{note}% + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \usebibmacro{finentry}}% \DeclareBibliographyDriver{inbook}{% -\usebibmacro{bibindex}% -\usebibmacro{begentry}% -\usebibmacro{names:primary}% -\setunit{\labelnamepunct}\newblock% -\usebibmacro{titles}{}{}% -\newunit\newblock% -\usebibmacro{in:}% -\printnames{bookauthor}% -\newunit\newblock% -\usebibmacro{host:titles}% -\setunit{\addspace}% -\usebibmacro{medium-type}% -\newunit\newblock% -\printfield{edition}% -\newunit\newblock% -\usebibmacro{names:subsidiary}% -\newunit\newblock% -\usebibmacro{location+publisher+date}% -\setunit*{\addcomma\addspace}% -\usebibmacro{book:numeration}% -\setunit{\bibpagespunct}% -\printfield{pages}% -\newunit% -\printfield{version}% -\setunit{\addspace}% -\usebibmacro{urldate}% -\newunit\newblock% -\usebibmacro{series+number}% -\newunit\newblock% -\usebibmacro{identifier}% -\newunit\newblock% -\usebibmacro{availability+access}% -\newunit\newblock% -\usebibmacro{location}% -\newunit\newblock% -\printfield{note}% -\newunit\newblock% -\setunit{\bibpagerefpunct}\newblock% -\usebibmacro{pageref}% -\usebibmacro{finentry}}% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{names:primary}% + \setunit{\labelnamepunct}\newblock + \usebibmacro{titles}{}{}% + \newunit\newblock + \usebibmacro{in:}% + \printnames{bookauthor}% + \newunit\newblock + \usebibmacro{host:titles}% + \setunit{\addspace}% + \usebibmacro{medium-type}% + \newunit\newblock + \printfield{edition}% + \newunit\newblock + \usebibmacro{names:subsidiary}% + \newunit\newblock + \usebibmacro{location+publisher+date}% + \setunit*{\addcomma\addspace}% + \usebibmacro{book:numeration}% + \setunit{\bibpagespunct}% + \printfield{pages}% + \newunit + \printfield{version}% + \setunit{\addspace}% + \usebibmacro{urldate}% + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \usebibmacro{identifier}% + \newunit\newblock + \usebibmacro{availability+access}% + \newunit\newblock + \usebibmacro{location}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \usebibmacro{finentry}}% \DeclareBibliographyDriver{incollection}{% -\usebibmacro{bibindex}% -\usebibmacro{begentry}% -\usebibmacro{names:primary}% -\setunit{\labelnamepunct}\newblock% -\usebibmacro{titles}{}{}% -\newunit\newblock% -\usebibmacro{in:}% -\usebibmacro{editor}% -\newunit\newblock% -\usebibmacro{host:titles}% -\setunit{\addspace}% -\usebibmacro{medium-type}% -\newunit\newblock% -\printfield{edition}% -\newunit\newblock% -\usebibmacro{names:subsidiary}% -\newunit\newblock% -\usebibmacro{location+publisher+date}% -% could number be even used in `incollection`? -% It should be at some other place in this case -\setunit*{\addcomma\addspace}% -\usebibmacro{book:numeration}% -\setunit{\bibpagespunct}% -\printfield{pages}% -\newunit% -\printfield{version}% -\setunit{\addspace}% -\usebibmacro{urldate}% -\newunit\newblock% -\usebibmacro{series+number}% -\newunit\newblock% -\usebibmacro{identifier}% -\newunit\newblock% -\usebibmacro{availability+access}% -\newunit\newblock% -\usebibmacro{location}% -\newunit\newblock% -\printfield{note}% -\newunit\newblock% -\setunit{\bibpagerefpunct}\newblock% -\usebibmacro{pageref}% -\usebibmacro{finentry}}% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{names:primary}% + \setunit{\labelnamepunct}\newblock + \usebibmacro{titles}{}{}% + \newunit\newblock + \usebibmacro{in:}% + \usebibmacro{editor}% + \newunit\newblock + \usebibmacro{host:titles}% + \setunit{\addspace}% + \usebibmacro{medium-type}% + \newunit\newblock + \printfield{edition}% + \newunit\newblock + \usebibmacro{names:subsidiary}% + \newunit\newblock + \usebibmacro{location+publisher+date}% + % could number be even used in `incollection`? + % It should be at some other place in this case + \setunit*{\addcomma\addspace}% + \usebibmacro{book:numeration}% + \setunit{\bibpagespunct}% + \printfield{pages}% + \newunit + \printfield{version}% + \setunit{\addspace}% + \usebibmacro{urldate}% + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \usebibmacro{identifier}% + \newunit\newblock + \usebibmacro{availability+access}% + \newunit\newblock + \usebibmacro{location}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \usebibmacro{finentry}}% \DeclareBibliographyDriver{online}{% -\usebibmacro{bibindex}% -\usebibmacro{begentry}% -\usebibmacro{names:primary}% -\setunit{\labelnamepunct}\newblock% -\usebibmacro{multi:titles}% -\setunit{\addspace}% -\usebibmacro{medium-type}% -\newunit\newblock% -\printfield{edition}% -\newunit\newblock% -\usebibmacro{names:subsidiary}% -\newunit\newblock% -\usebibmacro{location+publisher+date}% -\newunit% -\printfield{version}% -\setunit{\addspace}% -\usebibmacro{urldate}% -\newunit\newblock% -\usebibmacro{series+number}% -\newunit\newblock% -\usebibmacro{identifier}% -\newunit\newblock% -\usebibmacro{availability+access}% -\setunit{\addspace}% -\iftoggle{bbx:totalpages} - {\printfield{pagetotal}} - {}% -\printfield{note}% -\newunit\newblock% -\setunit{\bibpagerefpunct}\newblock% -\usebibmacro{pageref}%% -\usebibmacro{finentry}}% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{names:primary}% + \setunit{\labelnamepunct}\newblock + \usebibmacro{multi:titles}% + \setunit{\addspace}% + \usebibmacro{medium-type}% + \newunit\newblock + \printfield{edition}% + \newunit\newblock + \usebibmacro{names:subsidiary}% + \newunit\newblock + \usebibmacro{location+publisher+date}% + \newunit + \printfield{version}% + \setunit{\addspace}% + \usebibmacro{urldate}% + \newunit\newblock + \usebibmacro{series+number}% + \newunit\newblock + \usebibmacro{identifier}% + \newunit\newblock + \usebibmacro{availability+access}% + \setunit{\addspace}% + \iftoggle{bbx:totalpages} + {\printfield{pagetotal}} + {}% + \printfield{note}% + \newunit\newblock + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \usebibmacro{finentry}}% \DeclareBibliographyDriver{thesis}{% -\usebibmacro{bibindex}% -\usebibmacro{begentry}% -\usebibmacro{names:primary}% -\setunit{\labelnamepunct}\newblock%% -\usebibmacro{titles}{}{emph}% -\setunit{\addspace}% -\usebibmacro{medium-type}% -\newunit\newblock% -\usebibmacro{location+publisher+date}% -\newunit% -\printfield{version}% -\setunit{\addspace}% -\usebibmacro{urldate}% -\newunit\newblock% -\usebibmacro{identifier}% -\newunit\newblock% -\iftoggle{bbx:thesisinfoinnotes} - {} - {\printfield{type} - \newunit\newblock% - \printlist{institution}% - \newunit\newblock% - \usebibmacro{thesissupervisor}}% -\newunit\newblock% -\usebibmacro{availability+access} -\setunit{\addspace}% -\iftoggle{bbx:totalpages} - {\printfield{pagetotal}} - {}% -\newunit\newblock% -\iftoggle{bbx:thesisinfoinnotes} - {\printfield{type} - \newunit\newblock% - \printlist{institution}% - \newunit\newblock% - \usebibmacro{thesissupervisor}} - {}% -\newunit\newblock% -\printfield{note}% -\newunit\newblock% -\setunit{\bibpagerefpunct}\newblock% -\usebibmacro{pageref}% -\usebibmacro{finentry}}% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{names:primary}% + \setunit{\labelnamepunct}\newblock + \usebibmacro{titles}{}{emph}% + \setunit{\addspace}% + \usebibmacro{medium-type}% + \newunit\newblock + \usebibmacro{location+publisher+date}% + \newunit + \printfield{version}% + \setunit{\addspace}% + \usebibmacro{urldate}% + \newunit\newblock + \usebibmacro{identifier}% + \newunit\newblock + \iftoggle{bbx:thesisinfoinnotes} + {} + {\printfield{type} + \newunit\newblock + \printlist{institution}% + \newunit\newblock + \usebibmacro{thesissupervisor}}% + \newunit\newblock + \usebibmacro{availability+access}% + \setunit{\addspace}% + \iftoggle{bbx:totalpages} + {\printfield{pagetotal}} + {}% + \newunit\newblock + \iftoggle{bbx:thesisinfoinnotes} + {\printfield{type} + \newunit\newblock + \printlist{institution}% + \newunit\newblock + \usebibmacro{thesissupervisor}} + {}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \usebibmacro{finentry}}% \DeclareBibliographyDriver{patent}{% -\usebibmacro{bibindex}% -\usebibmacro{begentry}% -\usebibmacro{names:primary}% -\setunit{\labelnamepunct}\newblock%% -\usebibmacro{titles}{}{emph}% -\newunit\newblock% -\usebibmacro{names:subsidiary}% -\newunit\newblock% -\printfield{classification}% -\newunit\newblock% -\printlist{location}% -\newunit\newblock% -\iffieldundef{type} - {} - {\printfield{type}% - \setunit*{\addcomma\space}}% -\printfield{number}% -\newunit\newblock% -\usebibmacro{fulldate}% -\setunit{\addspace}% -\usebibmacro{urldate}% -\newunit\newblock% -\printfield{note}% -\newunit\newblock% -\usebibmacro{availability+access}% -\newunit\newblock% -\setunit{\bibpagerefpunct}\newblock% -\usebibmacro{pageref}% -\usebibmacro{finentry}}% + \usebibmacro{bibindex}% + \usebibmacro{begentry}% + \usebibmacro{names:primary}% + \setunit{\labelnamepunct}\newblock + \usebibmacro{titles}{}{emph}% + \newunit\newblock + \usebibmacro{names:subsidiary}% + \newunit\newblock + \printfield{classification}% + \newunit\newblock + \printlist{location}% + \newunit\newblock + \iffieldundef{type} + {} + {\printfield{type}% + \setunit*{\addcomma\space}}% + \printfield{number}% + \newunit\newblock + \usebibmacro{fulldate}% + \setunit{\addspace}% + \usebibmacro{urldate}% + \newunit\newblock + \printfield{note}% + \newunit\newblock + \usebibmacro{availability+access}% + \newunit\newblock + \setunit{\bibpagerefpunct}\newblock + \usebibmacro{pageref}% + \usebibmacro{finentry}}% %bibliography aliases diff --git a/macros/latex/contrib/biblatex-contrib/biblatex-iso690/polish-iso.lbx b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/polish-iso.lbx new file mode 100644 index 0000000000..9384b047ae --- /dev/null +++ b/macros/latex/contrib/biblatex-contrib/biblatex-iso690/polish-iso.lbx @@ -0,0 +1,18 @@ +\ProvidesFile{polish-iso.lbx} +[2016/05/13 v0.3.1 biblatex localization] + +\InheritBibliographyExtras{polish} +\InheritBibliographyStrings{polish} + +\DeclareBibliographyStrings{% + at = {{w}% + {w}}, + bysupervisor = {{promotor}% + {promotor}}, + urlfrom = {{dostępne z}% + {dostępne z}}, + urlalso = {{dostępne także z}% + {dostępne także z}}, +} + +\endinput diff --git a/macros/latex/contrib/modiagram/README b/macros/latex/contrib/modiagram/README index 31c6a50b81..9dfa85bee4 100644 --- a/macros/latex/contrib/modiagram/README +++ b/macros/latex/contrib/modiagram/README @@ -1,5 +1,5 @@ -------------------------------------------------------------------------- -the MODIAGRAM package 2015/09/23 v0.2g +the MODIAGRAM package 2019/10/31 v0.3 easy creation of molecular orbital diagrams @@ -11,7 +11,7 @@ E-Mail: contact@mychemistry.eu If you have any ideas, questions, suggestions or bugs to report, please feel free to contact me. -------------------------------------------------------------------------- -Copyright 2011--2015 Clemens Niederberger +Copyright 2011--2019 Clemens Niederberger This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3 diff --git a/macros/latex/contrib/modiagram/modiagram.sty b/macros/latex/contrib/modiagram/modiagram.sty index b240da4c61..2064105ae6 100644 --- a/macros/latex/contrib/modiagram/modiagram.sty +++ b/macros/latex/contrib/modiagram/modiagram.sty @@ -11,7 +11,7 @@ % If you have any ideas, questions, suggestions or bugs to report, please % feel free to contact me. % -------------------------------------------------------------------------- -% Copyright 2011--2015 Clemens Niederberger +% Copyright 2011--2019 Clemens Niederberger % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 @@ -28,863 +28,890 @@ % This work consists of the files modiagram.sty, modiagram_en.tex, % README and the derived file modiagram_en.pdf. % -------------------------------------------------------------------------- -\RequirePackage{ expl3 , xparse , l3keys2e , tikz , chemgreek } +\RequirePackage {expl3,xparse,l3keys2e,tikz,chemgreek} \usetikzlibrary{calc,arrows} \ProvidesExplPackage {modiagram} - {2015/09/23} - {0.2g} + {2019/10/31} + {0.3} {easy creation of molecular orbital diagrams} % --------------------------------------------------------------------------- % % error messages -\msg_set:nnn { MOdiagram } { missing-atom } +\msg_new:nnn {modiagram} {missing-atom} { - You~need~to~specify~the~left~and~right~atom~first~before~you~can~use~ - \token_to_str:N \molecule \c_space_tl \msg_line_context: . + You~ need~ to~ specify~ the~ left~ and~ right~ atom~ first~ before~ + you~ can~ use~ \token_to_str:N \molecule \c_space_tl \msg_line_context: . } -\msg_set:nnn { MOdiagram } { missing-AO } +\msg_new:nnn {modiagram} {missing-AO} { - You~need~to~specify~both~#2~AOs~first~before~you~can~use~ + You~ need~ to~ specify~ both~ #2~ AOs~ first~ before~ you~ can~ use~ #1~ \msg_line_context: . } -\msg_set:nnn { MOdiagram } { electron-placement } +\msg_new:nnn {modiagram} {electron-placement} { - The~value~for~the~electron~placement~must~be~between~0~and~1~ - \msg_line_context: . + The~ value~ for~ the~ electron~ placement~ must~ be~ between~ 0~ + and~ 1~ \msg_line_context: . } +\msg_new:nnn {modiagram} {deprecated} + { The~ #1~ `#2'~ is~ deprecated.~ Use~ `#3'~ instead. } + % --------------------------------------------------------------------------- % % temporary variables -\tl_new:N \l__MOdiagram_tmpa_tl -\tl_new:N \l__MOdiagram_tmpb_tl -\dim_new:N \l__MOdiagram_tmpa_dim -\fp_new:N \l__MOdiagram_tmpa_fp +\tl_new:N \l__modiagram_tmpa_tl +\tl_new:N \l__modiagram_tmpb_tl +\dim_new:N \l__modiagram_tmpa_dim +\fp_new:N \l__modiagram_tmpa_fp % --------------------------------------------------------------------------- % % variants of expl3 kernel commands: -\cs_generate_variant:Nn \str_case:nnF { V } -\cs_generate_variant:Nn \dim_compare:nNnTF { cNc } +\cs_generate_variant:Nn \str_case:nnF {V} +\cs_generate_variant:Nn \dim_compare:nNnTF {vNv} % --------------------------------------------------------------------------- % % main environment -\NewDocumentEnvironment { MOdiagram } { o g } - { - \cs_set_eq:NN \atom \__MOdiagram_atom: - \cs_set_eq:NN \molecule \__MOdiagram_molecule: - \cs_set_eq:NN \AO \__MOdiagram_arbitrary_AO: - \cs_set_eq:NN \EnergyAxis \__MOdiagram_EnergyAxis: - \dim_gzero:N \g__MOdiagram_min_energy_dim - \dim_gzero:N \g__MOdiagram_max_energy_dim - \int_gzero:N \g__MOdiagram_AO_name_int - \IfNoValueF { #1 } { \keys_set:nn { MOdiagram / diagram } { #1 } } - \__MOdiagram_set_labels: - \__MOdiagram_tikzpicture:n { } +\cs_new_protected:Npn \modiagram_start_environment:n #1 + { + \cs_set_eq:NN \atom \__modiagram_atom: + \cs_set_eq:NN \molecule \__modiagram_molecule: + \cs_set_eq:NN \AO \__modiagram_arbitrary_AO: + \cs_set_eq:NN \EnergyAxis \__modiagram_EnergyAxis: + \dim_gzero:N \g__modiagram_min_energy_dim + \dim_gzero:N \g__modiagram_max_energy_dim + \int_gzero:N \g__modiagram_AO_name_int + \keys_set:nn {modiagram/diagram} {#1} + \__modiagram_set_labels: + \__modiagram_tikzpicture:n { } \char_set_catcode_letter:N \: \char_set_catcode_other:N \; } + +\cs_new_protected:Npn \modiagram_end_environment: { - \bool_if:NT \l__MOdiagram_names_bool + \bool_if:NT \l__modiagram_names_bool { - \__MOdiagram_node:f { \tl_use:N \l__MOdiagram_names_style_tl } + \__modiagram_node:f { \tl_use:N \l__modiagram_names_style_tl } at ( - \l__MOdiagram_left_atom_position_dim , - \g__MOdiagram_min_energy_dim - 1cm + \l__modiagram_left_atom_position_dim , + \g__modiagram_min_energy_dim - 1cm ) - { \tl_use:N \l__MOdiagram_atom_left_name_tl } ; - \__MOdiagram_node:f { \tl_use:N \l__MOdiagram_names_style_tl } + { \tl_use:N \l__modiagram_atom_left_name_tl } ; + \__modiagram_node:f { \tl_use:N \l__modiagram_names_style_tl } at ( - \l__MOdiagram_molecule_position_dim , - \g__MOdiagram_min_energy_dim - 1cm + \l__modiagram_molecule_position_dim , + \g__modiagram_min_energy_dim - 1cm ) - { \tl_use:N \l__MOdiagram_molecule_name_tl } ; - \__MOdiagram_node:f { \tl_use:N \l__MOdiagram_names_style_tl } + { \tl_use:N \l__modiagram_molecule_name_tl } ; + \__modiagram_node:f { \tl_use:N \l__modiagram_names_style_tl } at ( - \l__MOdiagram_left_atom_position_dim - + \l__MOdiagram_inter_atom_distance_dim , - \g__MOdiagram_min_energy_dim - 1cm + \l__modiagram_left_atom_position_dim + + \l__modiagram_inter_atom_distance_dim , + \g__modiagram_min_energy_dim - 1cm ) - { \tl_use:N \l__MOdiagram_atom_right_name_tl } ; + { \tl_use:N \l__modiagram_atom_right_name_tl } ; } \endtikzpicture } -\bool_new:N \l__MOdiagram_AO_square_bool -\bool_new:N \l__MOdiagram_AO_round_bool -\bool_new:N \l__MOdiagram_AO_circle_bool -\bool_new:N \l__MOdiagram_AO_fancy_bool -\bool_new:N \l__MOdiagram_AO_labels_bool -\bool_new:N \l__MOdiagram_names_bool +\NewDocumentEnvironment {modiagram} {O{}} + { \modiagram_start_environment:n {#1} } + { \modiagram_end_environment: } + +\NewDocumentEnvironment {MOdiagram} {O{}} + { + \msg_warning:nnnnn {modiagram} {deprecated} + {environment} + {MOdiagram} + {modiagram} + \modiagram_start_environment:n {#1} + } + { \modiagram_end_environment: } + +\bool_new:N \l__modiagram_AO_square_bool +\bool_new:N \l__modiagram_AO_round_bool +\bool_new:N \l__modiagram_AO_circle_bool +\bool_new:N \l__modiagram_AO_fancy_bool +\bool_new:N \l__modiagram_AO_labels_bool +\bool_new:N \l__modiagram_names_bool -\tl_new:N \l__MOdiagram_names_style_tl -\tl_set:Nn \l__MOdiagram_names_style_tl { anchor=base } +\tl_new:N \l__modiagram_names_style_tl +\tl_set:Nn \l__modiagram_names_style_tl {anchor=base} -\tl_new:N \l__MOdiagram_lines_tl -\tl_set:Nn \l__MOdiagram_lines_tl { dotted } +\tl_new:N \l__modiagram_lines_tl +\tl_set:Nn \l__modiagram_lines_tl {dotted} -\tl_new:N \l__MOdiagram_orbital_label_fontsize_tl -\tl_new:N \l__MOdiagram_orbital_label_style_tl +\tl_new:N \l__modiagram_orbital_label_fontsize_tl +\tl_new:N \l__modiagram_orbital_label_style_tl -\dim_new:N \l__MOdiagram_AO_width_dim -\dim_set:Nn \l__MOdiagram_AO_width_dim { 10pt } +\dim_new:N \l__modiagram_AO_width_dim +\dim_set:Nn \l__modiagram_AO_width_dim {10pt} -\tl_new:N \l__MOdiagram_AO_up_electron_tl -\tl_set:Nn \l__MOdiagram_AO_up_electron_tl { .4 } -\tl_new:N \l__MOdiagram_AO_down_electron_tl -\tl_set:Nn \l__MOdiagram_AO_down_electron_tl { .6 } +\tl_new:N \l__modiagram_AO_up_electron_tl +\tl_set:Nn \l__modiagram_AO_up_electron_tl {.4} +\tl_new:N \l__modiagram_AO_down_electron_tl +\tl_set:Nn \l__modiagram_AO_down_electron_tl {.6} -\dim_new:N \l__MOdiagram_left_atom_position_dim -\dim_set:Nn \l__MOdiagram_left_atom_position_dim { 1cm } -\dim_new:N \l__MOdiagram_inter_atom_distance_dim -\dim_set:Nn \l__MOdiagram_inter_atom_distance_dim { 4cm } -\dim_new:N \l__MOdiagram_molecule_position_dim +\dim_new:N \l__modiagram_left_atom_position_dim +\dim_set:Nn \l__modiagram_left_atom_position_dim {1cm} +\dim_new:N \l__modiagram_inter_atom_distance_dim +\dim_set:Nn \l__modiagram_inter_atom_distance_dim {4cm} +\dim_new:N \l__modiagram_molecule_position_dim -\dim_new:N \g__MOdiagram_min_energy_dim -\dim_new:N \g__MOdiagram_max_energy_dim +\dim_new:N \g__modiagram_min_energy_dim +\dim_new:N \g__modiagram_max_energy_dim -\dim_new:N \l__MOdiagram_energy_gain_dim -\dim_new:N \l__MOdiagram_energy_loss_dim +\dim_new:N \l__modiagram_energy_gain_dim +\dim_new:N \l__modiagram_energy_loss_dim % detect lowest and highest orbital so we can draw the appropriate energy axis: -\cs_new_protected:Npn \__MOdiagram_energy_range:N #1 +\cs_new_protected:Npn \__modiagram_energy_range:N #1 { - \dim_set:Nn \l__MOdiagram_tmpa_dim { #1 } - \dim_compare:nT { \l__MOdiagram_tmpa_dim < \g__MOdiagram_min_energy_dim } - { \dim_gset_eq:NN \g__MOdiagram_min_energy_dim \l__MOdiagram_tmpa_dim } - \dim_compare:nT { \l__MOdiagram_tmpa_dim > \g__MOdiagram_max_energy_dim } - { \dim_gset_eq:NN \g__MOdiagram_max_energy_dim \l__MOdiagram_tmpa_dim } + \dim_set:Nn \l__modiagram_tmpa_dim {#1} + \dim_compare:nT { \l__modiagram_tmpa_dim < \g__modiagram_min_energy_dim } + { \dim_gset_eq:NN \g__modiagram_min_energy_dim \l__modiagram_tmpa_dim } + \dim_compare:nT { \l__modiagram_tmpa_dim > \g__modiagram_max_energy_dim } + { \dim_gset_eq:NN \g__modiagram_max_energy_dim \l__modiagram_tmpa_dim } } -\cs_generate_variant:Nn \__MOdiagram_energy_range:N { n } % split energy levels for creating the MO; we need to detect wether the left % or the right AO is the lower or higher one, respectively -\cs_new_protected:Npn \__MOdiagram_split_energy:NNN #1#2#3 +\cs_new_protected:Npn \__modiagram_split_energy:nNN #1#2#3 { - \dim_compare:cNcTF - { l__MOdiagram_atom_left_#1_dim } < { l__MOdiagram_atom_right_#1_dim } + \dim_compare:vNvTF + { l__modiagram_atom_left_#1_dim } < { l__modiagram_atom_right_#1_dim } { - \dim_set_eq:Nc \l__MOdiagram_energy_gain_dim - { l__MOdiagram_atom_left_#1_dim } - \dim_sub:Nn \l__MOdiagram_energy_gain_dim { #2 } - \dim_set_eq:Nc \l__MOdiagram_energy_loss_dim - { l__MOdiagram_atom_right_#1_dim } - \dim_add:Nn \l__MOdiagram_energy_loss_dim { #3 } + \dim_set_eq:Nc \l__modiagram_energy_gain_dim + { l__modiagram_atom_left_#1_dim } + \dim_sub:Nn \l__modiagram_energy_gain_dim {#2} + \dim_set_eq:Nc \l__modiagram_energy_loss_dim + { l__modiagram_atom_right_#1_dim } + \dim_add:Nn \l__modiagram_energy_loss_dim {#3} } { - \dim_set_eq:Nc \l__MOdiagram_energy_gain_dim - { l__MOdiagram_atom_right_#1_dim } - \dim_sub:Nn \l__MOdiagram_energy_gain_dim { #2 } - \dim_set_eq:Nc \l__MOdiagram_energy_loss_dim - { l__MOdiagram_atom_left_#1_dim } - \dim_add:Nn \l__MOdiagram_energy_loss_dim { #3 } + \dim_set_eq:Nc \l__modiagram_energy_gain_dim + { l__modiagram_atom_right_#1_dim } + \dim_sub:Nn \l__modiagram_energy_gain_dim {#2} + \dim_set_eq:Nc \l__modiagram_energy_loss_dim + { l__modiagram_atom_left_#1_dim } + \dim_add:Nn \l__modiagram_energy_loss_dim {#3} } } -\cs_generate_variant:Nn \__MOdiagram_split_energy:NNN { nNN } % position the spin-up/spin-down el: -\cs_new_protected:Npn \__MOdiagram_AO_place_electron:nn #1#2 +\cs_new_protected:Npn \__modiagram_AO_place_electron:nn #1#2 { - \fp_compare:nNnT { #2 } < { 0 } - { \msg_error:nn { MOdiagram } { electron-placement } } - \fp_compare:nNnT { abs( #2 ) } > { 1 } - { \msg_error:nn { MOdiagram } { electron-placement } } - \bool_if:nTF { #1 } - { \tl_set:Nn \l__MOdiagram_AO_down_electron_tl { #2 } } - { \tl_set:Nn \l__MOdiagram_AO_up_electron_tl { #2 } } + \fp_compare:nNnT {#2} < {0} + { \msg_error:nn {modiagram} {electron-placement} } + \fp_compare:nNnT { abs(#2) } > {1} + { \msg_error:nn {modiagram} {electron-placement} } + \bool_if:nTF {#1} + { \tl_set:Nn \l__modiagram_AO_down_electron_tl {#2} } + { \tl_set:Nn \l__modiagram_AO_up_electron_tl {#2} } } -\cs_generate_variant:Nn \__MOdiagram_AO_place_electron:nn { nx } +\cs_generate_variant:Nn \__modiagram_AO_place_electron:nn {nx} -\cs_new_protected:Npn \__MOdiagram_AO_place_electrons:n #1 +\cs_new_protected:Npn \__modiagram_AO_place_electrons:n #1 { - \fp_set:Nn \l__MOdiagram_tmpa_fp { .5 * ( 1 - #1 ) } - \__MOdiagram_AO_place_electron:nx { 0 } { \fp_to_tl:N \l__MOdiagram_tmpa_fp } - \fp_set:Nn \l__MOdiagram_tmpa_fp { .5 * ( 1 + #1 ) } - \__MOdiagram_AO_place_electron:nx { 1 } { \fp_to_tl:N \l__MOdiagram_tmpa_fp } + \fp_set:Nn \l__modiagram_tmpa_fp { .5 * ( 1 - #1 ) } + \__modiagram_AO_place_electron:nx {0} { \fp_to_tl:N \l__modiagram_tmpa_fp } + \fp_set:Nn \l__modiagram_tmpa_fp { .5 * ( 1 + #1 ) } + \__modiagram_AO_place_electron:nx {1} { \fp_to_tl:N \l__modiagram_tmpa_fp } } % place the right atom -\cs_new_protected:Npn \__MOdiagram_molecule_position:n #1 +\cs_new_protected:Npn \__modiagram_molecule_position:n #1 { - \fp_set:Nn \l__MOdiagram_tmpa_fp { .5 * \dim_to_fp:n {#1} } - \dim_set:Nn \l__MOdiagram_molecule_position_dim - { \fp_to_dim:N \l__MOdiagram_tmpa_fp + \l__MOdiagram_left_atom_position_dim } + \fp_set:Nn \l__modiagram_tmpa_fp { .5 * \dim_to_fp:n {#1} } + \dim_set:Nn \l__modiagram_molecule_position_dim + { \fp_to_dim:N \l__modiagram_tmpa_fp + \l__modiagram_left_atom_position_dim } } -\cs_generate_variant:Nn \__MOdiagram_molecule_position:n { f } +\cs_generate_variant:Nn \__modiagram_molecule_position:n {f} -\__MOdiagram_molecule_position:f - { \dim_use:N \l__MOdiagram_inter_atom_distance_dim } +\__modiagram_molecule_position:f + { \dim_use:N \l__modiagram_inter_atom_distance_dim } % set up keys for the environment -\keys_define:nn { MOdiagram / diagram } +\keys_define:nn {modiagram/diagram} { style .choice: , style / plain .code:n = { - \bool_set_false:N \l__MOdiagram_AO_square_bool - \bool_set_false:N \l__MOdiagram_AO_round_bool - \bool_set_false:N \l__MOdiagram_AO_circle_bool - \bool_set_false:N \l__MOdiagram_AO_fancy_bool - \tl_set:Nn \l__MOdiagram_lines_tl { dotted } + \bool_set_false:N \l__modiagram_AO_square_bool + \bool_set_false:N \l__modiagram_AO_round_bool + \bool_set_false:N \l__modiagram_AO_circle_bool + \bool_set_false:N \l__modiagram_AO_fancy_bool + \tl_set:Nn \l__modiagram_lines_tl { dotted } } , style / square .code:n = { - \bool_set_true:N \l__MOdiagram_AO_square_bool - \bool_set_false:N \l__MOdiagram_AO_round_bool - \bool_set_false:N \l__MOdiagram_AO_circle_bool - \bool_set_false:N \l__MOdiagram_AO_fancy_bool - \tl_set:Nn \l__MOdiagram_lines_tl { gray } + \bool_set_true:N \l__modiagram_AO_square_bool + \bool_set_false:N \l__modiagram_AO_round_bool + \bool_set_false:N \l__modiagram_AO_circle_bool + \bool_set_false:N \l__modiagram_AO_fancy_bool + \tl_set:Nn \l__modiagram_lines_tl { gray } } , style / circle .code:n = { - \bool_set_false:N \l__MOdiagram_AO_square_bool - \bool_set_false:N \l__MOdiagram_AO_round_bool - \bool_set_true:N \l__MOdiagram_AO_circle_bool - \bool_set_false:N \l__MOdiagram_AO_fancy_bool - \tl_set:Nn \l__MOdiagram_lines_tl { gray } + \bool_set_false:N \l__modiagram_AO_square_bool + \bool_set_false:N \l__modiagram_AO_round_bool + \bool_set_true:N \l__modiagram_AO_circle_bool + \bool_set_false:N \l__modiagram_AO_fancy_bool + \tl_set:Nn \l__modiagram_lines_tl { gray } } , style / round .code:n = { - \bool_set_true:N \l__MOdiagram_AO_square_bool - \bool_set_true:N \l__MOdiagram_AO_round_bool - \bool_set_false:N \l__MOdiagram_AO_circle_bool - \bool_set_false:N \l__MOdiagram_AO_fancy_bool - \tl_set:Nn \l__MOdiagram_lines_tl { gray } + \bool_set_true:N \l__modiagram_AO_square_bool + \bool_set_true:N \l__modiagram_AO_round_bool + \bool_set_false:N \l__modiagram_AO_circle_bool + \bool_set_false:N \l__modiagram_AO_fancy_bool + \tl_set:Nn \l__modiagram_lines_tl { gray } } , style / fancy .code:n = { - \bool_set_true:N \l__MOdiagram_AO_square_bool - \bool_set_true:N \l__MOdiagram_AO_round_bool - \bool_set_false:N \l__MOdiagram_AO_circle_bool - \bool_set_true:N \l__MOdiagram_AO_fancy_bool - \tl_set:Nn \l__MOdiagram_lines_tl { densely~dashed } + \bool_set_true:N \l__modiagram_AO_square_bool + \bool_set_true:N \l__modiagram_AO_round_bool + \bool_set_false:N \l__modiagram_AO_circle_bool + \bool_set_true:N \l__modiagram_AO_fancy_bool + \tl_set:Nn \l__modiagram_lines_tl { densely~dashed } } , - lines .tl_set:N = \l__MOdiagram_lines_tl , + lines .tl_set:N = \l__modiagram_lines_tl , distance .code:n = { - \dim_set:Nn \l__MOdiagram_inter_atom_distance_dim { #1 } - \__MOdiagram_molecule_position:n { #1 } + \dim_set:Nn \l__modiagram_inter_atom_distance_dim {#1} + \__modiagram_molecule_position:n {#1} } , - AO-width .tl_set:N = \l__MOdiagram_AO_width_dim , - up-el-pos .code:n = \__MOdiagram_AO_place_electron:nn { 0 } { #1 } , - down-el-pos .code:n = \__MOdiagram_AO_place_electron:nn { 1 } { #1 } , - el-sep .code:n = \__MOdiagram_AO_place_electrons:n { #1 } , - labels .bool_set:N = \l__MOdiagram_AO_labels_bool , - names .bool_set:N = \l__MOdiagram_names_bool , - names-style .tl_set:N = \l__MOdiagram_names_style_tl , + AO-width .tl_set:N = \l__modiagram_AO_width_dim , + up-el-pos .code:n = \__modiagram_AO_place_electron:nn {0} {#1} , + down-el-pos .code:n = \__modiagram_AO_place_electron:nn {1} {#1} , + el-sep .code:n = \__modiagram_AO_place_electrons:n {#1} , + labels .bool_set:N = \l__modiagram_AO_labels_bool , + names .bool_set:N = \l__modiagram_names_bool , + names-style .tl_set:N = \l__modiagram_names_style_tl , names-style-add .code:n = - { \tl_put_right:Nn \l__MOdiagram_names_style_tl { , #1 } } , - labels-fs .tl_set:N = \l__MOdiagram_orbital_label_fontsize_tl , - labels-style .tl_set:N = \l__MOdiagram_orbital_label_style_tl + { \tl_put_right:Nn \l__modiagram_names_style_tl { , #1 } } , + labels-fs .tl_set:N = \l__modiagram_orbital_label_fontsize_tl , + labels-style .tl_set:N = \l__modiagram_orbital_label_style_tl } -\ProcessKeysOptions { MOdiagram / diagram } +\ProcessKeysOptions { modiagram / diagram } % --------------------------------------------------------------------------- % % setup command -\NewDocumentCommand \MOsetup { m } - { \keys_set:nn { MOdiagram / diagram } { #1 } } +\NewDocumentCommand \setmodiagram {+m} + { \keys_set:nn {modiagram/diagram} {#1} } + +\NewDocumentCommand \MOsetup {+m} + { + \msg_warning:nnnnn {modiagram} {deprecated} + {command} + {\MOsetup} + {\setmodiagram} + \keys_set:nn {modiagram/diagram} {#1} + } % --------------------------------------------------------------------------- % % draw AOs -\tl_new:N \l__MOdiagram_atom_left_name_tl -\tl_new:N \l__MOdiagram_atom_right_name_tl - -\bool_new:N \l__MOdiagram_left_atom_placed_bool -\bool_set_false:N \l__MOdiagram_left_atom_placed_bool -\bool_new:N \l__MOdiagram_right_atom_placed_bool -\bool_set_false:N \l__MOdiagram_right_atom_placed_bool - -\NewDocumentCommand \__MOdiagram_atom: { o m m } - { - \__MOdiagram_atom_disable: - \keys_set:nn { MOdiagram / atom } { position = #2 } - \keys_set:nn { MOdiagram / atom } { #3 } - \bool_if:NTF \l__MOdiagram_atom_left_bool - { \bool_set_true:N \l__MOdiagram_left_atom_placed_bool } - { \bool_set_true:N \l__MOdiagram_right_atom_placed_bool } - \IfNoValueF { #1 } +\tl_new:N \l__modiagram_atom_left_name_tl +\tl_new:N \l__modiagram_atom_right_name_tl + +\bool_new:N \l__modiagram_left_atom_placed_bool +\bool_set_false:N \l__modiagram_left_atom_placed_bool +\bool_new:N \l__modiagram_right_atom_placed_bool +\bool_set_false:N \l__modiagram_right_atom_placed_bool + +\NewDocumentCommand \__modiagram_atom: {omm} + { + \__modiagram_atom_disable: + \keys_set:nn {modiagram/atom} { position = #2 } + \keys_set:nn {modiagram/atom} {#3} + \bool_if:NTF \l__modiagram_atom_left_bool + { \bool_set_true:N \l__modiagram_left_atom_placed_bool } + { \bool_set_true:N \l__modiagram_right_atom_placed_bool } + \IfNoValueF {#1} { - \bool_if:NTF \l__MOdiagram_atom_left_bool - { \tl_set:Nn \l__MOdiagram_atom_left_name_tl { #1 } } - { \tl_set:Nn \l__MOdiagram_atom_right_name_tl { #1 } } + \bool_if:NTF \l__modiagram_atom_left_bool + { \tl_set:Nn \l__modiagram_atom_left_name_tl {#1} } + { \tl_set:Nn \l__modiagram_atom_right_name_tl {#1} } } - \__MOdiagram_one_s: - \__MOdiagram_two_s: - \__MOdiagram_two_p: -% \__MOdiagram_three_s: -% \__MOdiagram_three_p: -% \__MOdiagram_four_s: + \__modiagram_one_s: + \__modiagram_two_s: + \__modiagram_two_p: +% \__modiagram_three_s: +% \__modiagram_three_p: +% \__modiagram_four_s: } -\bool_new:N \l__MOdiagram_atom_left_bool +\bool_new:N \l__modiagram_atom_left_bool % is \atom placed left or right? -\keys_define:nn { MOdiagram / atom } +\keys_define:nn {modiagram/atom} { position .choice: , position / left .code:n = - { \bool_set_true:N \l__MOdiagram_atom_left_bool } , + { \bool_set_true:N \l__modiagram_atom_left_bool } , position / right .code:n = - { \bool_set_false:N \l__MOdiagram_atom_left_bool } + { \bool_set_false:N \l__modiagram_atom_left_bool } } -\dim_new:N \l__MOdiagram_atom_xshift_dim +\dim_new:N \l__modiagram_atom_xshift_dim % these are going to be our `arguments' for the \atom command: -\keys_define:nn { MOdiagram / atom } +\keys_define:nn {modiagram/atom} { - 1s .code:n = { \__MOdiagram_one_s_set:n { #1 } } , + 1s .code:n = { \__modiagram_one_s_set:n {#1} } , 1s .default:n = { 0 ; pair } , - 2s .code:n = { \__MOdiagram_two_s_set:n { #1 } } , + 2s .code:n = { \__modiagram_two_s_set:n {#1} } , 2s .default:n = { 2 ; pair } , - 2p .code:n = { \__MOdiagram_two_p_set:n { #1 } } , + 2p .code:n = { \__modiagram_two_p_set:n {#1} } , 2p .default:n = { 5 ; pair , pair , pair } , - color .code:n = { \__MOdiagram_electron_color_set:n { #1 } } , - label .code:n = { \__MOdiagram_orbital_label_set:n { #1 } } , - up-el-pos .code:n = { \__MOdiagram_electron_up_set:n { #1 } } , - down-el-pos .code:n = { \__MOdiagram_electron_down_set:n { #1 } } + color .code:n = { \__modiagram_electron_color_set:n {#1} } , + label .code:n = { \__modiagram_orbital_label_set:n {#1} } , + up-el-pos .code:n = { \__modiagram_electron_up_set:n {#1} } , + down-el-pos .code:n = { \__modiagram_electron_down_set:n {#1} } } % --------------------------------------------------------------------------- % % 1s orbital -\dim_new:N \l__MOdiagram_atom_one_s_dim -\dim_new:N \l__MOdiagram_atom_left_one_s_dim -\dim_new:N \l__MOdiagram_atom_right_one_s_dim +\dim_new:N \l__modiagram_atom_one_s_dim +\dim_new:N \l__modiagram_atom_left_one_s_dim +\dim_new:N \l__modiagram_atom_right_one_s_dim -\tl_new:N \l__MOdiagram_AO_one_s_electron_tl +\tl_new:N \l__modiagram_AO_one_s_electron_tl -\bool_new:N \l__MOdiagram_atom_one_s_bool -\bool_new:N \l__MOdiagram_one_s_left_bool -\bool_set_false:N \l__MOdiagram_one_s_left_bool -\bool_new:N \l__MOdiagram_one_s_right_bool -\bool_set_false:N \l__MOdiagram_one_s_right_bool +\bool_new:N \l__modiagram_atom_one_s_bool +\bool_new:N \l__modiagram_one_s_left_bool +\bool_set_false:N \l__modiagram_one_s_left_bool +\bool_new:N \l__modiagram_one_s_right_bool +\bool_set_false:N \l__modiagram_one_s_right_bool % read 1s argument -\cs_new_protected:Npn \__MOdiagram_one_s_set:n #1 +\cs_new_protected:Npn \__modiagram_one_s_set:n #1 { - \bool_set_true:N \l__MOdiagram_atom_one_s_bool - \tl_if_in:onTF { #1 } { ; } - { \__MOdiagram_one_s_set_aux:n #1 \q_stop } + \bool_set_true:N \l__modiagram_atom_one_s_bool + \tl_if_in:onTF {#1} {;} + { \__modiagram_one_s_set_aux:n #1 \q_stop } { - \tl_clear:N \l__MOdiagram_AO_one_s_electron_tl - \tl_if_blank:nTF { #1 } - { \dim_set:Nn \l__MOdiagram_atom_one_s_dim { 0 cm } } - { \dim_set:Nn \l__MOdiagram_atom_one_s_dim { #1 cm } } + \tl_clear:N \l__modiagram_AO_one_s_electron_tl + \tl_if_blank:nTF {#1} + { \dim_set:Nn \l__modiagram_atom_one_s_dim {0cm} } + { \dim_set:Nn \l__modiagram_atom_one_s_dim {#1cm} } } } -\cs_new_protected:Npn \__MOdiagram_one_s_set_aux:n #1;#2 \q_stop +\cs_new_protected:Npn \__modiagram_one_s_set_aux:n #1;#2 \q_stop { - \tl_if_blank:nTF { #1 } - { \dim_set:Nn \l__MOdiagram_atom_one_s_dim { 0 cm } } - { \dim_set:Nn \l__MOdiagram_atom_one_s_dim { #1 cm } } - \tl_set:Nn \l__MOdiagram_AO_one_s_electron_tl { #2 } + \tl_if_blank:nTF {#1} + { \dim_set:Nn \l__modiagram_atom_one_s_dim {0cm} } + { \dim_set:Nn \l__modiagram_atom_one_s_dim {#1cm} } + \tl_set:Nn \l__modiagram_AO_one_s_electron_tl {#2} } % display 1s orbital -\cs_new_protected:Npn \__MOdiagram_one_s: +\cs_new_protected:Npn \__modiagram_one_s: { - \bool_if:NT \l__MOdiagram_atom_one_s_bool + \bool_if:NT \l__modiagram_atom_one_s_bool { - \bool_if:NTF \l__MOdiagram_atom_left_bool + \bool_if:NTF \l__modiagram_atom_left_bool { \dim_set_eq:NN - \l__MOdiagram_atom_xshift_dim - \l__MOdiagram_left_atom_position_dim + \l__modiagram_atom_xshift_dim + \l__modiagram_left_atom_position_dim \dim_set_eq:NN - \l__MOdiagram_atom_left_one_s_dim - \l__MOdiagram_atom_one_s_dim - \bool_set_true:N \l__MOdiagram_one_s_left_bool + \l__modiagram_atom_left_one_s_dim + \l__modiagram_atom_one_s_dim + \bool_set_true:N \l__modiagram_one_s_left_bool } { - \dim_set:Nn \l__MOdiagram_atom_xshift_dim + \dim_set:Nn \l__modiagram_atom_xshift_dim { - \l__MOdiagram_left_atom_position_dim - + \l__MOdiagram_inter_atom_distance_dim + \l__modiagram_left_atom_position_dim + + \l__modiagram_inter_atom_distance_dim } \dim_set_eq:NN - \l__MOdiagram_atom_right_one_s_dim - \l__MOdiagram_atom_one_s_dim - \bool_set_true:N \l__MOdiagram_one_s_right_bool + \l__modiagram_atom_right_one_s_dim + \l__modiagram_atom_one_s_dim + \bool_set_true:N \l__modiagram_one_s_right_bool } - \__MOdiagram_energy_range:N \l__MOdiagram_atom_one_s_dim - \__MOdiagram_node:n { inner~sep=0 , outer~sep=0 } + \__modiagram_energy_range:N \l__modiagram_atom_one_s_dim + \__modiagram_node:n { inner~sep=0 , outer~sep=0 } (1s - \bool_if:NTF \l__MOdiagram_atom_left_bool - { left } - { right } + \bool_if:NTF \l__modiagram_atom_left_bool + {left} + {right} ) - at ( \l__MOdiagram_atom_xshift_dim , \l__MOdiagram_atom_one_s_dim ) + at ( \l__modiagram_atom_xshift_dim , \l__modiagram_atom_one_s_dim ) { - \bool_if:NTF \l__MOdiagram_atom_left_bool + \bool_if:NTF \l__modiagram_atom_left_bool { - \__MOdiagram_get_electron_color:n { 1sleft } - \__MOdiagram_get_electron_up:n { 1sleft } - \__MOdiagram_get_electron_down:n { 1sleft } + \__modiagram_get_electron_color:n {1sleft} + \__modiagram_get_electron_up:n {1sleft} + \__modiagram_get_electron_down:n {1sleft} } { - \__MOdiagram_get_electron_color:n { 1sright } - \__MOdiagram_get_electron_up:n { 1sright } - \__MOdiagram_get_electron_down:n { 1sright } + \__modiagram_get_electron_color:n {1sright} + \__modiagram_get_electron_up:n {1sright} + \__modiagram_get_electron_down:n {1sright} } - \__MOdiagram_AO:ff - { \tl_use:N \l__MOdiagram_AO_one_s_electron_tl } - { \tl_use:N \l__MOdiagram_electron_current_color_tl } + \__modiagram_AO:ff + { \tl_use:N \l__modiagram_AO_one_s_electron_tl } + { \tl_use:N \l__modiagram_electron_current_color_tl } } ; - \bool_if:NTF \l__MOdiagram_atom_left_bool - { \__MOdiagram_get_orbital_label:n { 1s left } } - { \__MOdiagram_get_orbital_label:n { 1s right } } + \bool_if:NTF \l__modiagram_atom_left_bool + { \__modiagram_get_orbital_label:n {1sleft} } + { \__modiagram_get_orbital_label:n {1sright} } } } % --------------------------------------------------------------------------- % % 2s orbital -\dim_new:N \l__MOdiagram_atom_two_s_dim -\dim_new:N \l__MOdiagram_atom_left_two_s_dim -\dim_new:N \l__MOdiagram_atom_right_two_s_dim +\dim_new:N \l__modiagram_atom_two_s_dim +\dim_new:N \l__modiagram_atom_left_two_s_dim +\dim_new:N \l__modiagram_atom_right_two_s_dim -\tl_new:N \l__MOdiagram_AO_two_s_electron_tl +\tl_new:N \l__modiagram_AO_two_s_electron_tl -\bool_new:N \l__MOdiagram_atom_two_s_bool -\bool_new:N \l__MOdiagram_two_s_left_bool -\bool_set_false:N \l__MOdiagram_two_s_left_bool -\bool_new:N \l__MOdiagram_two_s_right_bool -\bool_set_false:N \l__MOdiagram_two_s_right_bool +\bool_new:N \l__modiagram_atom_two_s_bool +\bool_new:N \l__modiagram_two_s_left_bool +\bool_set_false:N \l__modiagram_two_s_left_bool +\bool_new:N \l__modiagram_two_s_right_bool +\bool_set_false:N \l__modiagram_two_s_right_bool % read 2s argument -\cs_new_protected:Npn \__MOdiagram_two_s_set:n #1 +\cs_new_protected:Npn \__modiagram_two_s_set:n #1 { - \bool_set_true:N \l__MOdiagram_atom_two_s_bool - \tl_if_in:onTF { #1 } { ; } - { \__MOdiagram_two_s_set_aux:n #1 \q_stop } + \bool_set_true:N \l__modiagram_atom_two_s_bool + \tl_if_in:onTF {#1} {;} + { \__modiagram_two_s_set_aux:n #1 \q_stop } { - \tl_clear:N \l__MOdiagram_AO_two_s_electron_tl - \tl_if_blank:nTF { #1 } - { \dim_set:Nn \l__MOdiagram_atom_two_s_dim { 2 cm } } - { \dim_set:Nn \l__MOdiagram_atom_two_s_dim { #1 cm } } + \tl_clear:N \l__modiagram_AO_two_s_electron_tl + \tl_if_blank:nTF {#1} + { \dim_set:Nn \l__modiagram_atom_two_s_dim {2cm} } + { \dim_set:Nn \l__modiagram_atom_two_s_dim {#1cm} } } } -\cs_new_protected:Npn \__MOdiagram_two_s_set_aux:n #1;#2 \q_stop +\cs_new_protected:Npn \__modiagram_two_s_set_aux:n #1;#2 \q_stop { - \tl_if_blank:nTF { #1 } - { \dim_set:Nn \l__MOdiagram_atom_two_s_dim { 2 cm } } - { \dim_set:Nn \l__MOdiagram_atom_two_s_dim { #1 cm } } - \tl_set:Nn \l__MOdiagram_AO_two_s_electron_tl { #2 } + \tl_if_blank:nTF {#1} + { \dim_set:Nn \l__modiagram_atom_two_s_dim {2cm} } + { \dim_set:Nn \l__modiagram_atom_two_s_dim {#1cm} } + \tl_set:Nn \l__modiagram_AO_two_s_electron_tl {#2} } % display 2s orbital -\cs_new_protected:Npn \__MOdiagram_two_s: +\cs_new_protected:Npn \__modiagram_two_s: { - \bool_if:NT \l__MOdiagram_atom_two_s_bool + \dim_show:N \l__modiagram_atom_two_s_dim + \bool_if:NT \l__modiagram_atom_two_s_bool { - \bool_if:NTF \l__MOdiagram_atom_left_bool + \bool_if:NTF \l__modiagram_atom_left_bool { \dim_set_eq:NN - \l__MOdiagram_atom_xshift_dim - \l__MOdiagram_left_atom_position_dim + \l__modiagram_atom_xshift_dim + \l__modiagram_left_atom_position_dim \dim_set_eq:NN - \l__MOdiagram_atom_left_two_s_dim - \l__MOdiagram_atom_two_s_dim - \bool_set_true:N \l__MOdiagram_two_s_left_bool + \l__modiagram_atom_left_two_s_dim + \l__modiagram_atom_two_s_dim + \bool_set_true:N \l__modiagram_two_s_left_bool } { - \dim_set:Nn \l__MOdiagram_atom_xshift_dim + \dim_set:Nn \l__modiagram_atom_xshift_dim { - \l__MOdiagram_left_atom_position_dim - + \l__MOdiagram_inter_atom_distance_dim + \l__modiagram_left_atom_position_dim + + \l__modiagram_inter_atom_distance_dim } \dim_set_eq:NN - \l__MOdiagram_atom_right_two_s_dim - \l__MOdiagram_atom_two_s_dim - \bool_set_true:N \l__MOdiagram_two_s_right_bool + \l__modiagram_atom_right_two_s_dim + \l__modiagram_atom_two_s_dim + \bool_set_true:N \l__modiagram_two_s_right_bool } - \__MOdiagram_energy_range:N \l__MOdiagram_atom_two_s_dim - \__MOdiagram_node:n { inner~sep=0 , outer~sep=0 } + \__modiagram_energy_range:N \l__modiagram_atom_two_s_dim + \__modiagram_node:n { inner~sep=0 , outer~sep=0 } (2s - \bool_if:NTF \l__MOdiagram_atom_left_bool - { left } - { right } + \bool_if:NTF \l__modiagram_atom_left_bool + {left} + {right} ) - at ( \l__MOdiagram_atom_xshift_dim , \l__MOdiagram_atom_two_s_dim ) + at ( \l__modiagram_atom_xshift_dim , \l__modiagram_atom_two_s_dim ) { - \bool_if:NTF \l__MOdiagram_atom_left_bool + \bool_if:NTF \l__modiagram_atom_left_bool { - \__MOdiagram_get_electron_color:n { 2sleft } - \__MOdiagram_get_electron_up:n { 2sleft } - \__MOdiagram_get_electron_down:n { 2sleft } + \__modiagram_get_electron_color:n {2sleft} + \__modiagram_get_electron_up:n {2sleft} + \__modiagram_get_electron_down:n {2sleft} } { - \__MOdiagram_get_electron_color:n { 2sright } - \__MOdiagram_get_electron_up:n { 2sright } - \__MOdiagram_get_electron_down:n { 2sright } + \__modiagram_get_electron_color:n {2sright} + \__modiagram_get_electron_up:n {2sright} + \__modiagram_get_electron_down:n {2sright} } - \__MOdiagram_AO:ff - { \tl_use:N \l__MOdiagram_AO_two_s_electron_tl } - { \tl_use:N \l__MOdiagram_electron_current_color_tl } + \__modiagram_AO:ff + { \tl_use:N \l__modiagram_AO_two_s_electron_tl } + { \tl_use:N \l__modiagram_electron_current_color_tl } } ; - \bool_if:NTF \l__MOdiagram_atom_left_bool - { \__MOdiagram_get_orbital_label:n { 2s left } } - { \__MOdiagram_get_orbital_label:n { 2s right } } + \bool_if:NTF \l__modiagram_atom_left_bool + { \__modiagram_get_orbital_label:n {2sleft} } + { \__modiagram_get_orbital_label:n {2sright} } } } % --------------------------------------------------------------------------- % % 2p orbital -\dim_new:N \l__MOdiagram_atom_two_p_dim -\dim_new:N \l__MOdiagram_atom_left_two_p_dim -\dim_new:N \l__MOdiagram_atom_right_two_p_dim +\dim_new:N \l__modiagram_atom_two_p_dim +\dim_new:N \l__modiagram_atom_left_two_p_dim +\dim_new:N \l__modiagram_atom_right_two_p_dim -\dim_new:N \l__MOdiagram_atom_px_shift_dim -\dim_new:N \l__MOdiagram_atom_py_shift_dim -\dim_new:N \l__MOdiagram_atom_pz_shift_dim +\dim_new:N \l__modiagram_atom_px_shift_dim +\dim_new:N \l__modiagram_atom_py_shift_dim +\dim_new:N \l__modiagram_atom_pz_shift_dim -\tl_new:N \l__MOdiagram_AO_two_px_electron_tl -\tl_new:N \l__MOdiagram_AO_two_py_electron_tl -\tl_new:N \l__MOdiagram_AO_two_pz_electron_tl +\tl_new:N \l__modiagram_AO_two_px_electron_tl +\tl_new:N \l__modiagram_AO_two_py_electron_tl +\tl_new:N \l__modiagram_AO_two_pz_electron_tl -\bool_new:N \l__MOdiagram_atom_two_p_bool -\bool_new:N \l__MOdiagram_two_p_left_bool -\bool_set_false:N \l__MOdiagram_two_p_left_bool -\bool_new:N \l__MOdiagram_two_p_right_bool -\bool_set_false:N \l__MOdiagram_two_p_right_bool +\bool_new:N \l__modiagram_atom_two_p_bool +\bool_new:N \l__modiagram_two_p_left_bool +\bool_set_false:N \l__modiagram_two_p_left_bool +\bool_new:N \l__modiagram_two_p_right_bool +\bool_set_false:N \l__modiagram_two_p_right_bool % read 2p argument -\cs_new_protected:Npn \__MOdiagram_two_p_set:n #1 +\cs_new_protected:Npn \__modiagram_two_p_set:n #1 { - \bool_set_true:N \l__MOdiagram_atom_two_p_bool - \tl_if_in:onTF { #1 } { ; } - { \__MOdiagram_two_p_set_aux_i:n #1 \q_stop } + \bool_set_true:N \l__modiagram_atom_two_p_bool + \tl_if_in:onTF {#1} {;} + { \__modiagram_two_p_set_aux_i:n #1 \q_stop } { - \tl_clear:N \l__MOdiagram_AO_two_px_electron_tl - \tl_clear:N \l__MOdiagram_AO_two_py_electron_tl - \tl_clear:N \l__MOdiagram_AO_two_pz_electron_tl - \tl_if_blank:nTF { #1 } - { \dim_set:Nn \l__MOdiagram_atom_two_p_dim { 5 cm } } - { \dim_set:Nn \l__MOdiagram_atom_two_p_dim { #1 cm } } + \tl_clear:N \l__modiagram_AO_two_px_electron_tl + \tl_clear:N \l__modiagram_AO_two_py_electron_tl + \tl_clear:N \l__modiagram_AO_two_pz_electron_tl + \tl_if_blank:nTF {#1} + { \dim_set:Nn \l__modiagram_atom_two_p_dim { 5 cm } } + { \dim_set:Nn \l__modiagram_atom_two_p_dim { #1 cm } } } } -\cs_new_protected:Npn \__MOdiagram_two_p_set_aux_i:n #1;#2 \q_stop +\cs_new_protected:Npn \__modiagram_two_p_set_aux_i:n #1;#2 \q_stop { - \tl_if_blank:nTF { #1 } - { \dim_set:Nn \l__MOdiagram_atom_two_p_dim { 5 cm } } - { \dim_set:Nn \l__MOdiagram_atom_two_p_dim { #1 cm } } - \__MOdiagram_two_p_set_aux_ii:n { #2 } + \tl_if_blank:nTF {#1} + { \dim_set:Nn \l__modiagram_atom_two_p_dim { 5 cm } } + { \dim_set:Nn \l__modiagram_atom_two_p_dim { #1 cm } } + \__modiagram_two_p_set_aux_ii:n {#2} } -\NewDocumentCommand \__MOdiagram_two_p_set_aux_ii:n - { > { \SplitArgument { 2 } { , } } m } - { \__MOdiagram_two_p_set_aux_iii:nnn #1 } +\NewDocumentCommand \__modiagram_two_p_set_aux_ii:n + { > { \SplitArgument {2} {,} } m } + { \__modiagram_two_p_set_aux_iii:nnn #1 } -\cs_set_nopar:Npn \__MOdiagram_two_p_set_aux_iii:nnn #1#2#3 +\cs_set_nopar:Npn \__modiagram_two_p_set_aux_iii:nnn #1#2#3 { - \tl_if_blank:nF { #1 } { \tl_set:Nn \l__MOdiagram_AO_two_px_electron_tl { #1 } } - \tl_if_blank:nF { #2 } { \tl_set:Nn \l__MOdiagram_AO_two_py_electron_tl { #2 } } - \tl_if_blank:nF { #3 } { \tl_set:Nn \l__MOdiagram_AO_two_pz_electron_tl { #3 } } + \tl_if_blank:nF {#1} { \tl_set:Nn \l__modiagram_AO_two_px_electron_tl {#1} } + \tl_if_blank:nF {#2} { \tl_set:Nn \l__modiagram_AO_two_py_electron_tl {#2} } + \tl_if_blank:nF {#3} { \tl_set:Nn \l__modiagram_AO_two_pz_electron_tl {#3} } } % place the x, y, and z orbitals -\cs_new_protected:Npn \__MOdiagram_p_orbitals_shift:nnn #1#2#3 +\cs_new_protected:Npn \__modiagram_p_orbitals_shift:nnn #1#2#3 { - \fp_set:Nn \l__MOdiagram_tmpa_fp { \dim_to_fp:n { \l__MOdiagram_AO_width_dim } } + \fp_set:Nn \l__modiagram_tmpa_fp { \dim_to_fp:n { \l__modiagram_AO_width_dim } } { - \fp_set:Nn \l__MOdiagram_tmpa_fp { #1 * \l__MOdiagram_tmpa_fp } - \dim_gset:Nn \l__MOdiagram_atom_px_shift_dim { \fp_to_dim:N \l__MOdiagram_tmpa_fp } + \fp_set:Nn \l__modiagram_tmpa_fp { #1 * \l__modiagram_tmpa_fp } + \dim_gset:Nn \l__modiagram_atom_px_shift_dim { \fp_to_dim:N \l__modiagram_tmpa_fp } } { - \fp_set:Nn \l__MOdiagram_tmpa_fp { #2 * \l__MOdiagram_tmpa_fp } - \dim_gset:Nn \l__MOdiagram_atom_py_shift_dim { \fp_to_dim:N \l__MOdiagram_tmpa_fp } + \fp_set:Nn \l__modiagram_tmpa_fp { #2 * \l__modiagram_tmpa_fp } + \dim_gset:Nn \l__modiagram_atom_py_shift_dim { \fp_to_dim:N \l__modiagram_tmpa_fp } } { - \fp_set:Nn \l__MOdiagram_tmpa_fp { #3 * \l__MOdiagram_tmpa_fp } - \dim_gset:Nn \l__MOdiagram_atom_pz_shift_dim { \fp_to_dim:N \l__MOdiagram_tmpa_fp } + \fp_set:Nn \l__modiagram_tmpa_fp { #3 * \l__modiagram_tmpa_fp } + \dim_gset:Nn \l__modiagram_atom_pz_shift_dim { \fp_to_dim:N \l__modiagram_tmpa_fp } } } % display 2p orbitals -\cs_new_protected:Npn \__MOdiagram_two_p: +\cs_new_protected:Npn \__modiagram_two_p: { - \bool_if:NT \l__MOdiagram_atom_two_p_bool + \bool_if:NT \l__modiagram_atom_two_p_bool { - \bool_if:NTF \l__MOdiagram_atom_left_bool + \bool_if:NTF \l__modiagram_atom_left_bool { \dim_set_eq:NN - \l__MOdiagram_atom_xshift_dim - \l__MOdiagram_left_atom_position_dim - \__MOdiagram_p_orbitals_shift:nnn { -4 } { -2 } { 0 } + \l__modiagram_atom_xshift_dim + \l__modiagram_left_atom_position_dim + \__modiagram_p_orbitals_shift:nnn {-4} {-2} {0} \dim_set_eq:NN - \l__MOdiagram_atom_left_two_p_dim - \l__MOdiagram_atom_two_p_dim + \l__modiagram_atom_left_two_p_dim + \l__modiagram_atom_two_p_dim \dim_set_eq:NN \l_energy_axis_dim - \l__MOdiagram_atom_px_shift_dim - \bool_set_true:N \l__MOdiagram_two_p_left_bool + \l__modiagram_atom_px_shift_dim + \bool_set_true:N \l__modiagram_two_p_left_bool } { - \dim_set:Nn \l__MOdiagram_atom_xshift_dim + \dim_set:Nn \l__modiagram_atom_xshift_dim { - \l__MOdiagram_left_atom_position_dim - + \l__MOdiagram_inter_atom_distance_dim + \l__modiagram_left_atom_position_dim + + \l__modiagram_inter_atom_distance_dim } - \__MOdiagram_p_orbitals_shift:nnn { 0 } { 2 } { 4 } + \__modiagram_p_orbitals_shift:nnn {0} {2} {4} \dim_set_eq:NN - \l__MOdiagram_atom_right_two_p_dim - \l__MOdiagram_atom_two_p_dim - \bool_set_true:N \l__MOdiagram_two_p_right_bool + \l__modiagram_atom_right_two_p_dim + \l__modiagram_atom_two_p_dim + \bool_set_true:N \l__modiagram_two_p_right_bool } - \__MOdiagram_energy_range:N \l__MOdiagram_atom_two_p_dim - \__MOdiagram_node:n { inner~sep=0 , outer~sep=0 } + \__modiagram_energy_range:N \l__modiagram_atom_two_p_dim + \__modiagram_node:n { inner~sep=0 , outer~sep=0 } (2pz - \bool_if:NTF \l__MOdiagram_atom_left_bool - { left } - { right } + \bool_if:NTF \l__modiagram_atom_left_bool + {left} + {right} ) at ( - \l__MOdiagram_atom_xshift_dim + \l__MOdiagram_atom_pz_shift_dim , - \l__MOdiagram_atom_two_p_dim + \l__modiagram_atom_xshift_dim + \l__modiagram_atom_pz_shift_dim , + \l__modiagram_atom_two_p_dim ) { - \bool_if:NTF \l__MOdiagram_atom_left_bool + \bool_if:NTF \l__modiagram_atom_left_bool { - \__MOdiagram_get_electron_color:n { 2pz left } - \__MOdiagram_get_electron_up:n { 2pz left } - \__MOdiagram_get_electron_down:n { 2pz left } + \__modiagram_get_electron_color:n {2pzleft} + \__modiagram_get_electron_up:n {2pzleft} + \__modiagram_get_electron_down:n {2pzleft} } { - \__MOdiagram_get_electron_color:n { 2pz right } - \__MOdiagram_get_electron_up:n { 2pz right } - \__MOdiagram_get_electron_down:n { 2pz right } + \__modiagram_get_electron_color:n {2pzright} + \__modiagram_get_electron_up:n {2pzright} + \__modiagram_get_electron_down:n {2pzright} } - \__MOdiagram_AO:ff - { \tl_use:N \l__MOdiagram_AO_two_pz_electron_tl } - { \tl_use:N \l__MOdiagram_electron_current_color_tl } + \__modiagram_AO:ff + { \tl_use:N \l__modiagram_AO_two_pz_electron_tl } + { \tl_use:N \l__modiagram_electron_current_color_tl } } ; - \bool_if:NTF \l__MOdiagram_atom_left_bool - { \__MOdiagram_get_orbital_label:n { 2pz left } } - { \__MOdiagram_get_orbital_label:n { 2pz right } } - \__MOdiagram_node:n { inner~sep=0 , outer~sep=0 } + \bool_if:NTF \l__modiagram_atom_left_bool + { \__modiagram_get_orbital_label:n {2pzleft} } + { \__modiagram_get_orbital_label:n {2pzright} } + \__modiagram_node:n { inner~sep=0 , outer~sep=0 } (2py - \bool_if:NTF \l__MOdiagram_atom_left_bool - { left } - { right } + \bool_if:NTF \l__modiagram_atom_left_bool + {left} + {right} ) at ( - \l__MOdiagram_atom_xshift_dim + \l__MOdiagram_atom_py_shift_dim , - \l__MOdiagram_atom_two_p_dim + \l__modiagram_atom_xshift_dim + \l__modiagram_atom_py_shift_dim , + \l__modiagram_atom_two_p_dim ) { - \bool_if:NTF \l__MOdiagram_atom_left_bool + \bool_if:NTF \l__modiagram_atom_left_bool { - \__MOdiagram_get_electron_color:n { 2py left } - \__MOdiagram_get_electron_up:n { 2py left } - \__MOdiagram_get_electron_down:n { 2py left } + \__modiagram_get_electron_color:n {2pyleft} + \__modiagram_get_electron_up:n {2pyleft} + \__modiagram_get_electron_down:n {2pyleft} } { - \__MOdiagram_get_electron_color:n { 2py right } - \__MOdiagram_get_electron_up:n { 2py right } - \__MOdiagram_get_electron_down:n { 2py right } + \__modiagram_get_electron_color:n {2pyright} + \__modiagram_get_electron_up:n {2pyright} + \__modiagram_get_electron_down:n {2pyright} } - \__MOdiagram_AO:ff - { \tl_use:N \l__MOdiagram_AO_two_py_electron_tl } - { \tl_use:N \l__MOdiagram_electron_current_color_tl } + \__modiagram_AO:ff + { \tl_use:N \l__modiagram_AO_two_py_electron_tl } + { \tl_use:N \l__modiagram_electron_current_color_tl } } ; - \bool_if:NTF \l__MOdiagram_atom_left_bool - { \__MOdiagram_get_orbital_label:n { 2py left } } - { \__MOdiagram_get_orbital_label:n { 2py right } } - \__MOdiagram_node:n { inner~sep=0 , outer~sep=0 } + \bool_if:NTF \l__modiagram_atom_left_bool + { \__modiagram_get_orbital_label:n {2pyleft} } + { \__modiagram_get_orbital_label:n {2pyright} } + \__modiagram_node:n { inner~sep=0 , outer~sep=0 } (2px - \bool_if:NTF \l__MOdiagram_atom_left_bool - { left } - { right } + \bool_if:NTF \l__modiagram_atom_left_bool + {left} + {right} ) at ( - \l__MOdiagram_atom_xshift_dim + \l__MOdiagram_atom_px_shift_dim , - \l__MOdiagram_atom_two_p_dim + \l__modiagram_atom_xshift_dim + \l__modiagram_atom_px_shift_dim , + \l__modiagram_atom_two_p_dim ) { - \bool_if:NTF \l__MOdiagram_atom_left_bool + \bool_if:NTF \l__modiagram_atom_left_bool { - \__MOdiagram_get_electron_color:n { 2px left } - \__MOdiagram_get_electron_up:n { 2px left } - \__MOdiagram_get_electron_down:n { 2px left } + \__modiagram_get_electron_color:n {2pxleft} + \__modiagram_get_electron_up:n {2pxleft} + \__modiagram_get_electron_down:n {2pxleft} } { - \__MOdiagram_get_electron_color:n { 2px right } - \__MOdiagram_get_electron_up:n { 2px right } - \__MOdiagram_get_electron_down:n { 2px right } + \__modiagram_get_electron_color:n {2pxright} + \__modiagram_get_electron_up:n {2pxright} + \__modiagram_get_electron_down:n {2pxright} } - \__MOdiagram_AO:ff - { \tl_use:N \l__MOdiagram_AO_two_px_electron_tl } - { \tl_use:N \l__MOdiagram_electron_current_color_tl } + \__modiagram_AO:ff + { \tl_use:N \l__modiagram_AO_two_px_electron_tl } + { \tl_use:N \l__modiagram_electron_current_color_tl } } ; - \bool_if:NTF \l__MOdiagram_atom_left_bool - { \__MOdiagram_get_orbital_label:n { 2px left } } - { \__MOdiagram_get_orbital_label:n { 2px right } } + \bool_if:NTF \l__modiagram_atom_left_bool + { \__modiagram_get_orbital_label:n {2pxleft} } + { \__modiagram_get_orbital_label:n {2pxright} } } } % --------------------------------------------------------------------------- % % draw MOs -\tl_new:N \l__MOdiagram_molecule_name_tl +\tl_new:N \l__modiagram_molecule_name_tl -\NewDocumentCommand \__MOdiagram_molecule: { o m } +\NewDocumentCommand \__modiagram_molecule: {om} { \bool_if:nTF { - \l__MOdiagram_left_atom_placed_bool + \l__modiagram_left_atom_placed_bool && - \l__MOdiagram_right_atom_placed_bool + \l__modiagram_right_atom_placed_bool } { - \__MOdiagram_molecule_disable: - \keys_set:nn { MOdiagram / molecule } { #2 } - \IfNoValueF { #1 } - { \tl_set:Nn \l__MOdiagram_molecule_name_tl { #1 } } - \__MOdiagram_one_mo_s: - \__MOdiagram_two_mo_s: - \__MOdiagram_two_mo_p: -% \__MOdiagram_three_mo_s: -% \__MOdiagram_three_mo_p: -% \__MOdiagram_four_mo_s: + \__modiagram_molecule_disable: + \keys_set:nn {modiagram/molecule} {#2} + \IfNoValueF {#1} + { \tl_set:Nn \l__modiagram_molecule_name_tl {#1} } + \__modiagram_one_mo_s: + \__modiagram_two_mo_s: + \__modiagram_two_mo_p: +% \__modiagram_three_mo_s: +% \__modiagram_three_mo_p: +% \__modiagram_four_mo_s: } - { \msg_error:nn { MOdiagram } { missing-atom } } + { \msg_error:nn {modiagram} {missing-atom} } } % these are going to be our molecule arguments: -\keys_define:nn { MOdiagram / molecule } +\keys_define:nn {modiagram/molecule} { - 1sMO .code:n = { \__MOdiagram_one_mo_s_set:n { #1 } } , + 1sMO .code:n = { \__modiagram_one_mo_s_set:n {#1} } , 1sMO .default:n = { .5 ; pair , pair } , - 2sMO .code:n = { \__MOdiagram_two_mo_s_set:n { #1 } } , + 2sMO .code:n = { \__modiagram_two_mo_s_set:n {#1} } , 2sMO .default:n = { .5 ; pair , pair } , - 2pMO .code:n = { \__MOdiagram_two_mo_p_set:n { #1 } } , + 2pMO .code:n = { \__modiagram_two_mo_p_set:n {#1} } , 2pMO .default:n = { 1.5 , .5 ; pair , pair , pair , pair , pair , pair } , - color .code:n = { \__MOdiagram_electron_color_set:n { #1 } } , - label .code:n = { \__MOdiagram_orbital_label_set:n { #1 } } , - up-el-pos .code:n = { \__MOdiagram_electron_up_set:n { #1 } } , - down-el-pos .code:n = { \__MOdiagram_electron_down_set:n { #1 } } + color .code:n = { \__modiagram_electron_color_set:n {#1} } , + label .code:n = { \__modiagram_orbital_label_set:n {#1} } , + up-el-pos .code:n = { \__modiagram_electron_up_set:n {#1} } , + down-el-pos .code:n = { \__modiagram_electron_down_set:n {#1} } } % --------------------------------------------------------------------------- % % 1sigma orbitals -\dim_new:N \l__MOdiagram_molecule_one_sigma_dim -\dim_new:N \l__MOdiagram_molecule_one_sigmas_dim +\dim_new:N \l__modiagram_molecule_one_sigma_dim +\dim_new:N \l__modiagram_molecule_one_sigmas_dim -\tl_new:N \l__MOdiagram_MO_one_sigma_s_electron_tl -\tl_new:N \l__MOdiagram_MO_one_sigmas_s_electron_tl -\bool_new:N \l__MOdiagram_molecule_one_mo_s_bool +\tl_new:N \l__modiagram_MO_one_sigma_s_electron_tl +\tl_new:N \l__modiagram_MO_one_sigmas_s_electron_tl +\bool_new:N \l__modiagram_molecule_one_mo_s_bool % read 1sMO argument -\cs_new_protected:Npn \__MOdiagram_one_mo_s_set:n #1 +\cs_new_protected:Npn \__modiagram_one_mo_s_set:n #1 { - \bool_set_true:N \l__MOdiagram_molecule_one_mo_s_bool - \tl_if_in:onTF { #1 } { ; } - { \__MOdiagram_one_mo_s_set_aux:n #1 \q_stop } - { \__MOdiagram_one_mo_s_set_energy:n { #1 } } + \bool_set_true:N \l__modiagram_molecule_one_mo_s_bool + \tl_if_in:onTF {#1} { ; } + { \__modiagram_one_mo_s_set_aux:n #1 \q_stop } + { \__modiagram_one_mo_s_set_energy:n {#1} } } -\cs_new_protected:Npn \__MOdiagram_one_mo_s_set_aux:n #1;#2 \q_stop +\cs_new_protected:Npn \__modiagram_one_mo_s_set_aux:n #1;#2 \q_stop { - \__MOdiagram_one_mo_s_set_energy:n { #1 } - \__MOdiagram_one_mo_s_set_electrons:n { #2 } + \__modiagram_one_mo_s_set_energy:n {#1} + \__modiagram_one_mo_s_set_electrons:n {#2} } -\cs_new_protected:Npn \__MOdiagram_one_mo_s_set_energy:n #1 +\cs_new_protected:Npn \__modiagram_one_mo_s_set_energy:n #1 { - \tl_if_in:onTF { #1 } { / } - { \__MOdiagram_one_mo_s_set_energy_aux:n #1 \q_stop } + \tl_if_in:onTF {#1} {/} + { \__modiagram_one_mo_s_set_energy_aux:n #1 \q_stop } { - \tl_if_blank:nTF { #1 } + \tl_if_blank:nTF {#1} { - \dim_set:Nn \l__MOdiagram_molecule_one_sigma_dim { .5 cm } - \dim_set:Nn \l__MOdiagram_molecule_one_sigmas_dim { .5 cm } + \dim_set:Nn \l__modiagram_molecule_one_sigma_dim {.5cm} + \dim_set:Nn \l__modiagram_molecule_one_sigmas_dim {.5cm} } { - \dim_set:Nn \l__MOdiagram_molecule_one_sigma_dim { #1 cm } - \dim_set:Nn \l__MOdiagram_molecule_one_sigmas_dim { #1 cm } + \dim_set:Nn \l__modiagram_molecule_one_sigma_dim {#1cm} + \dim_set:Nn \l__modiagram_molecule_one_sigmas_dim {#1cm} } } } -\cs_new_protected:Npn \__MOdiagram_one_mo_s_set_energy_aux:n #1/#2 \q_stop +\cs_new_protected:Npn \__modiagram_one_mo_s_set_energy_aux:n #1/#2 \q_stop { - \tl_if_blank:nTF { #1 } - { \dim_set:Nn \l__MOdiagram_molecule_one_sigma_dim { .5 cm } } - { \dim_set:Nn \l__MOdiagram_molecule_one_sigma_dim { #1 cm } } - \tl_if_blank:nTF { #2 } - { \dim_set:Nn \l__MOdiagram_molecule_one_sigmas_dim { .5 cm } } - { \dim_set:Nn \l__MOdiagram_molecule_one_sigmas_dim { #2 cm } } + \tl_if_blank:nTF {#1} + { \dim_set:Nn \l__modiagram_molecule_one_sigma_dim {.5cm} } + { \dim_set:Nn \l__modiagram_molecule_one_sigma_dim {#1cm} } + \tl_if_blank:nTF {#2} + { \dim_set:Nn \l__modiagram_molecule_one_sigmas_dim {.5cm} } + { \dim_set:Nn \l__modiagram_molecule_one_sigmas_dim {#2cm} } } -\cs_set_nopar:Npn \__MOdiagram_one_mo_s_set_electrons:n #1 +\cs_set_nopar:Npn \__modiagram_one_mo_s_set_electrons:n #1 { - \tl_if_in:onTF { #1 } { , } - { \__MOdiagram_one_mo_s_set_electrons_aux:n #1 \q_stop } - { \tl_set:Nn \l__MOdiagram_MO_one_sigma_s_electron_tl { #1 } } + \tl_if_in:onTF {#1} {,} + { \__modiagram_one_mo_s_set_electrons_aux:n #1 \q_stop } + { \tl_set:Nn \l__modiagram_MO_one_sigma_s_electron_tl {#1} } } -\cs_new_protected:Npn \__MOdiagram_one_mo_s_set_electrons_aux:n #1,#2 \q_stop +\cs_new_protected:Npn \__modiagram_one_mo_s_set_electrons_aux:n #1,#2 \q_stop { - \tl_set:Nn \l__MOdiagram_MO_one_sigma_s_electron_tl { #1 } - \tl_set:Nn \l__MOdiagram_MO_one_sigmas_s_electron_tl { #2 } + \tl_set:Nn \l__modiagram_MO_one_sigma_s_electron_tl {#1} + \tl_set:Nn \l__modiagram_MO_one_sigmas_s_electron_tl {#2} } % display 1sigma/sigma* MOs: -\cs_new_protected:Npn \__MOdiagram_one_mo_s: +\cs_new_protected:Npn \__modiagram_one_mo_s: { - \bool_if:NT \l__MOdiagram_molecule_one_mo_s_bool + \bool_if:NT \l__modiagram_molecule_one_mo_s_bool { \bool_if:nF - { \l__MOdiagram_one_s_left_bool && \l__MOdiagram_one_s_right_bool } - { \msg_error:nnxx { MOdiagram } { missing-AO } { 1sMO } { 1s } } - \__MOdiagram_split_energy:nNN { one_s } - \l__MOdiagram_molecule_one_sigma_dim - \l__MOdiagram_molecule_one_sigmas_dim - \__MOdiagram_energy_range:N \l__MOdiagram_energy_gain_dim - \__MOdiagram_energy_range:N \l__MOdiagram_energy_loss_dim - \__MOdiagram_node:n { inner~sep=0 , outer~sep=0 } + { \l__modiagram_one_s_left_bool && \l__modiagram_one_s_right_bool } + { \msg_error:nnnn {modiagram} {missing-AO} {1sMO} {1s} } + \__modiagram_split_energy:nNN {one_s} + \l__modiagram_molecule_one_sigma_dim + \l__modiagram_molecule_one_sigmas_dim + \__modiagram_energy_range:N \l__modiagram_energy_gain_dim + \__modiagram_energy_range:N \l__modiagram_energy_loss_dim + \__modiagram_node:n { inner~sep=0 , outer~sep=0 } (1sigma) at ( - \l__MOdiagram_molecule_position_dim , - \l__MOdiagram_energy_gain_dim + \l__modiagram_molecule_position_dim , + \l__modiagram_energy_gain_dim ) { - \__MOdiagram_get_electron_color:n { 1sigma } - \__MOdiagram_get_electron_up:n { 1sigma } - \__MOdiagram_get_electron_down:n { 1sigma } - \__MOdiagram_AO:ff - { \tl_use:N \l__MOdiagram_MO_one_sigma_s_electron_tl } - { \tl_use:N \l__MOdiagram_electron_current_color_tl } + \__modiagram_get_electron_color:n {1sigma} + \__modiagram_get_electron_up:n {1sigma} + \__modiagram_get_electron_down:n {1sigma} + \__modiagram_AO:ff + { \tl_use:N \l__modiagram_MO_one_sigma_s_electron_tl } + { \tl_use:N \l__modiagram_electron_current_color_tl } } ; - \__MOdiagram_get_orbital_label:n { 1sigma } - \__MOdiagram_node:n { inner~sep=0 , outer~sep=0 } + \__modiagram_get_orbital_label:n { 1sigma } + \__modiagram_node:n { inner~sep=0 , outer~sep=0 } (1sigma*) at ( - \l__MOdiagram_molecule_position_dim , - \l__MOdiagram_energy_loss_dim + \l__modiagram_molecule_position_dim , + \l__modiagram_energy_loss_dim ) { - \__MOdiagram_get_electron_color:n { 1sigma* } - \__MOdiagram_get_electron_up:n { 1sigma* } - \__MOdiagram_get_electron_down:n { 1sigma* } - \__MOdiagram_AO:ff - { \tl_use:N \l__MOdiagram_MO_one_sigmas_s_electron_tl } - { \tl_use:N \l__MOdiagram_electron_current_color_tl } + \__modiagram_get_electron_color:n {1sigma*} + \__modiagram_get_electron_up:n {1sigma*} + \__modiagram_get_electron_down:n {1sigma*} + \__modiagram_AO:ff + { \tl_use:N \l__modiagram_MO_one_sigmas_s_electron_tl } + { \tl_use:N \l__modiagram_electron_current_color_tl } } ; - \__MOdiagram_get_orbital_label:n { 1sigma* } - \__MOdiagram_draw:f - { \l__MOdiagram_lines_tl } + \__modiagram_get_orbital_label:n {1sigma*} + \__modiagram_draw:f + { \l__modiagram_lines_tl } (1s left.east) -- (1sigma.west) (1sigma.east) -- (1s right.west) (1s left.east) -- (1sigma*.west) (1sigma*.east) -- (1s right.west) ; } @@ -892,115 +919,115 @@ % --------------------------------------------------------------------------- % % 2sigma orbitals -\dim_new:N \l__MOdiagram_molecule_two_sigma_dim -\dim_new:N \l__MOdiagram_molecule_two_sigmas_dim +\dim_new:N \l__modiagram_molecule_two_sigma_dim +\dim_new:N \l__modiagram_molecule_two_sigmas_dim -\tl_new:N \l__MOdiagram_MO_two_sigma_s_electron_tl -\tl_new:N \l__MOdiagram_MO_two_sigmas_s_electron_tl -\bool_new:N \l__MOdiagram_molecule_two_mo_s_bool +\tl_new:N \l__modiagram_MO_two_sigma_s_electron_tl +\tl_new:N \l__modiagram_MO_two_sigmas_s_electron_tl +\bool_new:N \l__modiagram_molecule_two_mo_s_bool % read 2sMO argument -\cs_new_protected:Npn \__MOdiagram_two_mo_s_set:n #1 +\cs_new_protected:Npn \__modiagram_two_mo_s_set:n #1 { - \bool_set_true:N \l__MOdiagram_molecule_two_mo_s_bool - \tl_if_in:onTF { #1 } { ; } - { \__MOdiagram_two_mo_s_set_aux:n #1 \q_stop } - { \__MOdiagram_two_mo_s_set_energy:n { #1 } } + \bool_set_true:N \l__modiagram_molecule_two_mo_s_bool + \tl_if_in:onTF {#1} {;} + { \__modiagram_two_mo_s_set_aux:n #1 \q_stop } + { \__modiagram_two_mo_s_set_energy:n {#1} } } -\cs_new_protected:Npn \__MOdiagram_two_mo_s_set_aux:n #1;#2 \q_stop +\cs_new_protected:Npn \__modiagram_two_mo_s_set_aux:n #1;#2 \q_stop { - \__MOdiagram_two_mo_s_set_energy:n { #1 } - \__MOdiagram_two_mo_s_set_electrons:n { #2 } + \__modiagram_two_mo_s_set_energy:n {#1} + \__modiagram_two_mo_s_set_electrons:n {#2} } -\cs_new_protected:Npn \__MOdiagram_two_mo_s_set_energy:n #1 +\cs_new_protected:Npn \__modiagram_two_mo_s_set_energy:n #1 { - \tl_if_in:onTF { #1 } { / } - { \__MOdiagram_two_mo_s_set_energy_aux:n #1 \q_stop } + \tl_if_in:onTF {#1} {/} + { \__modiagram_two_mo_s_set_energy_aux:n #1 \q_stop } { - \tl_if_blank:nTF { #1 } + \tl_if_blank:nTF {#1} { - \dim_set:Nn \l__MOdiagram_molecule_two_sigma_dim { .5 cm } - \dim_set:Nn \l__MOdiagram_molecule_two_sigmas_dim { .5 cm } + \dim_set:Nn \l__modiagram_molecule_two_sigma_dim {.5cm} + \dim_set:Nn \l__modiagram_molecule_two_sigmas_dim {.5cm} } { - \dim_set:Nn \l__MOdiagram_molecule_two_sigma_dim { #1 cm } - \dim_set:Nn \l__MOdiagram_molecule_two_sigmas_dim { #1 cm } + \dim_set:Nn \l__modiagram_molecule_two_sigma_dim {#1cm} + \dim_set:Nn \l__modiagram_molecule_two_sigmas_dim {#1cm} } } } -\cs_new_protected:Npn \__MOdiagram_two_mo_s_set_energy_aux:n #1/#2 \q_stop +\cs_new_protected:Npn \__modiagram_two_mo_s_set_energy_aux:n #1/#2 \q_stop { - \tl_if_blank:nTF { #1 } - { \dim_set:Nn \l__MOdiagram_molecule_two_sigma_dim { .5 cm } } - { \dim_set:Nn \l__MOdiagram_molecule_two_sigma_dim { #1 cm } } - \tl_if_blank:nTF { #2 } - { \dim_set:Nn \l__MOdiagram_molecule_two_sigmas_dim { .5 cm } } - { \dim_set:Nn \l__MOdiagram_molecule_two_sigmas_dim { #2 cm } } + \tl_if_blank:nTF {#1} + { \dim_set:Nn \l__modiagram_molecule_two_sigma_dim {.5cm} } + { \dim_set:Nn \l__modiagram_molecule_two_sigma_dim {#1cm} } + \tl_if_blank:nTF {#2} + { \dim_set:Nn \l__modiagram_molecule_two_sigmas_dim {.5cm} } + { \dim_set:Nn \l__modiagram_molecule_two_sigmas_dim {#2cm} } } -\cs_set_nopar:Npn \__MOdiagram_two_mo_s_set_electrons:n #1 +\cs_set_nopar:Npn \__modiagram_two_mo_s_set_electrons:n #1 { - \tl_if_in:onTF { #1 } { , } - { \__MOdiagram_two_mo_s_set_electrons_aux:n #1 \q_stop } - { \tl_set:Nn \l__MOdiagram_MO_two_sigma_s_electron_tl { #1 } } + \tl_if_in:onTF {#1} {,} + { \__modiagram_two_mo_s_set_electrons_aux:n #1 \q_stop } + { \tl_set:Nn \l__modiagram_MO_two_sigma_s_electron_tl {#1} } } -\cs_new_protected:Npn \__MOdiagram_two_mo_s_set_electrons_aux:n #1,#2 \q_stop +\cs_new_protected:Npn \__modiagram_two_mo_s_set_electrons_aux:n #1,#2 \q_stop { - \tl_set:Nn \l__MOdiagram_MO_two_sigma_s_electron_tl { #1 } - \tl_set:Nn \l__MOdiagram_MO_two_sigmas_s_electron_tl { #2 } + \tl_set:Nn \l__modiagram_MO_two_sigma_s_electron_tl {#1} + \tl_set:Nn \l__modiagram_MO_two_sigmas_s_electron_tl {#2} } % display 2sigma/sigma* MOs: -\cs_new_protected:Npn \__MOdiagram_two_mo_s: +\cs_new_protected:Npn \__modiagram_two_mo_s: { - \bool_if:NT \l__MOdiagram_molecule_two_mo_s_bool + \bool_if:NT \l__modiagram_molecule_two_mo_s_bool { \bool_if:nF - { \l__MOdiagram_two_s_left_bool && \l__MOdiagram_two_s_right_bool } - { \msg_error:nnxx { MOdiagram } { missing-AO } { 2sMO } { 2s } } - \__MOdiagram_split_energy:nNN { two_s } - \l__MOdiagram_molecule_two_sigma_dim - \l__MOdiagram_molecule_two_sigmas_dim - \__MOdiagram_energy_range:N \l__MOdiagram_energy_gain_dim - \__MOdiagram_energy_range:N \l__MOdiagram_energy_loss_dim - \__MOdiagram_node:n { inner~sep=0 , outer~sep=0 } + { \l__modiagram_two_s_left_bool && \l__modiagram_two_s_right_bool } + { \msg_error:nnnn {modiagram} {missing-AO} {2sMO} {2s} } + \__modiagram_split_energy:nNN {two_s} + \l__modiagram_molecule_two_sigma_dim + \l__modiagram_molecule_two_sigmas_dim + \__modiagram_energy_range:N \l__modiagram_energy_gain_dim + \__modiagram_energy_range:N \l__modiagram_energy_loss_dim + \__modiagram_node:n { inner~sep=0 , outer~sep=0 } (2sigma) at ( - \l__MOdiagram_molecule_position_dim , - \l__MOdiagram_energy_gain_dim + \l__modiagram_molecule_position_dim , + \l__modiagram_energy_gain_dim ) { - \__MOdiagram_get_electron_color:n { 2sigma } - \__MOdiagram_get_electron_up:n { 2sigma } - \__MOdiagram_get_electron_down:n { 2sigma } - \__MOdiagram_AO:ff - { \tl_use:N \l__MOdiagram_MO_two_sigma_s_electron_tl } - { \tl_use:N \l__MOdiagram_electron_current_color_tl } + \__modiagram_get_electron_color:n {2sigma} + \__modiagram_get_electron_up:n {2sigma} + \__modiagram_get_electron_down:n {2sigma} + \__modiagram_AO:ff + { \tl_use:N \l__modiagram_MO_two_sigma_s_electron_tl } + { \tl_use:N \l__modiagram_electron_current_color_tl } } ; - \__MOdiagram_get_orbital_label:n { 2sigma } - \__MOdiagram_node:n { inner~sep=0 , outer~sep=0 } + \__modiagram_get_orbital_label:n {2sigma} + \__modiagram_node:n { inner~sep=0 , outer~sep=0 } (2sigma*) at ( - \l__MOdiagram_molecule_position_dim , - \l__MOdiagram_energy_loss_dim + \l__modiagram_molecule_position_dim , + \l__modiagram_energy_loss_dim ) { - \__MOdiagram_get_electron_color:n { 2sigma* } - \__MOdiagram_get_electron_up:n { 2sigma* } - \__MOdiagram_get_electron_down:n { 2sigma* } - \__MOdiagram_AO:ff - { \tl_use:N \l__MOdiagram_MO_two_sigmas_s_electron_tl } - { \tl_use:N \l__MOdiagram_electron_current_color_tl } + \__modiagram_get_electron_color:n {2sigma*} + \__modiagram_get_electron_up:n {2sigma*} + \__modiagram_get_electron_down:n {2sigma*} + \__modiagram_AO:ff + { \tl_use:N \l__modiagram_MO_two_sigmas_s_electron_tl } + { \tl_use:N \l__modiagram_electron_current_color_tl } } ; - \__MOdiagram_get_orbital_label:n { 2sigma* } - \__MOdiagram_draw:f - { \l__MOdiagram_lines_tl } + \__modiagram_get_orbital_label:n {2sigma*} + \__modiagram_draw:f + { \l__modiagram_lines_tl } (2s left.east) -- (2sigma.west) (2sigma.east) -- (2s right.west) (2s left.east) -- (2sigma*.west) (2sigma*.east) -- (2s right.west) ; } @@ -1008,236 +1035,236 @@ % --------------------------------------------------------------------------- % % 2psigma and 2ppi orbitals -\dim_new:N \l__MOdiagram_molecule_two_psigma_dim -\dim_new:N \l__MOdiagram_molecule_two_psigmas_dim -\dim_new:N \l__MOdiagram_molecule_two_ppi_dim -\dim_new:N \l__MOdiagram_molecule_two_ppis_dim +\dim_new:N \l__modiagram_molecule_two_psigma_dim +\dim_new:N \l__modiagram_molecule_two_psigmas_dim +\dim_new:N \l__modiagram_molecule_two_ppi_dim +\dim_new:N \l__modiagram_molecule_two_ppis_dim -\tl_new:N \l__MOdiagram_MO_two_sigma_p_electron_tl -\tl_new:N \l__MOdiagram_MO_two_sigmas_p_electron_tl -\tl_new:N \l__MOdiagram_MO_two_piy_p_electron_tl -\tl_new:N \l__MOdiagram_MO_two_piys_p_electron_tl -\tl_new:N \l__MOdiagram_MO_two_piz_p_electron_tl -\tl_new:N \l__MOdiagram_MO_two_pizs_p_electron_tl +\tl_new:N \l__modiagram_MO_two_sigma_p_electron_tl +\tl_new:N \l__modiagram_MO_two_sigmas_p_electron_tl +\tl_new:N \l__modiagram_MO_two_piy_p_electron_tl +\tl_new:N \l__modiagram_MO_two_piys_p_electron_tl +\tl_new:N \l__modiagram_MO_two_piz_p_electron_tl +\tl_new:N \l__modiagram_MO_two_pizs_p_electron_tl -\bool_new:N \l__MOdiagram_molecule_two_mo_p_bool +\bool_new:N \l__modiagram_molecule_two_mo_p_bool % read 2pMO argument -\cs_set_nopar:Npn \__MOdiagram_two_mo_p_set:n #1 +\cs_set_nopar:Npn \__modiagram_two_mo_p_set:n #1 { - \bool_set_true:N \l__MOdiagram_molecule_two_mo_p_bool - \tl_if_in:onTF { #1 } { ; } - { \__MOdiagram_two_mo_p_set_aux:n #1 \q_stop } - { \__MOdiagram_two_mo_p_set_energy:n { #1 } } + \bool_set_true:N \l__modiagram_molecule_two_mo_p_bool + \tl_if_in:onTF {#1} {;} + { \__modiagram_two_mo_p_set_aux:n #1 \q_stop } + { \__modiagram_two_mo_p_set_energy:n {#1} } } -\cs_set_nopar:Npn \__MOdiagram_two_mo_p_set_aux:n #1;#2 \q_stop +\cs_set_nopar:Npn \__modiagram_two_mo_p_set_aux:n #1;#2 \q_stop { - \__MOdiagram_two_mo_p_set_energy:n { #1 } - \__MOdiagram_two_mo_p_set_electrons:n { #2 } + \__modiagram_two_mo_p_set_energy:n {#1} + \__modiagram_two_mo_p_set_electrons:n {#2} } -\cs_new_protected:Npn \__MOdiagram_two_mo_p_set_energy:n #1 +\cs_new_protected:Npn \__modiagram_two_mo_p_set_energy:n #1 { - \tl_if_in:onTF { #1 } { , } - { \__MOdiagram_two_mo_p_set_energy_aux:n #1 \q_stop } + \tl_if_in:onTF {#1} {,} + { \__modiagram_two_mo_p_set_energy_aux:n #1 \q_stop } { - \tl_if_in:onTF { #1 } { / } + \tl_if_in:onTF {#1} {/} { - \__MOdiagram_two_mo_p_set_energy_sigma_aux:n #1 \q_stop - \__MOdiagram_two_mo_p_set_energy_pi:n { .5 } + \__modiagram_two_mo_p_set_energy_sigma_aux:n #1 \q_stop + \__modiagram_two_mo_p_set_energy_pi:n {.5} } { - \__MOdiagram_two_mo_p_set_energy_sigma:n { #1 } - \__MOdiagram_two_mo_p_set_energy_pi:n { .5 } + \__modiagram_two_mo_p_set_energy_sigma:n {#1} + \__modiagram_two_mo_p_set_energy_pi:n {.5} } } } -\cs_new_protected:Npn \__MOdiagram_two_mo_p_set_energy_aux:n #1,#2 \q_stop +\cs_new_protected:Npn \__modiagram_two_mo_p_set_energy_aux:n #1,#2 \q_stop { - \tl_if_in:onTF { #1 } { / } - { \__MOdiagram_two_mo_p_set_energy_sigma_aux:n #1 \q_stop } - { \__MOdiagram_two_mo_p_set_energy_sigma:n { #1 } } - \tl_if_in:onTF { #2 } { / } - { \__MOdiagram_two_mo_p_set_energy_pi_aux:n #2 \q_stop } - { \__MOdiagram_two_mo_p_set_energy_pi:n { #2 } } + \tl_if_in:onTF {#1} {/} + { \__modiagram_two_mo_p_set_energy_sigma_aux:n #1 \q_stop } + { \__modiagram_two_mo_p_set_energy_sigma:n {#1} } + \tl_if_in:onTF {#2} {/} + { \__modiagram_two_mo_p_set_energy_pi_aux:n #2 \q_stop } + { \__modiagram_two_mo_p_set_energy_pi:n {#2} } } -\cs_new_protected:Npn \__MOdiagram_two_mo_p_set_energy_sigma:n #1 +\cs_new_protected:Npn \__modiagram_two_mo_p_set_energy_sigma:n #1 { - \tl_if_blank:nTF { #1 } + \tl_if_blank:nTF {#1} { - \dim_set:Nn \l__MOdiagram_molecule_two_psigma_dim { 1.5 cm } - \dim_set:Nn \l__MOdiagram_molecule_two_psigmas_dim { 1.5 cm } + \dim_set:Nn \l__modiagram_molecule_two_psigma_dim {1.5cm} + \dim_set:Nn \l__modiagram_molecule_two_psigmas_dim {1.5cm} } { - \dim_set:Nn \l__MOdiagram_molecule_two_psigma_dim { #1 cm } - \dim_set:Nn \l__MOdiagram_molecule_two_psigmas_dim { #1 cm } + \dim_set:Nn \l__modiagram_molecule_two_psigma_dim {#1cm} + \dim_set:Nn \l__modiagram_molecule_two_psigmas_dim {#1cm} } } -\cs_new_protected:Npn \__MOdiagram_two_mo_p_set_energy_sigma_aux:n #1/#2 \q_stop +\cs_new_protected:Npn \__modiagram_two_mo_p_set_energy_sigma_aux:n #1/#2 \q_stop { - \tl_if_blank:nTF { #1 } - { \dim_set:Nn \l__MOdiagram_molecule_two_psigma_dim { 1.5 cm } } - { \dim_set:Nn \l__MOdiagram_molecule_two_psigma_dim { #1 cm } } - \tl_if_blank:nTF { #2 } - { \dim_set:Nn \l__MOdiagram_molecule_two_psigmas_dim { 1.5 cm } } - { \dim_set:Nn \l__MOdiagram_molecule_two_psigmas_dim { #2 cm } } + \tl_if_blank:nTF {#1} + { \dim_set:Nn \l__modiagram_molecule_two_psigma_dim {1.5cm} } + { \dim_set:Nn \l__modiagram_molecule_two_psigma_dim {#1cm} } + \tl_if_blank:nTF {#2} + { \dim_set:Nn \l__modiagram_molecule_two_psigmas_dim {1.5cm} } + { \dim_set:Nn \l__modiagram_molecule_two_psigmas_dim {#2cm} } } -\cs_new_protected:Npn \__MOdiagram_two_mo_p_set_energy_pi:n #1 +\cs_new_protected:Npn \__modiagram_two_mo_p_set_energy_pi:n #1 { - \tl_if_blank:nTF { #1 } + \tl_if_blank:nTF {#1} { - \dim_set:Nn \l__MOdiagram_molecule_two_ppi_dim { .5 cm } - \dim_set:Nn \l__MOdiagram_molecule_two_ppis_dim { .5 cm } + \dim_set:Nn \l__modiagram_molecule_two_ppi_dim {.5cm} + \dim_set:Nn \l__modiagram_molecule_two_ppis_dim {.5cm} } { - \dim_set:Nn \l__MOdiagram_molecule_two_ppi_dim { #1 cm } - \dim_set:Nn \l__MOdiagram_molecule_two_ppis_dim { #1 cm } + \dim_set:Nn \l__modiagram_molecule_two_ppi_dim {#1cm} + \dim_set:Nn \l__modiagram_molecule_two_ppis_dim {#1cm} } } -\cs_new_protected:Npn \__MOdiagram_two_mo_p_set_energy_pi_aux:n #1/#2 \q_stop +\cs_new_protected:Npn \__modiagram_two_mo_p_set_energy_pi_aux:n #1/#2 \q_stop { - \tl_if_blank:nTF { #1 } - { \dim_set:Nn \l__MOdiagram_molecule_two_ppi_dim { .5 cm } } - { \dim_set:Nn \l__MOdiagram_molecule_two_ppi_dim { #1 cm } } - \tl_if_blank:nTF { #2 } - { \dim_set:Nn \l__MOdiagram_molecule_two_ppis_dim { .5 cm } } - { \dim_set:Nn \l__MOdiagram_molecule_two_ppis_dim { #2 cm } } + \tl_if_blank:nTF {#1} + { \dim_set:Nn \l__modiagram_molecule_two_ppi_dim {.5cm} } + { \dim_set:Nn \l__modiagram_molecule_two_ppi_dim {#1cm} } + \tl_if_blank:nTF {#2} + { \dim_set:Nn \l__modiagram_molecule_two_ppis_dim {.5cm} } + { \dim_set:Nn \l__modiagram_molecule_two_ppis_dim {#2cm} } } -\NewDocumentCommand \__MOdiagram_two_mo_p_set_electrons:n - { > { \SplitArgument { 5 } { , } } m } - { \__MOdiagram_two_mo_p_set_electrons_aux:n #1 } +\NewDocumentCommand \__modiagram_two_mo_p_set_electrons:n + { > { \SplitArgument {5} {,} } m } + { \__modiagram_two_mo_p_set_electrons_aux:n #1 } -\cs_new_protected:Npn \__MOdiagram_two_mo_p_set_electrons_aux:n #1#2#3#4#5#6 +\cs_new_protected:Npn \__modiagram_two_mo_p_set_electrons_aux:n #1#2#3#4#5#6 { - \tl_set:Nn \l__MOdiagram_MO_two_sigma_p_electron_tl { #1 } - \tl_set:Nn \l__MOdiagram_MO_two_sigmas_p_electron_tl { #6 } - \tl_set:Nn \l__MOdiagram_MO_two_piy_p_electron_tl { #2 } - \tl_set:Nn \l__MOdiagram_MO_two_piys_p_electron_tl { #4 } - \tl_set:Nn \l__MOdiagram_MO_two_piz_p_electron_tl { #3 } - \tl_set:Nn \l__MOdiagram_MO_two_pizs_p_electron_tl { #5 } + \tl_set:Nn \l__modiagram_MO_two_sigma_p_electron_tl {#1} + \tl_set:Nn \l__modiagram_MO_two_sigmas_p_electron_tl {#6} + \tl_set:Nn \l__modiagram_MO_two_piy_p_electron_tl {#2} + \tl_set:Nn \l__modiagram_MO_two_piys_p_electron_tl {#4} + \tl_set:Nn \l__modiagram_MO_two_piz_p_electron_tl {#3} + \tl_set:Nn \l__modiagram_MO_two_pizs_p_electron_tl {#5} } % display 2sigma+pi/sigma*+pi* orbitals: -\cs_new_protected:Npn \__MOdiagram_two_mo_p: +\cs_new_protected:Npn \__modiagram_two_mo_p: { - \bool_if:NT \l__MOdiagram_molecule_two_mo_p_bool + \bool_if:NT \l__modiagram_molecule_two_mo_p_bool { \bool_if:nF - { \l__MOdiagram_two_p_left_bool && \l__MOdiagram_two_p_right_bool } - { \msg_error:nnxx { MOdiagram } { missing-AO } { 2pMO } { 2p } } - \__MOdiagram_split_energy:nNN { two_p } - \l__MOdiagram_molecule_two_psigma_dim - \l__MOdiagram_molecule_two_psigmas_dim - \__MOdiagram_energy_range:N \l__MOdiagram_energy_gain_dim - \__MOdiagram_energy_range:N \l__MOdiagram_energy_loss_dim - \__MOdiagram_node:n { inner~sep=0 , outer~sep=0 } + { \l__modiagram_two_p_left_bool && \l__modiagram_two_p_right_bool } + { \msg_error:nnnn {modiagram} {missing-AO} {2pMO} {2p} } + \__modiagram_split_energy:nNN {two_p} + \l__modiagram_molecule_two_psigma_dim + \l__modiagram_molecule_two_psigmas_dim + \__modiagram_energy_range:N \l__modiagram_energy_gain_dim + \__modiagram_energy_range:N \l__modiagram_energy_loss_dim + \__modiagram_node:n { inner~sep=0 , outer~sep=0 } (2psigma) at ( - \l__MOdiagram_molecule_position_dim , - \l__MOdiagram_energy_gain_dim + \l__modiagram_molecule_position_dim , + \l__modiagram_energy_gain_dim ) { - \__MOdiagram_get_electron_color:n { 2psigma } - \__MOdiagram_get_electron_up:n { 2psigma } - \__MOdiagram_get_electron_down:n { 2psigma } - \__MOdiagram_AO:ff - { \tl_use:N \l__MOdiagram_MO_two_sigma_p_electron_tl } - { \tl_use:N \l__MOdiagram_electron_current_color_tl } + \__modiagram_get_electron_color:n {2psigma} + \__modiagram_get_electron_up:n {2psigma} + \__modiagram_get_electron_down:n {2psigma} + \__modiagram_AO:ff + { \tl_use:N \l__modiagram_MO_two_sigma_p_electron_tl } + { \tl_use:N \l__modiagram_electron_current_color_tl } } ; - \__MOdiagram_get_orbital_label:n { 2psigma } - \__MOdiagram_node:n { inner~sep=0 , outer~sep=0 } + \__modiagram_get_orbital_label:n {2psigma} + \__modiagram_node:n { inner~sep=0 , outer~sep=0 } (2psigma*) at ( - \l__MOdiagram_molecule_position_dim , - \l__MOdiagram_energy_loss_dim + \l__modiagram_molecule_position_dim , + \l__modiagram_energy_loss_dim ) { - \__MOdiagram_get_electron_color:n { 2psigma* } - \__MOdiagram_get_electron_up:n { 2psigma* } - \__MOdiagram_get_electron_down:n { 2psigma* } - \__MOdiagram_AO:ff - { \tl_use:N \l__MOdiagram_MO_two_sigmas_p_electron_tl } - { \tl_use:N \l__MOdiagram_electron_current_color_tl } + \__modiagram_get_electron_color:n {2psigma*} + \__modiagram_get_electron_up:n {2psigma*} + \__modiagram_get_electron_down:n {2psigma*} + \__modiagram_AO:ff + { \tl_use:N \l__modiagram_MO_two_sigmas_p_electron_tl } + { \tl_use:N \l__modiagram_electron_current_color_tl } } ; - \__MOdiagram_get_orbital_label:n { 2psigma* } - \__MOdiagram_split_energy:nNN { two_p } - \l__MOdiagram_molecule_two_ppi_dim - \l__MOdiagram_molecule_two_ppis_dim - \__MOdiagram_node:n { inner~sep=0 , outer~sep=0 } + \__modiagram_get_orbital_label:n {2psigma*} + \__modiagram_split_energy:nNN {two_p} + \l__modiagram_molecule_two_ppi_dim + \l__modiagram_molecule_two_ppis_dim + \__modiagram_node:n { inner~sep=0 , outer~sep=0 } (2piy) at ( - \l__MOdiagram_molecule_position_dim - \l__MOdiagram_AO_width_dim , - \l__MOdiagram_energy_gain_dim + \l__modiagram_molecule_position_dim - \l__modiagram_AO_width_dim , + \l__modiagram_energy_gain_dim ) { - \__MOdiagram_get_electron_color:n { 2piy } - \__MOdiagram_get_electron_up:n { 2piy } - \__MOdiagram_get_electron_down:n { 2piy } - \__MOdiagram_AO:ff - { \tl_use:N \l__MOdiagram_MO_two_piy_p_electron_tl } - { \tl_use:N \l__MOdiagram_electron_current_color_tl } + \__modiagram_get_electron_color:n {2piy} + \__modiagram_get_electron_up:n {2piy} + \__modiagram_get_electron_down:n {2piy} + \__modiagram_AO:ff + { \tl_use:N \l__modiagram_MO_two_piy_p_electron_tl } + { \tl_use:N \l__modiagram_electron_current_color_tl } } ; - \__MOdiagram_get_orbital_label:n { 2piy } - \__MOdiagram_node:n { inner~sep=0 , outer~sep=0 } + \__modiagram_get_orbital_label:n {2piy} + \__modiagram_node:n { inner~sep=0 , outer~sep=0 } (2piy*) at ( - \l__MOdiagram_molecule_position_dim - \l__MOdiagram_AO_width_dim , - \l__MOdiagram_energy_loss_dim + \l__modiagram_molecule_position_dim - \l__modiagram_AO_width_dim , + \l__modiagram_energy_loss_dim ) { - \__MOdiagram_get_electron_color:n { 2piy* } - \__MOdiagram_get_electron_up:n { 2piy* } - \__MOdiagram_get_electron_down:n { 2piy* } - \__MOdiagram_AO:ff - { \tl_use:N \l__MOdiagram_MO_two_piys_p_electron_tl } - { \tl_use:N \l__MOdiagram_electron_current_color_tl } + \__modiagram_get_electron_color:n {2piy*} + \__modiagram_get_electron_up:n {2piy*} + \__modiagram_get_electron_down:n {2piy*} + \__modiagram_AO:ff + { \tl_use:N \l__modiagram_MO_two_piys_p_electron_tl } + { \tl_use:N \l__modiagram_electron_current_color_tl } } ; - \__MOdiagram_get_orbital_label:n { 2piy* } - \__MOdiagram_node:n { inner~sep=0 , outer~sep=0 } + \__modiagram_get_orbital_label:n {2piy*} + \__modiagram_node:n { inner~sep=0 , outer~sep=0 } (2piz) at ( - \l__MOdiagram_molecule_position_dim + \l__MOdiagram_AO_width_dim , - \l__MOdiagram_energy_gain_dim + \l__modiagram_molecule_position_dim + \l__modiagram_AO_width_dim , + \l__modiagram_energy_gain_dim ) { - \__MOdiagram_get_electron_color:n { 2piz } - \__MOdiagram_get_electron_up:n { 2piz } - \__MOdiagram_get_electron_down:n { 2piz } - \__MOdiagram_AO:ff - { \tl_use:N \l__MOdiagram_MO_two_piz_p_electron_tl } - { \tl_use:N \l__MOdiagram_electron_current_color_tl } + \__modiagram_get_electron_color:n {2piz} + \__modiagram_get_electron_up:n {2piz} + \__modiagram_get_electron_down:n {2piz} + \__modiagram_AO:ff + { \tl_use:N \l__modiagram_MO_two_piz_p_electron_tl } + { \tl_use:N \l__modiagram_electron_current_color_tl } } ; - \__MOdiagram_get_orbital_label:n { 2piz } - \__MOdiagram_node:n { inner~sep=0 , outer~sep=0 } + \__modiagram_get_orbital_label:n {2piz} + \__modiagram_node:n { inner~sep=0 , outer~sep=0 } (2piz*) at ( - \l__MOdiagram_molecule_position_dim + \l__MOdiagram_AO_width_dim , - \l__MOdiagram_energy_loss_dim + \l__modiagram_molecule_position_dim + \l__modiagram_AO_width_dim , + \l__modiagram_energy_loss_dim ) { - \__MOdiagram_get_electron_color:n { 2piz* } - \__MOdiagram_get_electron_up:n { 2piz* } - \__MOdiagram_get_electron_down:n { 2piz* } - \__MOdiagram_AO:ff - { \tl_use:N \l__MOdiagram_MO_two_pizs_p_electron_tl } - { \tl_use:N \l__MOdiagram_electron_current_color_tl } + \__modiagram_get_electron_color:n {2piz*} + \__modiagram_get_electron_up:n {2piz*} + \__modiagram_get_electron_down:n {2piz*} + \__modiagram_AO:ff + { \tl_use:N \l__modiagram_MO_two_pizs_p_electron_tl } + { \tl_use:N \l__modiagram_electron_current_color_tl } } ; - \__MOdiagram_get_orbital_label:n { 2piz* } - \__MOdiagram_draw:f - { \l__MOdiagram_lines_tl } + \__modiagram_get_orbital_label:n {2piz*} + \__modiagram_draw:f + { \l__modiagram_lines_tl } (2pz left.east) -- (2psigma.west) (2psigma.east) -- (2px right.west) (2pz left.east) -- (2psigma*.west) (2psigma*.east) -- (2px right.west) (2pz left.east) -- (2piy.west) (2piz.east) -- (2px right.west) @@ -1247,77 +1274,94 @@ % --------------------------------------------------------------------------- % % draw actual AO / MO -\tl_new:N \l__MOdiagram_electron_color_tl +\tl_new:N \l__modiagram_electron_color_tl -\cs_new_protected:Npn \__MOdiagram_AO:nn #1#2 +\cs_new_protected:Npn \__modiagram_AO:nn #1#2 { \group_begin: - \tl_set:Nn \l__MOdiagram_electron_color_tl { #2 } + \tl_set:Nn \l__modiagram_electron_color_tl {#2} \tikzpicture - \bool_if:NT \l__MOdiagram_AO_fancy_bool + \bool_if:NT \l__modiagram_AO_fancy_bool { - \draw (0,0) -- ++(-.5*\l__MOdiagram_AO_width_dim,0) ; - \draw (2pt+\l__MOdiagram_AO_width_dim,0) - -- ++(.5*\l__MOdiagram_AO_width_dim,0) ; + \draw (0,0) -- ++(-.5*\l__modiagram_AO_width_dim,0) ; + \draw (2pt+\l__modiagram_AO_width_dim,0) + -- ++(.5*\l__modiagram_AO_width_dim,0) ; } - \bool_if:NT \l__MOdiagram_AO_circle_bool + \bool_if:NT \l__modiagram_AO_circle_bool { - \draw (-.4142pt,0) ++(-.2071*\l__MOdiagram_AO_width_dim,0) - -- ++(-.25*\l__MOdiagram_AO_width_dim,0) ; - \draw (2.4142pt,0) ++(1.2071*\l__MOdiagram_AO_width_dim,0) - -- ++(.25*\l__MOdiagram_AO_width_dim,0) ; + \draw (-.4142pt,0) ++(-.2071*\l__modiagram_AO_width_dim,0) + -- ++(-.25*\l__modiagram_AO_width_dim,0) ; + \draw (2.4142pt,0) ++(1.2071*\l__modiagram_AO_width_dim,0) + -- ++(.25*\l__modiagram_AO_width_dim,0) ; } - \__MOdiagram_node:x + \__modiagram_node:x { inner~sep = 0 , - \bool_if:NT \l__MOdiagram_AO_square_bool { draw } , - \bool_if:NT \l__MOdiagram_AO_circle_bool { circle , draw } , + \bool_if:NT \l__modiagram_AO_square_bool {draw} , + \bool_if:NT \l__modiagram_AO_circle_bool {circle,draw} , minimum~size = - \bool_if:NTF \l__MOdiagram_AO_square_bool - { 2pt+\l__MOdiagram_AO_width_dim } + \bool_if:NTF \l__modiagram_AO_square_bool + { 2pt+\l__modiagram_AO_width_dim } { - \bool_if:NTF \l__MOdiagram_AO_circle_bool - { 1.4142*(2pt+\l__MOdiagram_AO_width_dim) } - { \l__MOdiagram_AO_width_dim } + \bool_if:NTF \l__modiagram_AO_circle_bool + { 1.4142*(2pt+\l__modiagram_AO_width_dim) } + { \l__modiagram_AO_width_dim } } , - \bool_if:NT \l__MOdiagram_AO_round_bool + \bool_if:NT \l__modiagram_AO_round_bool { rounded~corners=2pt } } - at (.5*\l__MOdiagram_AO_width_dim+1pt,0) + at (.5*\l__modiagram_AO_width_dim+1pt,0) { \tikz { - \bool_if:nTF { \l__MOdiagram_AO_square_bool || \l__MOdiagram_AO_circle_bool } - { \draw[draw=none] (0,0) -- ++(\l__MOdiagram_AO_width_dim,0) ; } - { \draw (0,0) -- ++(\l__MOdiagram_AO_width_dim,0) ; } - \tl_set:Nn \l__MOdiagram_tmpa_tl { #1 } - \tl_remove_all:Nn \l__MOdiagram_tmpa_tl { ~ } - \str_case:VnF \l__MOdiagram_tmpa_tl + \bool_if:nTF + { \l__modiagram_AO_square_bool || \l__modiagram_AO_circle_bool } + { \draw[draw=none] (0,0) -- ++(\l__modiagram_AO_width_dim,0) ; } + { \draw (0,0) -- ++(\l__modiagram_AO_width_dim,0) ; } + \tl_set:Nn \l__modiagram_tmpa_tl {#1} + \tl_remove_all:Nn \l__modiagram_tmpa_tl {~} + \str_case:VnF \l__modiagram_tmpa_tl { - { up } + {up} { - \__MOdiagram_draw:f - { -left~to,semithick , \l__MOdiagram_electron_color_tl , inner~sep=0,outer~sep=0 } - (\l__MOdiagram_AO_up_electron_tl*\l__MOdiagram_AO_width_dim,-.4*\l__MOdiagram_AO_width_dim) - -- ++(0,.8*\l__MOdiagram_AO_width_dim) ; + \__modiagram_draw:f + { + -left~to,semithick , + \l__modiagram_electron_color_tl , + inner~sep=0,outer~sep=0 + } + ( + \l__modiagram_AO_up_electron_tl*\l__modiagram_AO_width_dim, + -.4*\l__modiagram_AO_width_dim + ) + -- ++(0,.8*\l__modiagram_AO_width_dim) ; } - { down } + {down} { - \__MOdiagram_draw:f - { -left~to,semithick , \l__MOdiagram_electron_color_tl } - (\l__MOdiagram_AO_down_electron_tl*\l__MOdiagram_AO_width_dim,.4*\l__MOdiagram_AO_width_dim) - -- ++(0,-.8*\l__MOdiagram_AO_width_dim) ; + \__modiagram_draw:f + { -left~to,semithick , \l__modiagram_electron_color_tl } + ( + \l__modiagram_AO_down_electron_tl*\l__modiagram_AO_width_dim, + .4*\l__modiagram_AO_width_dim + ) + -- ++(0,-.8*\l__modiagram_AO_width_dim) ; } - { pair } + {pair} { - \__MOdiagram_draw:f - { -left~to,semithick , \l__MOdiagram_electron_color_tl } - (\l__MOdiagram_AO_up_electron_tl*\l__MOdiagram_AO_width_dim,-.4*\l__MOdiagram_AO_width_dim) - -- ++(0,.8*\l__MOdiagram_AO_width_dim) ; - \__MOdiagram_draw:f - { -left~to,semithick , \l__MOdiagram_electron_color_tl } - (\l__MOdiagram_AO_down_electron_tl*\l__MOdiagram_AO_width_dim,.4*\l__MOdiagram_AO_width_dim) - -- ++(0,-.8*\l__MOdiagram_AO_width_dim) ; + \__modiagram_draw:f + { -left~to,semithick , \l__modiagram_electron_color_tl } + ( + \l__modiagram_AO_up_electron_tl*\l__modiagram_AO_width_dim, + -.4*\l__modiagram_AO_width_dim + ) + -- ++(0,.8*\l__modiagram_AO_width_dim) ; + \__modiagram_draw:f + { -left~to,semithick , \l__modiagram_electron_color_tl } + ( + \l__modiagram_AO_down_electron_tl*\l__modiagram_AO_width_dim, + .4*\l__modiagram_AO_width_dim + ) + -- ++(0,-.8*\l__modiagram_AO_width_dim) ; } } {} @@ -1326,747 +1370,751 @@ \endtikzpicture \group_end: } -\cs_generate_variant:Nn \__MOdiagram_AO:nn { ff } +\cs_generate_variant:Nn \__modiagram_AO:nn {ff} % -------------------------------------------------------------------------- % % per default disable all AOs / MOs -\cs_new_protected:Npn \__MOdiagram_atom_disable: +\cs_new_protected:Npn \__modiagram_atom_disable: { - \bool_set_false:N \l__MOdiagram_atom_one_s_bool - \bool_set_false:N \l__MOdiagram_atom_two_s_bool - \bool_set_false:N \l__MOdiagram_atom_two_p_bool -% \bool_set_false:N \l__MOdiagram_atom_three_s_bool -% \bool_set_false:N \l__MOdiagram_atom_three_p_bool + \bool_set_false:N \l__modiagram_atom_one_s_bool + \bool_set_false:N \l__modiagram_atom_two_s_bool + \bool_set_false:N \l__modiagram_atom_two_p_bool +% \bool_set_false:N \l__modiagram_atom_three_s_bool +% \bool_set_false:N \l__modiagram_atom_three_p_bool } -\cs_new_protected:Npn \__MOdiagram_molecule_disable: - { \bool_set_false:N \l__MOdiagram_molecule_one_mo_s_bool } +\cs_new_protected:Npn \__modiagram_molecule_disable: + { \bool_set_false:N \l__modiagram_molecule_one_mo_s_bool } % --------------------------------------------------------------------------- % % arbitrary placement of AOs / MOs -\dim_new:N \l__MOdiagram_AO_dim % y -\dim_new:N \l__MOdiagram_AO_position_dim % x +\dim_new:N \l__modiagram_AO_dim % y +\dim_new:N \l__modiagram_AO_position_dim % x -\dim_new:N \l__MOdiagram_AO_px_shift_dim -\dim_new:N \l__MOdiagram_AO_py_shift_dim -\dim_new:N \l__MOdiagram_AO_pz_shift_dim +\dim_new:N \l__modiagram_AO_px_shift_dim +\dim_new:N \l__modiagram_AO_py_shift_dim +\dim_new:N \l__modiagram_AO_pz_shift_dim -\tl_new:N \l__MOdiagram_AO_px_electron_tl -\tl_new:N \l__MOdiagram_AO_py_electron_tl -\tl_new:N \l__MOdiagram_AO_pz_electron_tl +\tl_new:N \l__modiagram_AO_px_electron_tl +\tl_new:N \l__modiagram_AO_py_electron_tl +\tl_new:N \l__modiagram_AO_pz_electron_tl -\tl_new:N \l__MOdiagram_AO_x_electron_color_tl -\tl_new:N \l__MOdiagram_AO_y_electron_color_tl -\tl_new:N \l__MOdiagram_AO_z_electron_color_tl +\tl_new:N \l__modiagram_AO_x_electron_color_tl +\tl_new:N \l__modiagram_AO_y_electron_color_tl +\tl_new:N \l__modiagram_AO_z_electron_color_tl -\bool_new:N \l__MOdiagram_AO_label_bool -\bool_new:N \l__MOdiagram_AO_x_label_bool -\bool_new:N \l__MOdiagram_AO_y_label_bool -\bool_new:N \l__MOdiagram_AO_z_label_bool +\bool_new:N \l__modiagram_AO_label_bool +\bool_new:N \l__modiagram_AO_x_label_bool +\bool_new:N \l__modiagram_AO_y_label_bool +\bool_new:N \l__modiagram_AO_z_label_bool -\tl_new:N \l__MOdiagram_AO_x_label_tl -\tl_new:N \l__MOdiagram_AO_y_label_tl -\tl_new:N \l__MOdiagram_AO_z_label_tl +\tl_new:N \l__modiagram_AO_x_label_tl +\tl_new:N \l__modiagram_AO_y_label_tl +\tl_new:N \l__modiagram_AO_z_label_tl -\bool_new:N \l__MOdiagram_AO_up_electron_bool -\bool_new:N \l__MOdiagram_AO_x_up_electron_bool -\bool_new:N \l__MOdiagram_AO_y_up_electron_bool -\bool_new:N \l__MOdiagram_AO_z_up_electron_bool -\tl_new:N \l__MOdiagram_AO_x_up_electron_tl -\tl_new:N \l__MOdiagram_AO_y_up_electron_tl -\tl_new:N \l__MOdiagram_AO_z_up_electron_tl +\bool_new:N \l__modiagram_AO_up_electron_bool +\bool_new:N \l__modiagram_AO_x_up_electron_bool +\bool_new:N \l__modiagram_AO_y_up_electron_bool +\bool_new:N \l__modiagram_AO_z_up_electron_bool +\tl_new:N \l__modiagram_AO_x_up_electron_tl +\tl_new:N \l__modiagram_AO_y_up_electron_tl +\tl_new:N \l__modiagram_AO_z_up_electron_tl -\bool_new:N \l__MOdiagram_AO_down_electron_bool -\bool_new:N \l__MOdiagram_AO_x_down_electron_bool -\bool_new:N \l__MOdiagram_AO_y_down_electron_bool -\bool_new:N \l__MOdiagram_AO_z_down_electron_bool -\tl_new:N \l__MOdiagram_AO_x_down_electron_tl -\tl_new:N \l__MOdiagram_AO_y_down_electron_tl -\tl_new:N \l__MOdiagram_AO_z_down_electron_tl +\bool_new:N \l__modiagram_AO_down_electron_bool +\bool_new:N \l__modiagram_AO_x_down_electron_bool +\bool_new:N \l__modiagram_AO_y_down_electron_bool +\bool_new:N \l__modiagram_AO_z_down_electron_bool +\tl_new:N \l__modiagram_AO_x_down_electron_tl +\tl_new:N \l__modiagram_AO_y_down_electron_tl +\tl_new:N \l__modiagram_AO_z_down_electron_tl -\tl_new:N \l__MOdiagram_AO_name_tl +\tl_new:N \l__modiagram_AO_name_tl -\bool_new:N \l__MOdiagram_AO_p_bool -\bool_new:N \l__MOdiagram_AO_left_bool +\bool_new:N \l__modiagram_AO_p_bool +\bool_new:N \l__modiagram_AO_left_bool -\int_new:N \g__MOdiagram_AO_name_int +\int_new:N \g__modiagram_AO_name_int % read argument in s case: -\cs_new_protected:Npn \__MOdiagram_AO_s_set:n #1 +\cs_new_protected:Npn \__modiagram_AO_s_set:n #1 { - \tl_if_in:onTF { #1 } { ; } - { \__MOdiagram_AO_s_set_aux:n #1 \q_stop } + \tl_if_in:onTF {#1} {;} + { \__modiagram_AO_s_set_aux:n #1 \q_stop } { - \dim_set:Nn \l__MOdiagram_AO_dim { #1 cm } - \tl_set:Nn \l__MOdiagram_AO_px_electron_tl { pair } + \dim_set:Nn \l__modiagram_AO_dim {#1cm} + \tl_set:Nn \l__modiagram_AO_px_electron_tl {pair} } } -\cs_new_protected:Npn \__MOdiagram_AO_s_set_aux:n #1;#2 \q_stop +\cs_new_protected:Npn \__modiagram_AO_s_set_aux:n #1;#2 \q_stop { - \dim_set:Nn \l__MOdiagram_AO_dim { #1 cm } - \tl_set:Nn \l__MOdiagram_AO_px_electron_tl { #2 } + \dim_set:Nn \l__modiagram_AO_dim {#1cm} + \tl_set:Nn \l__modiagram_AO_px_electron_tl {#2} } % read argument in p case: -\cs_new_protected:Npn \__MOdiagram_AO_p_set:n #1 +\cs_new_protected:Npn \__modiagram_AO_p_set:n #1 { - \tl_if_in:onTF { #1 } { ; } - { \__MOdiagram_AO_p_set_aux:n #1 \q_stop } + \tl_if_in:onTF {#1} {;} + { \__modiagram_AO_p_set_aux:n #1 \q_stop } { - \dim_set:Nn \l__MOdiagram_AO_dim { #1 cm } - \tl_set:Nn \l__MOdiagram_AO_px_electron_tl { pair } - \tl_set:Nn \l__MOdiagram_AO_py_electron_tl { pair } - \tl_set:Nn \l__MOdiagram_AO_pz_electron_tl { pair } + \dim_set:Nn \l__modiagram_AO_dim {#1cm} + \tl_set:Nn \l__modiagram_AO_px_electron_tl {pair} + \tl_set:Nn \l__modiagram_AO_py_electron_tl {pair} + \tl_set:Nn \l__modiagram_AO_pz_electron_tl {pair} } } -\cs_new_protected:Npn \__MOdiagram_AO_p_set_aux:n #1;#2 \q_stop +\cs_new_protected:Npn \__modiagram_AO_p_set_aux:n #1;#2 \q_stop { - \dim_set:Nn \l__MOdiagram_AO_dim { #1 cm } - \__MOdiagram_AO_p_set_electrons:n { #2 } + \dim_set:Nn \l__modiagram_AO_dim {#1cm} + \__modiagram_AO_p_set_electrons:n {#2} } -\NewDocumentCommand \__MOdiagram_AO_p_set_electrons:n - { > { \SplitArgument { 2 } { , } } m } - { \__MOdiagram_AO_p_set_electrons_aux:n #1 } +\NewDocumentCommand \__modiagram_AO_p_set_electrons:n + { > { \SplitArgument {2} {,} } m } + { \__modiagram_AO_p_set_electrons_aux:n #1 } -\cs_new_protected:Npn \__MOdiagram_AO_p_set_electrons_aux:n #1#2#3 +\cs_new_protected:Npn \__modiagram_AO_p_set_electrons_aux:n #1#2#3 { - \tl_set:Nn \l__MOdiagram_AO_px_electron_tl { #1 } - \tl_set:Nn \l__MOdiagram_AO_py_electron_tl { #2 } - \tl_set:Nn \l__MOdiagram_AO_pz_electron_tl { #3 } + \tl_set:Nn \l__modiagram_AO_px_electron_tl {#1} + \tl_set:Nn \l__modiagram_AO_py_electron_tl {#2} + \tl_set:Nn \l__modiagram_AO_pz_electron_tl {#3} } -\cs_new_protected:Npn \__MOdiagram_AO_get_orbital_x_label:n #1 +\cs_new_protected:Npn \__modiagram_AO_get_orbital_x_label:n #1 { - \bool_if:nT { \l__MOdiagram_AO_x_label_bool || \l__MOdiagram_AO_label_bool } + \bool_if:nT + { \l__modiagram_AO_x_label_bool || \l__modiagram_AO_label_bool } { - \__MOdiagram_node:x - { below , \tl_use:N \l__MOdiagram_orbital_label_style_tl } + \__modiagram_node:x + { below , \tl_use:N \l__modiagram_orbital_label_style_tl } at ( #1 . south ) { - \tl_use:N \l__MOdiagram_orbital_label_fontsize_tl - \tl_use:N \l__MOdiagram_AO_x_label_tl + \tl_use:N \l__modiagram_orbital_label_fontsize_tl + \tl_use:N \l__modiagram_AO_x_label_tl } ; } } -\cs_generate_variant:Nn \__MOdiagram_AO_get_orbital_x_label:n { o } +\cs_generate_variant:Nn \__modiagram_AO_get_orbital_x_label:n {o} -\cs_new_protected:Npn \__MOdiagram_AO_get_orbital_y_label:n #1 +\cs_new_protected:Npn \__modiagram_AO_get_orbital_y_label:n #1 { - \bool_if:nT { \l__MOdiagram_AO_y_label_bool || \l__MOdiagram_AO_label_bool } + \bool_if:nT + { \l__modiagram_AO_y_label_bool || \l__modiagram_AO_label_bool } { - \__MOdiagram_node:x - { below , \tl_use:N \l__MOdiagram_orbital_label_style_tl } + \__modiagram_node:x + { below , \tl_use:N \l__modiagram_orbital_label_style_tl } at ( #1 . south ) { - \tl_use:N \l__MOdiagram_orbital_label_fontsize_tl - \tl_use:N \l__MOdiagram_AO_y_label_tl + \tl_use:N \l__modiagram_orbital_label_fontsize_tl + \tl_use:N \l__modiagram_AO_y_label_tl } ; } } -\cs_generate_variant:Nn \__MOdiagram_AO_get_orbital_y_label:n { o } +\cs_generate_variant:Nn \__modiagram_AO_get_orbital_y_label:n {o} -\cs_new_protected:Npn \__MOdiagram_AO_get_orbital_z_label:n #1 +\cs_new_protected:Npn \__modiagram_AO_get_orbital_z_label:n #1 { - \bool_if:nT { \l__MOdiagram_AO_z_label_bool || \l__MOdiagram_AO_label_bool } + \bool_if:nT + { \l__modiagram_AO_z_label_bool || \l__modiagram_AO_label_bool } { - \__MOdiagram_node:x - { below , \tl_use:N \l__MOdiagram_orbital_label_style_tl } + \__modiagram_node:x + { below , \tl_use:N \l__modiagram_orbital_label_style_tl } at ( #1 . south ) { - \tl_use:N \l__MOdiagram_orbital_label_fontsize_tl - \tl_use:N \l__MOdiagram_AO_z_label_tl + \tl_use:N \l__modiagram_orbital_label_fontsize_tl + \tl_use:N \l__modiagram_AO_z_label_tl } ; } } -\cs_generate_variant:Nn \__MOdiagram_AO_get_orbital_z_label:n { o } +\cs_generate_variant:Nn \__modiagram_AO_get_orbital_z_label:n {o} % these are going to be our arguments -\keys_define:nn { MOdiagram / AO } +\keys_define:nn {modiagram/AO} { type .choice: , - type / s .code:n = { \bool_set_false:N \l__MOdiagram_AO_p_bool } , - type / p .code:n = { \bool_set_true:N \l__MOdiagram_AO_p_bool } + type / s .code:n = { \bool_set_false:N \l__modiagram_AO_p_bool } , + type / p .code:n = { \bool_set_true:N \l__modiagram_AO_p_bool } } -\keys_define:nn { MOdiagram / AO / properties } +\keys_define:nn {modiagram/AO/properties} { color .code:n = { - \tl_set:Nn \l__MOdiagram_AO_x_electron_color_tl { #1 } - \tl_set:Nn \l__MOdiagram_AO_y_electron_color_tl { #1 } - \tl_set:Nn \l__MOdiagram_AO_z_electron_color_tl { #1 } + \tl_set:Nn \l__modiagram_AO_x_electron_color_tl {#1} + \tl_set:Nn \l__modiagram_AO_y_electron_color_tl {#1} + \tl_set:Nn \l__modiagram_AO_z_electron_color_tl {#1} } , - color[x] .tl_set:N = \l__MOdiagram_AO_x_electron_color_tl , - color[y] .tl_set:N = \l__MOdiagram_AO_y_electron_color_tl , - color[z] .tl_set:N = \l__MOdiagram_AO_z_electron_color_tl , + color[x] .tl_set:N = \l__modiagram_AO_x_electron_color_tl , + color[y] .tl_set:N = \l__modiagram_AO_y_electron_color_tl , + color[z] .tl_set:N = \l__modiagram_AO_z_electron_color_tl , label .code:n = { - \bool_set_true:N \l__MOdiagram_AO_label_bool - \tl_set:Nn \l__MOdiagram_AO_x_label_tl { #1 } - \tl_set:Nn \l__MOdiagram_AO_y_label_tl { #1 } - \tl_set:Nn \l__MOdiagram_AO_z_label_tl { #1 } + \bool_set_true:N \l__modiagram_AO_label_bool + \tl_set:Nn \l__modiagram_AO_x_label_tl {#1} + \tl_set:Nn \l__modiagram_AO_y_label_tl {#1} + \tl_set:Nn \l__modiagram_AO_z_label_tl {#1} } , label[x] .code:n = { - \bool_set_true:N \l__MOdiagram_AO_x_label_bool - \tl_set:Nn \l__MOdiagram_AO_x_label_tl { #1 } + \bool_set_true:N \l__modiagram_AO_x_label_bool + \tl_set:Nn \l__modiagram_AO_x_label_tl {#1} } , label[y] .code:n = { - \bool_set_true:N \l__MOdiagram_AO_y_label_bool - \tl_set:Nn \l__MOdiagram_AO_y_label_tl { #1 } + \bool_set_true:N \l__modiagram_AO_y_label_bool + \tl_set:Nn \l__modiagram_AO_y_label_tl {#1} } , label[z] .code:n = { - \bool_set_true:N \l__MOdiagram_AO_z_label_bool - \tl_set:Nn \l__MOdiagram_AO_z_label_tl { #1 } + \bool_set_true:N \l__modiagram_AO_z_label_bool + \tl_set:Nn \l__modiagram_AO_z_label_tl {#1} } , up-el-pos .code:n = { - \bool_set_true:N \l__MOdiagram_AO_up_electron_bool - \tl_set:Nn \l__MOdiagram_AO_x_up_electron_tl { #1 } - \tl_set:Nn \l__MOdiagram_AO_y_up_electron_tl { #1 } - \tl_set:Nn \l__MOdiagram_AO_z_up_electron_tl { #1 } + \bool_set_true:N \l__modiagram_AO_up_electron_bool + \tl_set:Nn \l__modiagram_AO_x_up_electron_tl {#1} + \tl_set:Nn \l__modiagram_AO_y_up_electron_tl {#1} + \tl_set:Nn \l__modiagram_AO_z_up_electron_tl {#1} } , up-el-pos[x] .code:n = { - \bool_set_true:N \l__MOdiagram_AO_x_up_electron_bool - \tl_set:Nn \l__MOdiagram_AO_x_up_electron_tl { #1 } + \bool_set_true:N \l__modiagram_AO_x_up_electron_bool + \tl_set:Nn \l__modiagram_AO_x_up_electron_tl {#1} } , up-el-pos[y] .code:n = { - \bool_set_true:N \l__MOdiagram_AO_y_up_electron_bool - \tl_set:Nn \l__MOdiagram_AO_y_up_electron_tl { #1 } + \bool_set_true:N \l__modiagram_AO_y_up_electron_bool + \tl_set:Nn \l__modiagram_AO_y_up_electron_tl {#1} } , up-el-pos[z] .code:n = { - \bool_set_true:N \l__MOdiagram_AO_z_up_electron_bool - \tl_set:Nn \l__MOdiagram_AO_y_up_electron_tl { #1 } + \bool_set_true:N \l__modiagram_AO_z_up_electron_bool + \tl_set:Nn \l__modiagram_AO_y_up_electron_tl {#1} } , down-el-pos .code:n = { - \bool_set_true:N \l__MOdiagram_AO_down_electron_bool - \tl_set:Nn \l__MOdiagram_AO_x_down_electron_tl { #1 } - \tl_set:Nn \l__MOdiagram_AO_y_down_electron_tl { #1 } - \tl_set:Nn \l__MOdiagram_AO_z_down_electron_tl { #1 } + \bool_set_true:N \l__modiagram_AO_down_electron_bool + \tl_set:Nn \l__modiagram_AO_x_down_electron_tl {#1} + \tl_set:Nn \l__modiagram_AO_y_down_electron_tl {#1} + \tl_set:Nn \l__modiagram_AO_z_down_electron_tl {#1} } , down-el-pos[x] .code:n = { - \bool_set_true:N \l__MOdiagram_AO_x_down_electron_bool - \tl_set:Nn \l__MOdiagram_AO_x_down_electron_tl { #1 } + \bool_set_true:N \l__modiagram_AO_x_down_electron_bool + \tl_set:Nn \l__modiagram_AO_x_down_electron_tl {#1} } , down-el-pos[y] .code:n = { - \bool_set_true:N \l__MOdiagram_AO_y_down_electron_bool - \tl_set:Nn \l__MOdiagram_AO_y_down_electron_tl { #1 } + \bool_set_true:N \l__modiagram_AO_y_down_electron_bool + \tl_set:Nn \l__modiagram_AO_y_down_electron_tl {#1} } , down-el-pos[z] .code:n = { - \bool_set_true:N \l__MOdiagram_AO_z_down_electron_bool - \tl_set:Nn \l__MOdiagram_AO_z_down_electron_tl { #1 } + \bool_set_true:N \l__modiagram_AO_z_down_electron_bool + \tl_set:Nn \l__modiagram_AO_z_down_electron_tl {#1} } } % AO[](){}[]{} -\NewDocumentCommand \__MOdiagram_arbitrary_AO: { o D(){0cm} m o m } +\NewDocumentCommand \__modiagram_arbitrary_AO: {oD(){0cm}mom} { \group_begin: - \IfNoValueTF { #1 } + \IfNoValueTF {#1} { - \int_gincr:N \g__MOdiagram_AO_name_int - \tl_set:Nn \l__MOdiagram_AO_name_tl - { AO \int_use:N \g__MOdiagram_AO_name_int } + \int_gincr:N \g__modiagram_AO_name_int + \tl_set:Nn \l__modiagram_AO_name_tl + { AO \int_use:N \g__modiagram_AO_name_int } } - { \tl_set:Nn \l__MOdiagram_AO_name_tl { #1 } } - \IfNoValueF { #4 } - { \keys_set:nn { MOdiagram / AO / properties } { #4 } } - \keys_set:nn { MOdiagram / AO } { type = #3 } - \bool_if:NTF \l__MOdiagram_AO_p_bool - { \__MOdiagram_AO_p_set:n { #5 } } - { \__MOdiagram_AO_s_set:n { #5 } } - \dim_set:Nn \l__MOdiagram_AO_position_dim { #2 } - \__MOdiagram_p_orbitals_shift:nnn { 0 } { 2 } { 4 } - \__MOdiagram_energy_range:N \l__MOdiagram_AO_dim - \__MOdiagram_node:n { inner~sep=0 , outer~sep=0 } + { \tl_set:Nn \l__modiagram_AO_name_tl {#1} } + \IfNoValueF {#4} + { \keys_set:nn {modiagram/AO/properties} {#4} } + \keys_set:nn {modiagram/AO} { type = #3 } + \bool_if:NTF \l__modiagram_AO_p_bool + { \__modiagram_AO_p_set:n {#5} } + { \__modiagram_AO_s_set:n {#5} } + \dim_set:Nn \l__modiagram_AO_position_dim {#2} + \__modiagram_p_orbitals_shift:nnn {0} {2} {4} + \__modiagram_energy_range:N \l__modiagram_AO_dim + \__modiagram_node:n { inner~sep=0 , outer~sep=0 } ( - \tl_use:N \l__MOdiagram_AO_name_tl - \bool_if:NT \l__MOdiagram_AO_p_bool { x } + \tl_use:N \l__modiagram_AO_name_tl + \bool_if:NT \l__modiagram_AO_p_bool {x} ) at ( - \l__MOdiagram_AO_position_dim + \l__MOdiagram_atom_px_shift_dim , - \l__MOdiagram_AO_dim + \l__modiagram_AO_position_dim + \l__modiagram_atom_px_shift_dim , + \l__modiagram_AO_dim ) { \bool_if:nT { - \l__MOdiagram_AO_up_electron_bool || - \l__MOdiagram_AO_x_up_electron_bool + \l__modiagram_AO_up_electron_bool || + \l__modiagram_AO_x_up_electron_bool } { - \__MOdiagram_AO_place_electron:nx { 0 } - { \tl_use:N \l__MOdiagram_AO_x_up_electron_tl } + \__modiagram_AO_place_electron:nx {0} + { \tl_use:N \l__modiagram_AO_x_up_electron_tl } } \bool_if:nT { - \l__MOdiagram_AO_down_electron_bool || - \l__MOdiagram_AO_x_down_electron_bool + \l__modiagram_AO_down_electron_bool || + \l__modiagram_AO_x_down_electron_bool } { - \__MOdiagram_AO_place_electron:nx { 1 } - { \tl_use:N \l__MOdiagram_AO_x_down_electron_tl } + \__modiagram_AO_place_electron:nx {1} + { \tl_use:N \l__modiagram_AO_x_down_electron_tl } } - \__MOdiagram_AO:ff - { \tl_use:N \l__MOdiagram_AO_px_electron_tl } - { \tl_use:N \l__MOdiagram_AO_x_electron_color_tl } + \__modiagram_AO:ff + { \tl_use:N \l__modiagram_AO_px_electron_tl } + { \tl_use:N \l__modiagram_AO_x_electron_color_tl } } ; - \__MOdiagram_AO_get_orbital_x_label:o + \__modiagram_AO_get_orbital_x_label:o { - \tl_use:N \l__MOdiagram_AO_name_tl - \bool_if:NT \l__MOdiagram_AO_p_bool { x } + \tl_use:N \l__modiagram_AO_name_tl + \bool_if:NT \l__modiagram_AO_p_bool { x } } - \bool_if:NT \l__MOdiagram_AO_p_bool + \bool_if:NT \l__modiagram_AO_p_bool { - \__MOdiagram_node:n { inner~sep=0 , outer~sep=0 } - ( \tl_use:N \l__MOdiagram_AO_name_tl y ) + \__modiagram_node:n { inner~sep=0 , outer~sep=0 } + ( \tl_use:N \l__modiagram_AO_name_tl y ) at ( - \l__MOdiagram_AO_position_dim + \l__MOdiagram_atom_py_shift_dim , - \l__MOdiagram_AO_dim + \l__modiagram_AO_position_dim + \l__modiagram_atom_py_shift_dim , + \l__modiagram_AO_dim ) { \bool_if:nT { - \l__MOdiagram_AO_up_electron_bool || - \l__MOdiagram_AO_y_up_electron_bool + \l__modiagram_AO_up_electron_bool || + \l__modiagram_AO_y_up_electron_bool } { - \__MOdiagram_AO_place_electron:nx { 0 } - { \tl_use:N \l__MOdiagram_AO_y_up_electron_tl } + \__modiagram_AO_place_electron:nx {0} + { \tl_use:N \l__modiagram_AO_y_up_electron_tl } } \bool_if:nT { - \l__MOdiagram_AO_down_electron_bool || - \l__MOdiagram_AO_y_down_electron_bool + \l__modiagram_AO_down_electron_bool || + \l__modiagram_AO_y_down_electron_bool } { - \__MOdiagram_AO_place_electron:nx { 1 } - { \tl_use:N \l__MOdiagram_AO_y_down_electron_tl } + \__modiagram_AO_place_electron:nx {1} + { \tl_use:N \l__modiagram_AO_y_down_electron_tl } } - \__MOdiagram_AO:ff - { \tl_use:N \l__MOdiagram_AO_py_electron_tl } - { \tl_use:N \l__MOdiagram_AO_y_electron_color_tl } + \__modiagram_AO:ff + { \tl_use:N \l__modiagram_AO_py_electron_tl } + { \tl_use:N \l__modiagram_AO_y_electron_color_tl } } ; % `o' expansion doesn't seem to make sense here: - \__MOdiagram_AO_get_orbital_y_label:o { \tl_use:N \l__MOdiagram_AO_name_tl y } - \__MOdiagram_node:n { inner~sep=0 , outer~sep=0 } - ( \tl_use:N \l__MOdiagram_AO_name_tl z ) + \__modiagram_AO_get_orbital_y_label:o + { \tl_use:N \l__modiagram_AO_name_tl y } + \__modiagram_node:n { inner~sep=0 , outer~sep=0 } + ( \tl_use:N \l__modiagram_AO_name_tl z ) at ( - \l__MOdiagram_AO_position_dim + \l__MOdiagram_atom_pz_shift_dim , - \l__MOdiagram_AO_dim + \l__modiagram_AO_position_dim + \l__modiagram_atom_pz_shift_dim , + \l__modiagram_AO_dim ) { \bool_if:nT { - \l__MOdiagram_AO_up_electron_bool || - \l__MOdiagram_AO_z_up_electron_bool + \l__modiagram_AO_up_electron_bool || + \l__modiagram_AO_z_up_electron_bool } { - \__MOdiagram_AO_place_electron:nx { 0 } - { \tl_use:N \l__MOdiagram_AO_z_up_electron_tl } + \__modiagram_AO_place_electron:nx {0} + { \tl_use:N \l__modiagram_AO_z_up_electron_tl } } \bool_if:nT { - \l__MOdiagram_AO_down_electron_bool || - \l__MOdiagram_AO_z_down_electron_bool + \l__modiagram_AO_down_electron_bool || + \l__modiagram_AO_z_down_electron_bool } { - \__MOdiagram_AO_place_electron:nx { 1 } - { \tl_use:N \l__MOdiagram_AO_z_down_electron_tl } + \__modiagram_AO_place_electron:nx {1} + { \tl_use:N \l__modiagram_AO_z_down_electron_tl } } - \__MOdiagram_AO:ff - { \tl_use:N \l__MOdiagram_AO_pz_electron_tl } - { \tl_use:N \l__MOdiagram_AO_z_electron_color_tl } + \__modiagram_AO:ff + { \tl_use:N \l__modiagram_AO_pz_electron_tl } + { \tl_use:N \l__modiagram_AO_z_electron_color_tl } } ; - \__MOdiagram_AO_get_orbital_z_label:o - { \tl_use:N \l__MOdiagram_AO_name_tl z } + \__modiagram_AO_get_orbital_z_label:o + { \tl_use:N \l__modiagram_AO_name_tl z } } \group_end: } % --------------------------------------------------------------------------- % % connect arbitrary AOs / MOs -\NewDocumentCommand \connect { m } +\NewDocumentCommand \connect {m} { - \clist_map_variable:nNn { #1 } \l__MOdiagram_tmpa_tl + \clist_map_variable:nNn {#1} \l__modiagram_tmpa_tl { - \tl_remove_all:Nn \l__MOdiagram_tmpa_tl { ~ } - \tl_if_blank:VF \l__MOdiagram_tmpa_tl + \tl_remove_all:Nn \l__modiagram_tmpa_tl {~} + \tl_if_blank:VF \l__modiagram_tmpa_tl { - \__MOdiagram_detect_nodes:x { \l__MOdiagram_tmpa_tl } - \tl_if_in:NnF \l__MOdiagram_node_A_tl { . } - { \tl_put_right:Nn \l__MOdiagram_node_A_tl { . east } } - \tl_if_in:NnF \l__MOdiagram_node_B_tl { . } - { \tl_put_right:Nn \l__MOdiagram_node_B_tl { . west } } - \__MOdiagram_draw_connection:xxx - { \tl_use:N \l__MOdiagram_lines_tl } - { \tl_use:N \l__MOdiagram_node_A_tl } - { \tl_use:N \l__MOdiagram_node_B_tl } + \__modiagram_detect_nodes:x { \l__modiagram_tmpa_tl } + \tl_if_in:NnF \l__modiagram_node_A_tl {.} + { \tl_put_right:Nn \l__modiagram_node_A_tl {.east} } + \tl_if_in:NnF \l__modiagram_node_B_tl {.} + { \tl_put_right:Nn \l__modiagram_node_B_tl {.west} } + \__modiagram_draw_connection:xxx + { \tl_use:N \l__modiagram_lines_tl } + { \tl_use:N \l__modiagram_node_A_tl } + { \tl_use:N \l__modiagram_node_B_tl } } } } -\NewDocumentCommand \__MOdiagram_detect_nodes:n { > { \SplitArgument { 1 } { & } } m } - { \__MOdiagram_detect_nodes_aux_i:nn #1 } -\cs_generate_variant:Nn \__MOdiagram_detect_nodes:n { x } +\NewDocumentCommand \__modiagram_detect_nodes:n { > { \SplitArgument {1} {&} } m } + { \__modiagram_detect_nodes_aux_i:nn #1 } +\cs_generate_variant:Nn \__modiagram_detect_nodes:n {x} -\cs_new_protected:Npn \__MOdiagram_detect_nodes_aux_i:nn #1#2 +\cs_new_protected:Npn \__modiagram_detect_nodes_aux_i:nn #1#2 { - \tl_set:Nn \l__MOdiagram_node_A_tl { #1 } - \tl_set:Nn \l__MOdiagram_node_B_tl { #2 } + \tl_set:Nn \l__modiagram_node_A_tl {#1} + \tl_set:Nn \l__modiagram_node_B_tl {#2} } -\cs_new:Npn \__MOdiagram_draw_connection:nnn #1#2#3 +\cs_new:Npn \__modiagram_draw_connection:nnn #1#2#3 { \draw[#1] (#2) -- (#3) ; } -\cs_generate_variant:Nn \__MOdiagram_draw_connection:nnn { xxx } +\cs_generate_variant:Nn \__modiagram_draw_connection:nnn {xxx} % --------------------------------------------------------------------------- % % orbital labels -\prop_new:N \l__MOdiagram_orbital_label_prop -\tl_set:Nn \l__MOdiagram_orbital_label_fontsize_tl { \small } +\prop_new:N \l__modiagram_orbital_label_prop +\tl_set:Nn \l__modiagram_orbital_label_fontsize_tl { \small } -\cs_new:Npn \__MOdiagram_orbital_label_set:n #1 - { \keys_set:nn { MOdiagram / label } { #1 } } +\cs_new:Npn \__modiagram_orbital_label_set:n #1 + { \keys_set:nn {modiagram/label} {#1} } -\cs_new_protected:Npn \__MOdiagram_get_orbital_label:n #1 +\cs_new_protected:Npn \__modiagram_get_orbital_label:n #1 { - \tl_clear:N \l__MOdiagram_tmpa_tl - \tl_clear:N \l__MOdiagram_tmpb_tl - \prop_get:NnNT \l__MOdiagram_orbital_label_prop { #1 } \l__MOdiagram_tmpa_tl + \tl_clear:N \l__modiagram_tmpa_tl + \tl_clear:N \l__modiagram_tmpb_tl + \prop_get:NnNT \l__modiagram_orbital_label_prop {#1} \l__modiagram_tmpa_tl { - \__MOdiagram_node:x - { below , \tl_use:N \l__MOdiagram_orbital_label_style_tl } - at ( #1 . south ) + \__modiagram_node:x + { below , \tl_use:N \l__modiagram_orbital_label_style_tl } + at (#1.south) { - \tl_use:N \l__MOdiagram_orbital_label_fontsize_tl - \tl_use:N \l__MOdiagram_tmpa_tl + \tl_use:N \l__modiagram_orbital_label_fontsize_tl + \tl_use:N \l__modiagram_tmpa_tl } ; } } -\keys_define:nn { MOdiagram / label } +\keys_define:nn {modiagram/label} { 1sleft .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 1sleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_orbital_label_prop {1sleft} {#1} } , 1sright .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 1sright } { #1 } } , + { \prop_put:Nnn \l__modiagram_orbital_label_prop {1sright} {#1} } , 2sleft .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2sleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_orbital_label_prop {2sleft} {#1} } , 2sright .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2sright } { #1 } } , + { \prop_put:Nnn \l__modiagram_orbital_label_prop {2sright} {#1} } , 2pxleft .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2pxleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_orbital_label_prop {2pxleft} {#1} } , 2pxright .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2pxright } { #1 } } , + { \prop_put:Nnn \l__modiagram_orbital_label_prop {2pxright} {#1} } , 2pyleft .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2pyleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_orbital_label_prop {2pyleft} {#1} } , 2pyright .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2pyright } { #1 } } , + { \prop_put:Nnn \l__modiagram_orbital_label_prop {2pyright} {#1} } , 2pzleft .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2pzleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_orbital_label_prop {2pzleft} {#1} } , 2pzright .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2pzright } { #1 } } , + { \prop_put:Nnn \l__modiagram_orbital_label_prop {2pzright} {#1} } , 1sigma .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 1sigma } { #1 } } , + { \prop_put:Nnn \l__modiagram_orbital_label_prop {1sigma} {#1} } , 1sigma* .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 1sigma* } { #1 } } , + { \prop_put:Nnn \l__modiagram_orbital_label_prop {1sigma*} {#1} } , 2sigma .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2sigma } { #1 } } , + { \prop_put:Nnn \l__modiagram_orbital_label_prop {2sigma} {#1} } , 2sigma* .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2sigma* } { #1 } } , + { \prop_put:Nnn \l__modiagram_orbital_label_prop {2sigma*} {#1} } , 2psigma .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2psigma } { #1 } } , + { \prop_put:Nnn \l__modiagram_orbital_label_prop {2psigma} {#1} } , 2psigma* .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2psigma* } { #1 } } , + { \prop_put:Nnn \l__modiagram_orbital_label_prop {2psigma*} {#1} } , 2piy .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2piy } { #1 } } , + { \prop_put:Nnn \l__modiagram_orbital_label_prop {2piy} {#1} } , 2piy* .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2piy* } { #1 } } , + { \prop_put:Nnn \l__modiagram_orbital_label_prop {2piy*} {#1} } , 2piz .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2piz } { #1 } } , + { \prop_put:Nnn \l__modiagram_orbital_label_prop {2piz} {#1} } , 2piz* .code:n = - { \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2piz* } { #1 } } + { \prop_put:Nnn \l__modiagram_orbital_label_prop {2piz*} {#1} } } \char_set_catcode_math_subscript:N \@ -\cs_new_protected:Npn \__MOdiagram_set_labels: +\cs_new_protected:Npn \__modiagram_set_labels: { - \bool_if:NT \l__MOdiagram_AO_labels_bool + \bool_if:NT \l__modiagram_AO_labels_bool { - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 1sleft } { 1s } - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 1sright } { 1s } - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2sleft } { 2s } - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2sright } { 2s } - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2pxleft } { 2p$@x$ } - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2pxright } { 2p$@x$ } - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2pyleft } { 2p$@y$ } - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2pyright } { 2p$@y$ } - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2pzleft } { 2p$@z$ } - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2pzright } { 2p$@z$ } - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 1sigma } { 1\chemsigma$@s$ } - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 1sigma* } { 1\chemsigma$^*@s$ } - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2sigma } { 2\chemsigma$@s$ } - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2sigma* } { 2\chemsigma$^*@s$ } - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2psigma } { 2\chemsigma$@x$ } - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2psigma* } { 2\chemsigma$^*@x$ } - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2piy } { 2\chempi$@y$ } - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2piy* } { 2\chempi$^*@y$ } - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2piz } { 2\chempi$@z$ } - \prop_put:Nnn \l__MOdiagram_orbital_label_prop { 2piz* } { 2\chempi$^*@z$ } + \prop_put:Nnn \l__modiagram_orbital_label_prop {1sleft} { 1s } + \prop_put:Nnn \l__modiagram_orbital_label_prop {1sright} { 1s } + \prop_put:Nnn \l__modiagram_orbital_label_prop {2sleft} { 2s } + \prop_put:Nnn \l__modiagram_orbital_label_prop {2sright} { 2s } + \prop_put:Nnn \l__modiagram_orbital_label_prop {2pxleft} { 2p$@x$ } + \prop_put:Nnn \l__modiagram_orbital_label_prop {2pxright} { 2p$@x$ } + \prop_put:Nnn \l__modiagram_orbital_label_prop {2pyleft} { 2p$@y$ } + \prop_put:Nnn \l__modiagram_orbital_label_prop {2pyright} { 2p$@y$ } + \prop_put:Nnn \l__modiagram_orbital_label_prop {2pzleft} { 2p$@z$ } + \prop_put:Nnn \l__modiagram_orbital_label_prop {2pzright} { 2p$@z$ } + \prop_put:Nnn \l__modiagram_orbital_label_prop {1sigma} { 1\chemsigma$@s$ } + \prop_put:Nnn \l__modiagram_orbital_label_prop {1sigma*} { 1\chemsigma$^*@s$ } + \prop_put:Nnn \l__modiagram_orbital_label_prop {2sigma} { 2\chemsigma$@s$ } + \prop_put:Nnn \l__modiagram_orbital_label_prop {2sigma*} { 2\chemsigma$^*@s$ } + \prop_put:Nnn \l__modiagram_orbital_label_prop {2psigma} { 2\chemsigma$@x$ } + \prop_put:Nnn \l__modiagram_orbital_label_prop {2psigma*} { 2\chemsigma$^*@x$ } + \prop_put:Nnn \l__modiagram_orbital_label_prop {2piy} { 2\chempi$@y$ } + \prop_put:Nnn \l__modiagram_orbital_label_prop {2piy*} { 2\chempi$^*@y$ } + \prop_put:Nnn \l__modiagram_orbital_label_prop {2piz} { 2\chempi$@z$ } + \prop_put:Nnn \l__modiagram_orbital_label_prop {2piz*} { 2\chempi$^*@z$ } } } \char_set_catcode_letter:N \@ % --------------------------------------------------------------------------- % % electron colours -\prop_new:N \l__MOdiagram_electron_color_prop -\tl_new:N \l__MOdiagram_electron_current_color_tl +\prop_new:N \l__modiagram_electron_color_prop +\tl_new:N \l__modiagram_electron_current_color_tl -\cs_new:Npn \__MOdiagram_electron_color_set:n #1 - { \keys_set:nn { MOdiagram / color } { #1 } } +\cs_new:Npn \__modiagram_electron_color_set:n #1 + { \keys_set:nn {modiagram/color} {#1} } -\cs_new_protected:Npn \__MOdiagram_get_electron_color:n #1 +\cs_new_protected:Npn \__modiagram_get_electron_color:n #1 { - \tl_clear:N \l__MOdiagram_tmpa_tl - \tl_clear:N \l__MOdiagram_tmpb_tl - \prop_get:NnNT \l__MOdiagram_electron_color_prop { #1 } \l__MOdiagram_tmpa_tl - { \tl_set_eq:NN \l__MOdiagram_electron_current_color_tl \l__MOdiagram_tmpa_tl } + \tl_clear:N \l__modiagram_tmpa_tl + \tl_clear:N \l__modiagram_tmpb_tl + \prop_get:NnNT \l__modiagram_electron_color_prop {#1} \l__modiagram_tmpa_tl + { \tl_set_eq:NN \l__modiagram_electron_current_color_tl \l__modiagram_tmpa_tl } } -\keys_define:nn { MOdiagram / color } +\keys_define:nn {modiagram/color} { 1sleft .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 1sleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_color_prop {1sleft} {#1} } , 1sright .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 1sright } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_color_prop {1sright} {#1} } , 2sleft .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 2sleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_color_prop {2sleft} {#1} } , 2sright .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 2sright } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_color_prop {2sright} {#1} } , 2pxleft .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 2pxleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_color_prop {2pxleft} {#1} } , 2pxright .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 2pxright } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_color_prop {2pxright} {#1} } , 2pyleft .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 2pyleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_color_prop {2pyleft} {#1} } , 2pyright .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 2pyright } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_color_prop {2pyright} {#1} } , 2pzleft .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 2pzleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_color_prop {2pzleft} {#1} } , 2pzright .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 2pzright } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_color_prop {2pzright} {#1} } , 1sigma .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 1sigma } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_color_prop {1sigma} {#1} } , 1sigma* .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 1sigma* } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_color_prop {1sigma*} {#1} } , 2sigma .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 2sigma } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_color_prop {2sigma} {#1} } , 2sigma* .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 2sigma* } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_color_prop {2sigma*} {#1} } , 2psigma .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 2psigma } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_color_prop {2psigma} {#1} } , 2psigma* .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 2psigma* } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_color_prop {2psigma*} {#1} } , 2piy .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 2piy } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_color_prop {2piy} {#1} } , 2piy* .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 2piy* } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_color_prop {2piy*} {#1} } , 2piz .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 2piz } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_color_prop {2piz} {#1} } , 2piz* .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_color_prop { 2piz* } { #1 } } + { \prop_put:Nnn \l__modiagram_electron_color_prop {2piz*} {#1} } } % --------------------------------------------------------------------------- % % electron positions -\prop_new:N \l__MOdiagram_electron_up_prop +\prop_new:N \l__modiagram_electron_up_prop -\cs_new:Npn \__MOdiagram_electron_up_set:n #1 - { \keys_set:nn { MOdiagram / up-pos } { #1 } } +\cs_new:Npn \__modiagram_electron_up_set:n #1 + { \keys_set:nn {modiagram/up-pos} {#1} } -\cs_new_protected:Npn \__MOdiagram_get_electron_up:n #1 +\cs_new_protected:Npn \__modiagram_get_electron_up:n #1 { - \tl_clear:N \l__MOdiagram_tmpa_tl - \tl_clear:N \l__MOdiagram_tmpb_tl - \prop_get:NnNT \l__MOdiagram_electron_up_prop { #1 } \l__MOdiagram_tmpa_tl - { \tl_set_eq:NN \l__MOdiagram_AO_up_electron_tl \l__MOdiagram_tmpa_tl } + \tl_clear:N \l__modiagram_tmpa_tl + \tl_clear:N \l__modiagram_tmpb_tl + \prop_get:NnNT \l__modiagram_electron_up_prop {#1} \l__modiagram_tmpa_tl + { \tl_set_eq:NN \l__modiagram_AO_up_electron_tl \l__modiagram_tmpa_tl } } -\keys_define:nn { MOdiagram / up-pos } +\keys_define:nn {modiagram/up-pos} { 1sleft .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 1sleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_up_prop {1sleft} {#1} } , 1sright .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 1sright } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_up_prop {1sright} {#1} } , 2sleft .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 2sleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_up_prop {2sleft} {#1} } , 2sright .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 2sright } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_up_prop {2sright} {#1} } , 2pxleft .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 2pxleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_up_prop {2pxleft} {#1} } , 2pxright .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 2pxright } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_up_prop {2pxright} {#1} } , 2pyleft .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 2pyleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_up_prop {2pyleft} {#1} } , 2pyright .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 2pyright } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_up_prop {2pyright} {#1} } , 2pzleft .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 2pzleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_up_prop {2pzleft} {#1} } , 2pzright .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 2pzright } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_up_prop {2pzright} {#1} } , 1sigma .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 1sigma } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_up_prop {1sigma} {#1} } , 1sigma* .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 1sigma* } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_up_prop {1sigma*} {#1} } , 2sigma .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 2sigma } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_up_prop {2sigma} {#1} } , 2sigma* .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 2sigma* } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_up_prop {2sigma*} {#1} } , 2psigma .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 2psigma } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_up_prop {2psigma} {#1} } , 2psigma* .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 2psigma* } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_up_prop {2psigma*} {#1} } , 2piy .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 2piy } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_up_prop {2piy} {#1} } , 2piy* .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 2piy* } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_up_prop {2piy*} {#1} } , 2piz .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 2piz } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_up_prop {2piz} {#1} } , 2piz* .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_up_prop { 2piz* } { #1 } } + { \prop_put:Nnn \l__modiagram_electron_up_prop {2piz*} {#1} } } -\prop_new:N \l__MOdiagram_electron_down_prop +\prop_new:N \l__modiagram_electron_down_prop -\cs_new:Npn \__MOdiagram_electron_down_set:n #1 - { \keys_set:nn { MOdiagram / down-pos } { #1 } } +\cs_new:Npn \__modiagram_electron_down_set:n #1 + { \keys_set:nn {modiagram/down-pos} {#1} } -\cs_new_protected:Npn \__MOdiagram_get_electron_down:n #1 +\cs_new_protected:Npn \__modiagram_get_electron_down:n #1 { - \tl_clear:N \l__MOdiagram_tmpa_tl - \tl_clear:N \l__MOdiagram_tmpb_tl - \prop_get:NnNT \l__MOdiagram_electron_down_prop { #1 } \l__MOdiagram_tmpa_tl - { \tl_set_eq:NN \l__MOdiagram_AO_down_electron_tl \l__MOdiagram_tmpa_tl } + \tl_clear:N \l__modiagram_tmpa_tl + \tl_clear:N \l__modiagram_tmpb_tl + \prop_get:NnNT \l__modiagram_electron_down_prop {#1} \l__modiagram_tmpa_tl + { \tl_set_eq:NN \l__modiagram_AO_down_electron_tl \l__modiagram_tmpa_tl } } -\keys_define:nn { MOdiagram / down-pos } +\keys_define:nn {modiagram/down-pos} { 1sleft .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 1sleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_down_prop {1sleft} {#1} } , 1sright .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 1sright } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_down_prop {1sright} {#1} } , 2sleft .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 2sleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_down_prop {2sleft} {#1} } , 2sright .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 2sright } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_down_prop {2sright} {#1} } , 2pxleft .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 2pxleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_down_prop {2pxleft} {#1} } , 2pxright .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 2pxright } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_down_prop {2pxright} {#1} } , 2pyleft .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 2pyleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_down_prop {2pyleft} {#1} } , 2pyright .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 2pyright } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_down_prop {2pyright} {#1} } , 2pzleft .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 2pzleft } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_down_prop {2pzleft} {#1} } , 2pzright .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 2pzright } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_down_prop {2pzright} {#1} } , 1sigma .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 1sigma } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_down_prop {1sigma} {#1} } , 1sigma* .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 1sigma* } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_down_prop {1sigma*} {#1} } , 2sigma .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 2sigma } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_down_prop {2sigma} {#1} } , 2sigma* .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 2sigma* } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_down_prop {2sigma*} {#1} } , 2psigma .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 2psigma } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_down_prop {2psigma} {#1} } , 2psigma* .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 2psigma* } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_down_prop {2psigma*} {#1} } , 2piy .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 2piy } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_down_prop {2piy} {#1} } , 2piy* .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 2piy* } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_down_prop {2piy*} {#1} } , 2piz .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 2piz } { #1 } } , + { \prop_put:Nnn \l__modiagram_electron_down_prop {2piz} {#1} } , 2piz* .code:n = - { \prop_put:Nnn \l__MOdiagram_electron_down_prop { 2piz* } { #1 } } + { \prop_put:Nnn \l__modiagram_electron_down_prop {2piz*} {#1} } } % --------------------------------------------------------------------------- % % energy axis \dim_new:N \l_energy_axis_dim -\dim_set:Nn \l_energy_axis_dim { 0pt } +\dim_set:Nn \l_energy_axis_dim {0pt} -\tl_new:N \l__MOdiagram_Eaxis_head_tl -\tl_set:Nn \l__MOdiagram_Eaxis_head_tl { latex } -\tl_new:N \l__MOdiagram_Eaxis_title_tl +\tl_new:N \l__modiagram_Eaxis_head_tl +\tl_set:Nn \l__modiagram_Eaxis_head_tl {latex} +\tl_new:N \l__modiagram_Eaxis_title_tl -\bool_new:N \l__MOdiagram_Eaxis_title_bool -\bool_set_false:N \l__MOdiagram_Eaxis_title_bool +\bool_new:N \l__modiagram_Eaxis_title_bool +\bool_set_false:N \l__modiagram_Eaxis_title_bool -\NewDocumentCommand \__MOdiagram_EnergyAxis: { o } +\NewDocumentCommand \__modiagram_EnergyAxis: {o} { - \IfNoValueF { #1 } { \keys_set:nn { MOdiagram / axis } { #1 } } - \__MOdiagram_draw:f { - \tl_use:N \l__MOdiagram_Eaxis_head_tl } - (\l_energy_axis_dim , \g__MOdiagram_min_energy_dim - 1cm ) + \IfNoValueF {#1} { \keys_set:nn {modiagram/axis} {#1} } + \__modiagram_draw:f { - \tl_use:N \l__modiagram_Eaxis_head_tl } + (\l_energy_axis_dim , \g__modiagram_min_energy_dim - 1cm ) -- - (\l_energy_axis_dim , \g__MOdiagram_max_energy_dim + 1cm ) - \bool_if:NT \l__MOdiagram_Eaxis_title_bool - { node [ above ] { \tl_use:N \l__MOdiagram_Eaxis_title_tl } } + (\l_energy_axis_dim , \g__modiagram_max_energy_dim + 1cm ) + \bool_if:NT \l__modiagram_Eaxis_title_bool + { node [ above ] { \tl_use:N \l__modiagram_Eaxis_title_tl } } ; } -\keys_define:nn { MOdiagram / axis } +\keys_define:nn {modiagram/axis} { title .code:n = { - \bool_set_true:N \l__MOdiagram_Eaxis_title_bool - \tl_set:Nn \l__MOdiagram_Eaxis_title_tl { #1 } + \bool_set_true:N \l__modiagram_Eaxis_title_bool + \tl_set:Nn \l__modiagram_Eaxis_title_tl {#1} } , title .default:n = energy , - head .tl_set:N = \l__MOdiagram_Eaxis_head_tl , + head .tl_set:N = \l__modiagram_Eaxis_head_tl , head .default:n = > } % --------------------------------------------------------------------------- % % tikz helper functions -\cs_new:Npn \__MOdiagram_node:n #1 - { \node [ #1 ] } -\cs_generate_variant:Nn \__MOdiagram_node:n { f,x } +\cs_new:Npn \__modiagram_node:n #1 + { \node [#1] } +\cs_generate_variant:Nn \__modiagram_node:n {f,x} -\cs_new:Npn \__MOdiagram_draw:n #1 - { \draw [ #1 ] } -\cs_generate_variant:Nn \__MOdiagram_draw:n { f } +\cs_new:Npn \__modiagram_draw:n #1 + { \draw [#1] } +\cs_generate_variant:Nn \__modiagram_draw:n {f} -\cs_new:Npn \__MOdiagram_tikz:nn #1 - { \tikz [ #1 ] } -\cs_generate_variant:Nn \__MOdiagram_tikz:nn { fn,xn } +\cs_new:Npn \__modiagram_tikz:nn #1 + { \tikz [#1] } +\cs_generate_variant:Nn \__modiagram_tikz:nn {f,x} -\cs_new:Npn \__MOdiagram_tikzpicture:n #1 - { \tikzpicture [ #1 ] } -\cs_generate_variant:Nn \__MOdiagram_tikzpicture:n { f } +\cs_new:Npn \__modiagram_tikzpicture:n #1 + { \tikzpicture [#1] } +\cs_generate_variant:Nn \__modiagram_tikzpicture:n {f} -\tex_endinput:D +\file_input_stop: % --------------------------------------------------------------------------- % Version history 2011/09/25 version 0.1 - first upload to CTAN 2011/10/27 version 0.2 - \atom, \molecule, \AO, \EnergyAxis only defined within - the MOdiagram environment + the modiagram environment - bugfix in energy splitting process - bugfix: wrong labelling of plain empty orbitals - different values for energy gain and loss possible @@ -2081,8 +2129,15 @@ Version history 2014/06/28 version 0.2e - fix: adapt to deprecated expl3 command 2015/07/19 version 0.2f - fix: adapt to deprecated expl3 command 2015/09/23 version 0.2g - fix: adapt to deprecated expl3 command +2019/10/31 version 0.3 - correct wrong expl3 code + - rename `MOdiagram' into `modiagram' + - rename \MOsetup into \setmodiagram + TODO +- reduce code duplication +- reduce usage of f expansion +- get rid of hard-coded defaults - 3s, 3p , 3sMO , 3pMO , 4s , sp3 - energy axis: ticks? at orbital heights? - electron configuration diff --git a/macros/latex/contrib/modiagram/modiagram_en.pdf b/macros/latex/contrib/modiagram/modiagram_en.pdf index d63a233e3a..4aefd6b5fb 100644 Binary files a/macros/latex/contrib/modiagram/modiagram_en.pdf and b/macros/latex/contrib/modiagram/modiagram_en.pdf differ diff --git a/macros/latex/contrib/modiagram/modiagram_en.tex b/macros/latex/contrib/modiagram/modiagram_en.tex index 3d5cc900ed..049f7a0da0 100644 --- a/macros/latex/contrib/modiagram/modiagram_en.tex +++ b/macros/latex/contrib/modiagram/modiagram_en.tex @@ -13,7 +13,7 @@ % If you have any ideas, questions, suggestions or bugs to report, please % feel free to contact me. % -------------------------------------------------------------------------- -% Copyright 2011--2015 Clemens Niederberger +% Copyright 2011--2019 Clemens Niederberger % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 @@ -45,9 +45,9 @@ connect, EnergyAxis, molecule, - MOsetup + setmodiagram } , - add-envs = { MOdiagram } , + add-envs = { modiagram } , add-silent-cmds = { ch, draw, @@ -58,17 +58,19 @@ chemSigma } , abstract = {% - \begin{MOdiagram}[style=fancy,distance=7cm,AO-width=15pt,labels,names] + \begin{modiagram}[style=fancy,distance=7cm,AO-width=15pt,labels,names] \atom[N]{left}{ 2p = {0;up,up,up} } \atom[O]{right}{ 2p = {2;pair,up,up} } \molecule[NO]{ 2pMO = {1.8,.4;pair,pair,pair,up}, color = { 2piy*=red } } - \end{MOdiagram} + \end{modiagram} } } +\newpackagename\modiag{modiagram} + \defbibheading{bibliography}{\addsec{References}} \usepackage{booktabs} @@ -83,9 +85,14 @@ long = molecular orbital } -\expandafter\def\csname libertine@figurestyle\endcsname{LF} -\usepackage[libertine]{newtxmath} -\expandafter\def\csname libertine@figurestyle\endcsname{OsF} +\makeatletter +\def\libertine@figurestyle{LF} +\RequirePackage{amsmath} +\undef\lvert \undef\lVert +\undef\rvert \undef\rVert +\RequirePackage[libertine]{newtxmath} +\def\libertine@figurestyle{OsF} +\makeatother \usepackage{chemmacros,chemformula} \chemsetup{ @@ -98,11 +105,11 @@ {% \begingroup \IfNoValueTF{#1} - {\MOsetup{ style=square,AO-width=8pt }}% - {\MOsetup{ style=square,AO-width=8pt , #1 }}% - \begin{MOdiagram} + {\setmodiagram{ style=square,AO-width=8pt }}% + {\setmodiagram{ style=square,AO-width=8pt , #1 }}% + \begin{modiagram} \AO{s}{0;#2} - \end{MOdiagram}% + \end{modiagram}% \endgroup } @@ -113,7 +120,7 @@ \section{Licence, Requirements} \license -\modiagram\ uses \bnd{l3kernel}~\cite{bnd:l3kernel} and +\modiag\ uses \bnd{l3kernel}~\cite{bnd:l3kernel} and \bnd{l3packages}~\cite{bnd:l3packages}. It also uses \TikZ~\cite{pkg:pgf} and the package \pkg{chemgreek}~\cite{pkg:chemgreek} bundle. Additionally the \TikZ\ libraries \code{calc} and \code{arrows} are loaded. Knowledge of @@ -133,14 +140,14 @@ question Otherwise, I think I'll have a go at it in \TikZ. \end{cnltxquote} The problem was solved using \TikZ, since no package existed for that purpose. -For one thing \modiagram\ is intended to fill this gap. I also found it very +For one thing \modiag\ is intended to fill this gap. I also found it very tedious, to make all this copying and pasting when I needed a second, third, -\ldots\ diagram. \modiagram\ took care of that. +\ldots\ diagram. \modiag\ took care of that. \section{Main Commands} All molecular orbital (MO) diagrams are created using the environment -\env{MOdiagram}{}. +\env{modiagram}{}. \subsection{The \cs*{atom} Command} \begin{commands} @@ -152,13 +159,13 @@ All molecular orbital (MO) diagrams are created using the environment Let's take a look at an example: \begin{example}[side-by-side] - \begin{MOdiagram} + \begin{modiagram} \atom{right}{ 1s = { 0; pair} , 2s = { 1; pair} , 2p = {1.5; up, down } } - \end{MOdiagram} + \end{modiagram} \end{example} As you can see, the argument \meta{AO-spec} is essential to create the actual @@ -180,20 +187,20 @@ the \ac{AO} vertically by \meta{rel-energy} \si{\centi\metre}. The argument \meta{left}/\meta{right} is important, when p~orbitals are used. For instance compare the following example to the one before: \begin{example}[side-by-side] - \begin{MOdiagram} + \begin{modiagram} \atom{left}{ 1s = { 0; pair} , 2s = { 1; pair} , 2p = {1.5; up, down } } - \end{MOdiagram} + \end{modiagram} \end{example} When both variants are used one can also see, that the right atom is shifted to the right (hence the naming). The right atom is shifted by \SI{4}{\centi\metre} per default and can be adjusted individually, see page~\pageref{option:distance}. \begin{example} - \begin{MOdiagram} + \begin{modiagram} \atom{left}{ 1s = { 0; pair} , 2s = { 1; pair} , @@ -204,7 +211,7 @@ per default and can be adjusted individually, see page~\pageref{option:distance} 2s = { 1; pair} , 2p = {1.5; up, down } } - \end{MOdiagram} + \end{modiagram} \end{example} With the command \cs{molecule} (section~\ref{ssec:molecule}) the reason for the shift becomes clear. @@ -212,23 +219,23 @@ shift becomes clear. Any of the arguments for the \ac{AO} can be left empty or be omitted. \begin{example}[side-by-side] Without argument: default height, full:\par - \begin{MOdiagram} + \begin{modiagram} \atom{left}{1s, 2s, 2p} - \end{MOdiagram} + \end{modiagram} \end{example} \begin{example}[side-by-side] empty argument: default height, empty:\par - \begin{MOdiagram} + \begin{modiagram} \atom{left}{1s=, 2s=, 2p=} - \end{MOdiagram} + \end{modiagram} \end{example} \begin{example}[side-by-side] using some values:\par - \begin{MOdiagram} + \begin{modiagram} \atom{left}{1s, 2s=1, 2p={;,up} } - \end{MOdiagram} + \end{modiagram} \end{example} \subsection{The \cs*{molecule} Command}\label{ssec:molecule} @@ -240,11 +247,11 @@ Any of the arguments for the \ac{AO} can be left empty or be omitted. An example first: \begin{example}[side-by-side] - \begin{MOdiagram} + \begin{modiagram} \atom{left} { 1s = { 0; up } } \atom{right}{ 1s = { 0; up } } \molecule { 1sMO = {.75; pair } } - \end{MOdiagram} + \end{modiagram} \end{example} The command \cs{molecule} connects the \acp{AO} with the bonding and anti-bondung \acp{MO}. \cs{molecule} can only be used \emph{after} one has @@ -269,11 +276,11 @@ The argument \meta{MO-spec} accepts a comma separated list of key/value pairs: Obviously the regarding \acp{AO} must have been set in order to connect them. This for example won't work: \begin{sourcecode} - \begin{MOdiagram} + \begin{modiagram} \atom{left} { 1s = 0 } \atom{right}{ 1s = 0 } \molecule { 2sMO = .75 } - \end{MOdiagram} + \end{modiagram} \end{sourcecode} The value used in \meta{energy gain} determines how many \si{\centi\metre} the bonding \ac{MO} lies below the lower \ac{AO} or how many \si{\centi\metre} the @@ -281,52 +288,52 @@ anti-bondung \ac{MO} lies above the higher \ac{AO}. \begin{example}[side-by-side] same level:\par - \begin{MOdiagram} + \begin{modiagram} \atom{left} { 1s = { 0; up } } \atom{right}{ 1s = { 0; up } } \molecule { 1sMO = {.75; pair } } - \end{MOdiagram} + \end{modiagram} different levels:\par - \begin{MOdiagram} + \begin{modiagram} \atom{left} { 1s = { 0; up } } \atom{right}{ 1s = { 1; up } } \molecule { 1sMO = {.25; pair } } - \end{MOdiagram} + \end{modiagram} \end{example} If you specify \meta{energy loss} you can create non-symmetrical splittings. Then, the first value (\meta{energy gain}) is used for the bonding \ac{MO} and the second value (\meta{energy loss}) is used for the anti-bonding \ac{MO}. \begin{example}[side-by-side] - \begin{MOdiagram} + \begin{modiagram} \atom{left} { 1s = { 0; up } } \atom{right}{ 1s = { 0; up } } \molecule { 1sMO = {.75/.25; pair } } - \end{MOdiagram} + \end{modiagram} - \begin{MOdiagram} + \begin{modiagram} \atom{left} { 1s = { 0; up } } \atom{right}{ 1s = { 1; up } } \molecule { 1sMO = {.25/.75; pair } } - \end{MOdiagram} + \end{modiagram} \end{example} Please be aware, that you have to specify \emph{two} such values or pairs with \option{2pMO}: the splitting of the \chemsigma\ orbitals and the splitting of the \chempi\ orbitals. \begin{example} - \begin{MOdiagram} + \begin{modiagram} \atom{left} { 2p = { 0; up, up } } \atom{right}{ 2p = { 1; up, up } } \molecule { 2pMO = { 1.5, .75; pair, up, up } } - \end{MOdiagram} + \end{modiagram} \end{example} The complete \ac{MO} diagram for triplett dioxygen now could look something like that: \begin{example} - \begin{MOdiagram} + \begin{modiagram} \atom{left}{ 1s, 2s, 2p = {;pair,up,up} } @@ -336,7 +343,7 @@ like that: \molecule{ 1sMO, 2sMO, 2pMO = {;pair,pair,pair,up,up} } - \end{MOdiagram} + \end{modiagram} \end{example} \subsection{The Naming Scheme}\label{Namensgebung} @@ -344,7 +351,7 @@ Since one wants to be able to put labels to the orbitals and since they are nodes in a \env*{tikzpicture}, the internal naming scheme is important. It closely follows the function: \begin{center} - \begin{MOdiagram}[ + \begin{modiagram}[ distance = 6cm, AO-width = 20pt, labels-fs = \ttfamily\footnotesize, @@ -391,13 +398,13 @@ closely follows the function: 2piz* = {2piz*} } } - \end{MOdiagram} + \end{modiagram} \end{center} With these names it is possible to reference the orbitals with the known \TikZ commands: \begin{example}[side-by-side] - \begin{MOdiagram} + \begin{modiagram} \atom{left} { 1s = 0 } \atom{right}{ 1s = 0 } \molecule { 1sMO = .75 } @@ -405,11 +412,11 @@ commands: (1sigma.center) -- (1sigma*.center) ; \draw[red] (1sigma*) ++ (2cm,.5cm) node {splitting} ; - \end{MOdiagram} + \end{modiagram} \end{example} \begin{example} - \begin{MOdiagram} + \begin{modiagram} \atom{left} { 1s = 0 } \atom{right}{ 1s = 0 } \molecule { 1sMO = .75 } @@ -417,7 +424,7 @@ commands: (1sigma*) circle (8pt); \draw[<-,shorten <=8pt,shorten >=15pt,blue] (1sigma*) --++(2,1) node {anti-bonding MO}; - \end{MOdiagram} + \end{modiagram} \end{example} \subsection{Placing AOs and MOs Arbitrarily}\label{ssec:AO_MO_irgendwo} @@ -428,7 +435,7 @@ anti-bonding combination of two p orbitals of Flourine with one p orbital of Xenon: \begin{center} - \begin{MOdiagram}[names] + \begin{modiagram}[names] \atom[\chlewis{0.}{F}\hspace*{5mm}\chlewis{180.}{F}]{left}{ 1s=.2;up,up-el-pos={1sleft=.5} } @@ -440,7 +447,7 @@ Xenon: \node[right,xshift=4mm] at (1sigma) {\footnotesize bonding}; \node[above] at (AO2.90) {\footnotesize non-bonding}; \node[above] at (1sigma*.90) {\footnotesize anti-bonding}; - \end{MOdiagram} + \end{modiagram} \end{center} To create diagrams like this there is the following command, which draws a single @@ -459,10 +466,10 @@ To create diagrams like this there is the following command, which draws a singl Depending on the \meta{type} one s or three p orbitals are drawn. \begin{example}[side-by-side] - \begin{MOdiagram} + \begin{modiagram} \AO{s}{0;} \AO(-20pt){p}{1;pair,up,down} - \end{MOdiagram} + \end{modiagram} \end{example} If one wants to place such an \ac{AO} at the position of an atom, one has to @@ -475,21 +482,21 @@ section~\ref{orbital-positionen}):\label{xshift} \end{itemize} \begin{example}[side-by-side] - \begin{MOdiagram} + \begin{modiagram} \atom{left} {1s=0} \atom{right}{1s=0} \molecule {1sMO=1} \AO(1cm){s}{2} \AO(3cm){s}{2} \AO(5cm){s}{2} - \end{MOdiagram} + \end{modiagram} \end{example} Within the p orbitals there is an additional shift by \SI{20}{pt} per orbital. This is equivalent to a double shift by the length \code{AO-width} (see section~\ref{option:AO-width}): \begin{example} - \begin{MOdiagram} + \begin{modiagram} \atom{left} {2p=0} \atom{right}{2p=0} % above the left atom: @@ -500,26 +507,26 @@ section~\ref{option:AO-width}): \AO(1cm) {s}{ .5} \AO(5cm+20pt){s}{ 1;up} \AO(5cm+40pt){s}{1.5;down} - \end{MOdiagram} + \end{modiagram} \end{example} The \acp{AO} created with \cs{AO} also can be connected. For this you can use the \TikZ\ command \cs*{draw}, of course. You can use the predefined node names\ldots \begin{example} - \begin{MOdiagram} + \begin{modiagram} \AO{s}{0} \AO(2cm){s}{1} \AO{s}{2} \AO(2cm){s}{1.5} \draw[red] (AO1.0) -- (AO2.180) (AO3.0) -- (AO4.180); - \end{MOdiagram} + \end{modiagram} \end{example} \ldots\ or use own node names \begin{example} - \begin{MOdiagram} + \begin{modiagram} \AO[a]{s}{0} \AO[b](2cm){s}{1} \AO[c]{s}{2} \AO[d](2cm){s}{1.5} \draw[red] (a.0) -- (b.180) (c.0) -- (d.180); - \end{MOdiagram} + \end{modiagram} \end{example} The predefined names are \code{AO1}, \code{AO2} \etc for the type \code{s} and @@ -527,15 +534,15 @@ The predefined names are \code{AO1}, \code{AO2} \etc for the type \code{s} and \code{p}. Nodes of the type \code{p} get an \code{x}, \code{y} or \code{z} if you specify your own name, too. \begin{example} - \begin{MOdiagram} + \begin{modiagram} \AO{p}{0} \draw[<-,shorten >=5pt] (AO1y.-90) -- ++ (.5,-1) node {y}; - \end{MOdiagram} + \end{modiagram} and - \begin{MOdiagram} + \begin{modiagram} \AO[A]{p}{0} \draw[<-,shorten >=5pt] (Ay.-90) -- ++ (.5,-1) node {y}; - \end{MOdiagram} + \end{modiagram} \end{example} However, if you want the lines to be drawn in the same style as the ones @@ -549,11 +556,11 @@ created by \cs{molecule}\footnote{which can be customized, see This command expects a comma separated list of node name pairs that are to be connected. The names have to be connected with a \code{\&}: \begin{example}[side-by-side] - \begin{MOdiagram} + \begin{modiagram} \AO{s}{0;} \AO(2cm){s}{1;} \AO{s}{2;} \AO(2cm){s}{1.5;} \connect{ AO1 & AO2, AO3 & AO4 } - \end{MOdiagram} + \end{modiagram} \end{example} Some things still need to be said: \cs{connect} adds the anchor \code{east} to @@ -574,7 +581,7 @@ depending on the values of \meta{distance} (\meta{dist}) and \meta{AO-width} (\meta{AO}). In sections~\ref{option:distance} and \ref{option:AO-width} these lengths and how they can be changed are discussed. \begin{center} - \begin{MOdiagram}[ + \begin{modiagram}[ AO-width = 22pt , labels-fs = \ttfamily\tiny , labels-style = {text width=40pt,align=center,yshift=11pt}] @@ -617,7 +624,7 @@ lengths and how they can be changed are discussed. 2piz* = {.5*\meta{dist} + 1cm + \meta{AO}} } } - \end{MOdiagram} + \end{modiagram} \end{center} \subsection{Default Values} @@ -663,23 +670,23 @@ it needs a value for \meta{energy}, though. Compare these examples: \begin{example}[side-by-side] - \begin{MOdiagram} + \begin{modiagram} \atom{left} { 1s={0;pair} } \atom{right}{ 1s } - \end{MOdiagram} + \end{modiagram} \hrulefill - \begin{MOdiagram} + \begin{modiagram} \atom{left}{ 1s=1 } \atom{right}{ 1s= } - \end{MOdiagram} + \end{modiagram} \end{example} \section{Customization} The options of the section~\ref{ssec:umgebungs_optionen} can be set global as package option, \ie, with \cs*{usepackage}\oarg{options}\Marg{modiagram}, or -via the setup command \cs{MOsetup}\marg{options}. +via the setup command \cs{setmodiagram}\marg{options}. \subsection{Environment Options}\label{ssec:umgebungs_optionen} There are some options with which the layout of the \ac{MO} diagrams can be @@ -728,9 +735,9 @@ changed: They all are discussed in the following sections. If they're used as options for the environment, they're set locally and only change that environment. \begin{sourcecode} - \begin{MOdiagram}[options] + \begin{modiagram}[options] ... - \end{MOdiagram} + \end{modiagram} \end{sourcecode} \subsubsection{Option \option*{style}}\label{option:style} @@ -746,47 +753,47 @@ There are five different styles which can be chosen. Let's take the \ac{MO} diagram of \ch{H2} to illustrate the different styles: \begin{example}[side-by-side] % use package `chemmacros' - \begin{MOdiagram}[style=plain]% default + \begin{modiagram}[style=plain]% default \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \begin{example}[side-by-side] % use package `chemmacros' - \begin{MOdiagram}[style=square] + \begin{modiagram}[style=square] \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \begin{example}[side-by-side] % use package `chemmacros' - \begin{MOdiagram}[style=circle] + \begin{modiagram}[style=circle] \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \begin{example}[side-by-side] % use package `chemmacros' - \begin{MOdiagram}[style=round] + \begin{modiagram}[style=round] \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \begin{example}[side-by-side] % use package `chemmacros' - \begin{MOdiagram}[style=fancy] + \begin{modiagram}[style=fancy] \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \subsubsection{Option \option*{distance}}\label{option:distance} @@ -798,11 +805,11 @@ length can be adjusted. This will change the position of the right atom to section~\ref{orbital-positionen}. \begin{example}[side-by-side] % use package `chemmacros' - \begin{MOdiagram}[distance=6cm] + \begin{modiagram}[distance=6cm] \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \subsubsection{Option \option*{AO-width}}\label{option:AO-width} @@ -811,20 +818,20 @@ orbital displayed with the \code{plain} style. It's default value is \SI{10}{pt}. \begin{example}[side-by-side] % use package `chemmacros' - \begin{MOdiagram}[AO-width=15pt] + \begin{modiagram}[AO-width=15pt] \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \begin{example}[side-by-side] % use package `chemmacros' - \begin{MOdiagram}[style=fancy,AO-width=15pt] + \begin{modiagram}[style=fancy,AO-width=15pt] \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} By changing the value of \option{AO-width} the positions of the p and the \chempi\ orbitals also change, see section~\ref{orbital-positionen}. @@ -841,29 +848,29 @@ the arrows and \code{1} \emph{full} distance (with respect to the length \begin{example}[side-by-side] % use package `chemmacros' - \begin{MOdiagram}[el-sep=.2]% default + \begin{modiagram}[el-sep=.2]% default \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \begin{example}[side-by-side] % use package `chemmacros' - \begin{MOdiagram}[el-sep=0] + \begin{modiagram}[el-sep=0] \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \begin{example}[side-by-side] % use package `chemmacros' - \begin{MOdiagram}[el-sep=1] + \begin{modiagram}[el-sep=1] \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} The options \key{up-el-pos}{} and \key{down-el-pos}{} can be used @@ -873,29 +880,29 @@ means \emph{on the left} and \code{1} means \emph{on the right}. \begin{example} % use package `chemmacros' - \begin{MOdiagram}[up-el-pos=.4,down-el-pos=.6]% default + \begin{modiagram}[up-el-pos=.4,down-el-pos=.6]% default \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \begin{example} % use package `chemmacros' - \begin{MOdiagram}[up-el-pos=.333,down-el-pos=.667] + \begin{modiagram}[up-el-pos=.333,down-el-pos=.667] \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \begin{example} % use package `chemmacros' - \begin{MOdiagram}[up-el-pos=.7,down-el-pos=.3] + \begin{modiagram}[up-el-pos=.7,down-el-pos=.3] \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \subsubsection{Option \option*{lines}}\label{option:lines} @@ -903,11 +910,11 @@ The option \option{lines} can be used to modify the \TikZ\ style of the connecting lines: \begin{example}[side-by-side] % use package `chemmacros' - \begin{MOdiagram}[lines={gray,thin}] + \begin{modiagram}[lines={gray,thin}] \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \subsubsection{Option \option*{names}}\label{option:names} @@ -916,11 +923,11 @@ provided you have used the optional \meta{name} argument of \cs{atom} and/or \cs{molecule}. \begin{example}[side-by-side] % use package `chemmacros' - \begin{MOdiagram}[names] + \begin{modiagram}[names] \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \subsubsection{Options \option*{names-style} and \option*{names-style-add}}\label{option:names_style} @@ -930,11 +937,11 @@ of the molecule. By default this setting is used: for Version 2.10'' p.\,183 section 16.4.4 (pgfmanual.pdf) for the meaning}. \begin{example}[side-by-side] % use package `chemmacros' - \begin{MOdiagram}[names,names-style={draw=blue}] + \begin{modiagram}[names,names-style={draw=blue}] \atom[p]{left} { 1s = {;up} } \atom[b]{right}{ 1s = {;up} } \molecule[\ch{X2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} With this the default setting is overwritten. As you can see it destroys the @@ -942,37 +949,37 @@ vertical alignment of the nodes. In order to avoid that you can for example specify \code{text height} and \code{text depth} yourself \ldots \begin{example} % use package `chemmacros' - \begin{MOdiagram}[names,names-style={text height=1.5ex, text depth=.25ex, draw=blue}] + \begin{modiagram}[names,names-style={text height=1.5ex, text depth=.25ex, draw=blue}] \atom[p]{left} { 1s = {;up} } \atom[b]{right}{ 1s = {;up} } \molecule[\ch{X2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \ldots, add the \code{anchor} again \ldots \begin{example} % use package `chemmacros' - \begin{MOdiagram}[names,names-style={anchor=base, draw=blue}] + \begin{modiagram}[names,names-style={anchor=base, draw=blue}] \atom[p]{left} { 1s = {;up} } \atom[b]{right}{ 1s = {;up} } \molecule[\ch{X2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \ldots\ or use the option \key{names-style-add}. It doesn't overwrite the current setting but appends the new declaration: \begin{example} % use package `chemmacros' - \begin{MOdiagram}[names,names-style-add={draw=blue}] + \begin{modiagram}[names,names-style-add={draw=blue}] \atom[p]{left} { 1s = {;up} } \atom[b]{right}{ 1s = {;up} } \molecule[\ch{X2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \begin{example} % use package `chemmacros' - \MOsetup{ + \setmodiagram{ names, names-style = { text height = 2.5ex, @@ -981,16 +988,16 @@ current setting but appends the new declaration: rounded corners } } - \begin{MOdiagram} + \begin{modiagram} \atom[p]{left} { 1s = {;up} } \atom[b]{right}{ 1s = {;up} } \molecule[\ch{X2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} - \begin{MOdiagram}[names-style-add={fill=blue!20}] + \end{modiagram} + \begin{modiagram}[names-style-add={fill=blue!20}] \atom[p]{left} { 1s = {;up} } \atom[b]{right}{ 1s = {;up} } \molecule[\ch{X2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \subsubsection{Option \option*{labels}}\label{option:labels} @@ -998,11 +1005,11 @@ If you use the option \option{labels} predefined labels are written below the orbitals. These labels can be changed, see section~\ref{sec:key:label}. \begin{example}[side-by-side] % use package `chemmacros' - \begin{MOdiagram}[labels] + \begin{modiagram}[labels] \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \subsubsection{Option \option*{labels-fs}}\label{option:labels-fs} @@ -1010,21 +1017,21 @@ Labels are set with the font size \cs*{small}. If you want to change that you can use the option \option{labels-fs}. \begin{example} % use package `chemmacros' - \begin{MOdiagram}[labels,labels-fs=\footnotesize] + \begin{modiagram}[labels,labels-fs=\footnotesize] \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} This also allows you to change the font style or font shape of the labels. \begin{example} % use package `chemmacros' - \begin{MOdiagram}[labels,labels-fs=\sffamily\footnotesize] + \begin{modiagram}[labels,labels-fs=\sffamily\footnotesize] \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \subsubsection{Option \option*{labels-style}}\label{option:labels-style} @@ -1032,11 +1039,11 @@ The option \option{labels-style} changes the \TikZ\ style of the nodes within which the labels are written. \begin{example} % use package `chemmacros' - \begin{MOdiagram}[labels,labels-style={blue,yshift=4pt}] + \begin{modiagram}[labels,labels-style={blue,yshift=4pt}] \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair} } - \end{MOdiagram} + \end{modiagram} \end{example} \subsection{\cs*{atom} and \cs*{molecule} Specific Customizations} @@ -1049,18 +1056,18 @@ key/value list. The names mentioned in section~\ref{Namensgebung} are used as keys to specify the \ac{AO} that you want to label. \begin{example}[side-by-side] % use package `chemmacros' - \begin{MOdiagram}[labels-fs=\footnotesize] + \begin{modiagram}[labels-fs=\footnotesize] \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair}, label = { 1sigma = {bonding MO} } } - \end{MOdiagram} + \end{modiagram} \end{example} \begin{example}[side-by-side] - \begin{MOdiagram}[style=square,distance=6cm] + \begin{modiagram}[style=square,distance=6cm] \atom{left} { 1s = {;up} } \atom{right}{ 1s = {;up} } \molecule{ @@ -1072,21 +1079,21 @@ keys to specify the \ac{AO} that you want to label. } \node[right] at (1sigma.-45) {bonding}; \node[right] at (1sigma*.45) {anti-bonding}; - \end{MOdiagram} + \end{modiagram} \end{example} If the option is used together with the \option{labels} option (page~\pageref{option:labels}) single labels are overwritten: \begin{example}[side-by-side] % use package `chemmacros' - \begin{MOdiagram}[labels] + \begin{modiagram}[labels] \atom[H]{left} { 1s = {;up} } \atom[H]{right}{ 1s = {;up} } \molecule[\ch{H2}]{ 1sMO = {.75;pair}, label = { 1sigma = \textcolor{red}{??} } } - \end{MOdiagram} + \end{modiagram} \end{example} \subsubsection{The \option*{color} Key}\label{sec:key:color} @@ -1094,7 +1101,7 @@ Analogous to the \option{label} key the \option{color} key can be used to display coloured electrons: \begin{example}[side-by-side] % use package `chemmacros' - \begin{MOdiagram}[labels-fs=\footnotesize] + \begin{modiagram}[labels-fs=\footnotesize] \atom[H]{left}{ 1s, color = { 1sleft = blue } } @@ -1106,7 +1113,7 @@ display coloured electrons: label = { 1sigma = {bonding MO} }, color = { 1sigma = green, 1sigma* = cyan } } - \end{MOdiagram} + \end{modiagram} \end{example} \subsubsection{The \option*{up-el-pos} and \option*{down-el-pos} keys}\label{sec:key:electrons} @@ -1116,7 +1123,7 @@ You need to use values between \code{0} and \code{1}, also see section~\ref{option:electrons}. \begin{example}[side-by-side] % use package `chemmacros' - \begin{MOdiagram} + \begin{modiagram} \atom[H]{left}{ 1s = {;up}, up-el-pos = { 1sleft=.5 } @@ -1127,7 +1134,7 @@ section~\ref{option:electrons}. up-el-pos = { 1sigma=.15 } , down-el-pos = { 1sigma=.85 } } - \end{MOdiagram} + \end{modiagram} \end{example} \subsection{\cs*{AO} Specific Customizations}\label{ssec:AO_anpassen} @@ -1138,10 +1145,10 @@ The key \option{label}\Oarg{\meta{x}/\meta{y}/\meta{z}} allows you to put a label to the \ac{AO}/\ac{MO}. If you use the type \code{p} you can specify the orbital you want to label in square brackets: \begin{example}[side-by-side] - \begin{MOdiagram}[style=square] + \begin{modiagram}[style=square] \AO{s}[label={s orbital}]{0} \AO{p}[label[y]=py,label[z]=pz]{1.5} - \end{MOdiagram} + \end{modiagram} \end{example} \subsubsection{The \option*{color} Key}\label{key:AO_color} @@ -1150,10 +1157,10 @@ Analogous to the \option{label} key there is the key color for the electrons. If you use the type \code{p} you can specify the orbital in square brackets: \begin{example}[side-by-side] - \begin{MOdiagram}[style=square] + \begin{modiagram}[style=square] \AO{s}[color=red]{0} \AO{p}[color[y]=green,color[z]=cyan]{1.5} - \end{MOdiagram} + \end{modiagram} \end{example} \subsubsection{The \option*{up-el-pos} and \option*{down-el-pos} Keys}\label{key:AO_electrons} @@ -1163,10 +1170,10 @@ electrons can be shifted horizontally. You can use values between \code{0} and \code{1}, also see section~\ref{option:electrons}. If you use the type \code{p} you can specify the orbital in square brackets: \begin{example}[side-by-side] - \begin{MOdiagram}[style=square] + \begin{modiagram}[style=square] \AO{s}[up-el-pos=.15]{0} \AO{p}[up-el-pos[y]=.15,down-el-pos[z]=.15]{1.5} - \end{MOdiagram} + \end{modiagram} \end{example} \subsection{Energy Axis} @@ -1180,12 +1187,12 @@ this there is the command \cs{EnergyAxis}. \end{commands} \begin{example}[side-by-side] - \begin{MOdiagram} + \begin{modiagram} \atom{left} { 1s = {;up} } \atom{right}{ 1s = {;up} } \molecule{ 1sMO = {.75;pair} } \EnergyAxis - \end{MOdiagram} + \end{modiagram} \end{example} For the time being there are two options to modify the axis. @@ -1198,28 +1205,28 @@ For the time being there are two options to modify the axis. \end{options} \begin{example}[side-by-side] - \begin{MOdiagram} + \begin{modiagram} \atom{left} { 1s = {;up} } \atom{right}{ 1s = {;up} } \molecule{ 1sMO = {.75;pair} } \EnergyAxis[title] - \end{MOdiagram} + \end{modiagram} \end{example} \begin{example}[side-by-side] - \begin{MOdiagram} + \begin{modiagram} \atom{left} { 1s = {;up} } \atom{right}{ 1s = {;up} } \molecule{ 1sMO = {.75;pair} } \EnergyAxis[title=E,head=stealth] - \end{MOdiagram} + \end{modiagram} \end{example} \section{Examples} The example from the beginning of section \ref{ssec:AO_MO_irgendwo}. \begin{example} % use package `chemmacros' - \begin{MOdiagram}[names] + \begin{modiagram}[names] \atom[\chlewis{0.}{F}\hspace*{5mm}\chlewis{180.}{F}]{left}{ 1s=.2;up,up-el-pos={1sleft=.5} } @@ -1231,14 +1238,14 @@ The example from the beginning of section \ref{ssec:AO_MO_irgendwo}. \node[right,xshift=4mm] at (1sigma) {\footnotesize bonding}; \node[above] at (AO2.90) {\footnotesize non-bonding}; \node[above] at (1sigma*.90) {\footnotesize anti-bonding}; - \end{MOdiagram} + \end{modiagram} \end{example} \begin{example}[outside] % use package `chemmacros' \begin{figure}[p] \centering - \begin{MOdiagram}[style=square,labels,names,AO-width=8pt,labels-fs=\footnotesize] + \begin{modiagram}[style=square,labels,names,AO-width=8pt,labels-fs=\footnotesize] \atom[\ch{O_a}]{left}{ 1s, 2s, 2p = {;pair,up,up} } @@ -1250,7 +1257,7 @@ The example from the beginning of section \ref{ssec:AO_MO_irgendwo}. color = { 2piy*=red, 2piz*=red } } \EnergyAxis - \end{MOdiagram} + \end{modiagram} \caption{MO diagram of \ch{^3 "\chemSigma-" O2}.} \end{figure} \end{example} @@ -1259,8 +1266,8 @@ The example from the beginning of section \ref{ssec:AO_MO_irgendwo}. % use package `chemmacros' \begin{figure}[p] \centering - \MOsetup{style = fancy, distance = 7cm, AO-width = 15pt, labels} - \begin{MOdiagram} + \setmodiagram{style = fancy, distance = 7cm, AO-width = 15pt, labels} + \begin{modiagram} \atom[N]{left}{ 2p = {0;up,up,up} } @@ -1272,7 +1279,7 @@ The example from the beginning of section \ref{ssec:AO_MO_irgendwo}. color = { 2piy*=red } } \EnergyAxis - \end{MOdiagram} + \end{modiagram} \caption{Part of the MO diagram of \chlewis{180.}{NO}.} \end{figure} \end{example} diff --git a/macros/latex/contrib/preview/README b/macros/latex/contrib/preview/README index 0d0e8a80c0..772f7b6b9f 100644 --- a/macros/latex/contrib/preview/README +++ b/macros/latex/contrib/preview/README @@ -22,13 +22,13 @@ Availability The preview package is being developed along and distributed with AUCTeX. It can therefore be obtained as part of AUCTeX distribution -files available at or its +files available at or its mirror at . CTAN also provides a standalone version at . The project page at - offers downloads and + offers downloads and anonymous CVS access for cutting edge versions. For more information about the preview package please refer to the home page of AUCTeX at -. +. Installation ------------ diff --git a/macros/latex/contrib/preview/preview.dtx b/macros/latex/contrib/preview/preview.dtx index b180b28ecb..a2f3db64a5 100644 --- a/macros/latex/contrib/preview/preview.dtx +++ b/macros/latex/contrib/preview/preview.dtx @@ -1,9 +1,9 @@ % \iffalse %% The preview style for extracting previews from LaTeX documents. -%% Developed as part of AUCTeX . +%% Developed as part of AUCTeX . % % Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, -% 2010, 2017 Free Software Foundation +% 2010, 2017-2019 Free Software Foundation % % This program is free software; you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by @@ -439,7 +439,7 @@ \NeedsTeXFormat{LaTeX2e} \def\reserved@a #1#2$#3: #4${\xdef#1{\reserved@c #2#4 $}} \def\reserved@c #1 #2${#1} \begingroup \catcode`\_=12 -\reserved@a\pr@version $Name: release_11_91 $ \ifx\pr@version\@empty +\reserved@a\pr@version $Name: release_12_2 $ \ifx\pr@version\@empty \reserved@a\pr@version CVS-$Revision: 1.126 $ \endgroup \else \def\next release_{} \lccode`\_=`. \edef\next{\lowercase{\endgroup diff --git a/macros/latex/contrib/preview/preview.ins b/macros/latex/contrib/preview/preview.ins index 1d4229d9db..b4ef21b681 100644 --- a/macros/latex/contrib/preview/preview.ins +++ b/macros/latex/contrib/preview/preview.ins @@ -21,7 +21,7 @@ %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% The preview style for extracting previews from LaTeX documents. -%% Developed as part of AUCTeX . +%% Developed as part of AUCTeX . \input docstrip \generate{ \file{preview.drv}{\from{preview.dtx}{driver}} diff --git a/macros/latex/contrib/preview/preview.pdf b/macros/latex/contrib/preview/preview.pdf index f51b58fc59..f8d5b1b537 100644 Binary files a/macros/latex/contrib/preview/preview.pdf and b/macros/latex/contrib/preview/preview.pdf differ -- cgit v1.2.3