% ------------------------------------------------------------ % quantum-chemistry-bonn.sty v0.2 2026/03/12 % Package for unifying the writing of common qc program names % Copyright (c) 2025-2026 Christian Selzer % ------------------------------------------------------------ %%Identification %%The package identifies itself and the LaTeX version needed \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{quantum-chemistry-bonn}[2026/03/12 quantum-chemistry-bonn] \RequirePackage{xcolor} \RequirePackage{siunitx} \RequirePackage{expl3,xparse} \RequirePackage[nolist]{acronym} %==========Colors======== \definecolor{bonnblue}{RGB}{7, 78, 159} \definecolor{bonnred}{RGB}{185, 39, 39} \definecolor{bonnyellow}{RGB}{252, 186, 0} \definecolor{bonngrey}{RGB}{144, 144, 133} \definecolor{bonngray}{RGB}{144, 144, 133} % Wir sind faul, wir brauchen grey und gray. \definecolor{bonngreen}{RGB}{0, 123, 78} \definecolor{newaccent}{RGB}{0, 0, 0} \definecolor{black}{RGB}{0, 0, 0} \definecolor{highlightgreen}{RGB}{0, 204, 0} \definecolor{white}{RGB}{255, 255, 255} \definecolor{StdBody}{RGB}{233,233,233} \newcommand{\colb}[1]{\textcolor{bonnblue}{#1}} \newcommand{\coly}[1]{\textcolor{bonnyellow}{#1}} \newcommand{\colr}[1]{\textcolor{bonnred}{#1}} \newcommand{\colg}[1]{\textcolor{bonngrey}{#1}} %============Refs========== \newcommand*{\siref}[1]{Supplemental Material, {#1}} \newcommand*{\figref}[1]{Fig.~\ref{#1}} \newcommand*{\tabref}[1]{Tab.~\ref{#1}} \newcommand*{\eqeqref}[1]{Eq.~\ref{#1}} %==========Programms======= \newcommand*{\orca}{{\fontfamily{pag}\selectfont ORCA}} \newcommand*{\censo}{{\fontfamily{pag}\selectfont CENSO}} \newcommand*{\draco}{{{\textsc{Draco}}}} \newcommand*{\crest}{{{\textsc{CREST}}}} \newcommand{\xtb}{\texttt{xTB}} \newcommand{\tblite}{\texttt{tblite}} %============Misc========== \newcommand*{\etal}{\textit{et al.}} \newcommand*{\ie}{\textit{i.e.}} \newcommand*{\eg}{\textit{e.g.}} %============Units========== \DeclareSIUnit[number-unit-product = {\,}]{\calorie}{cal} \DeclareSIUnit[number-unit-product = {\,}]{\atm}{atm} \sisetup{per-mode = power} \newcommand{\kcalpmol}{\unit{\kilo\calorie\per\mol}} \newcommand{\kjpmol}{\unit{\kilo\joule\per\mol}} \newcommand{\logunits}{\unit{log\,units}} %============Quantities========== \newcommand*{\pka}{p\textit{K}\textsubscript{a}} \newcommand*{\logkow}{log\,\textit{K}\textsubscript{o/w}} \newcommand*{\logkaw}{log\,\textit{K}\textsubscript{a/w}} \newcommand*{\logkab}{log\,\textit{K}\textsubscript{$\alpha/\beta$}} \newcommand*{\logpl}{log\,\textit{P}\textsubscript{L}} \newcommand*{\dgsolv}{$\Delta_\mathrm{solv}G$} %=========QC-Methods======== %\newcommand*{\rsc}{r\textsuperscript{2}SCAN-3c} %––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– \ExplSyntaxOn %–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– % Create a prop list to hold “key → formatted text”: \prop_new:N \l__qc_methods_prop % \DeclareMethod{}{} % Stores (lowercase() → ) in the prop list \NewDocumentCommand \DeclareMethod { m m } { \prop_put:Nnn \l__qc_methods_prop { \tl_lower_case:n { #1 } } { #2 } } % \method{} % 1) Lowercase the key internally % 2) If found in \l__qc_methods_prop, print the stored formatted text % 3) Otherwise, print back the raw (case‐preserved) \NewDocumentCommand \method { m } { \prop_get:NnNTF \l__qc_methods_prop { \tl_lower_case:n { #1 } } \l__qc_tmp_tl { % ⟶ Found: print the “pretty” version \l__qc_tmp_tl } { % ⟶ Not found: fall back to raw input #1 } } %–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– \ExplSyntaxOff %––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– %––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– \ExplSyntaxOn % Create a comma‐separated “batch declare” command: % % \DeclareMethods{alias_1,alias_2,..}{formatted text} % % Internally, this splits the comma list and does exactly what % \DeclareMethod does for each item. \NewDocumentCommand \DeclareMethods { m m } { \clist_map_inline:nn { #1 } { \prop_put:Nnn \l__qc_methods_prop { \tl_lower_case:n { ##1 } } { #2 } } } \ExplSyntaxOff %––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– %------------------------------------------------------- % Declare Methods %------------------------------------------------------- \DeclareMethods{rsc,r2scan3c,r2scan-3c}{r\textsuperscript{2}SCAN-3c} \DeclareMethods{wb97mv,wb97m-v}{$\omega$B97M-V} \DeclareMethods{wr2scand4,wr2scan-d4,wr2scand4}{$\omega$r\textsuperscript{2}SCAN-D4} \DeclareMethods{wpr2scan50d4,wpr2scan50-d4,wpr2scan50d4}{$\omega$Pr\textsuperscript{2}SCAN50-D4} %------------------------------------------------------- % Acronyms %------------------------------------------------------- \acrodef{dft}[DFT]{density functional theory} \acrodef{dftb}[DFTB]{density functional tight-binding} \acrodef{wft}[WFT]{wave function theory} \acrodef{hf}[HF]{Hartree-Fock} \acrodef{qm}[QM]{quantum mechanical} \acrodef{qc}[QC]{quantum chemical} \acrodef{sqm}[SQM]{semiempirical quantum mechanical} \acrodef{ml}[ML]{machine learning} \acrodef{ecp}[ECP]{effective core potential} \acrodef{pp}[PP]{pseudopotential} \acrodef{ao}[AO]{atomic orbital} \acrodef{mo}[MO]{molecular orbital} \acrodef{cn}[CN]{coordination number} \acrodef{ceh}[CEH]{Charge Extended H\"uckel} \acrodef{eht}[EHT]{extended H\"uckel theory} \acrodef{eeq}[EEQ]{electronegativity equilibration} \acrodef{aact}[AACT]{atom-atom charge transfer} \acrodef{rm}[RM]{reference molecule} \acrodef{rsh}[RSH]{range-separated hybrid} \acrodef{rmse}[RMSE]{root mean square error} \acrodef{me}[MSE]{mean signed error} \acrodef{mae}[MAE]{mean absolute error} \acrodef{amax}[AMAX]{absolute maximum error} \acrodef{md}[MD]{mean deviation} \acrodef{wtmad}[WTMAD-2]{weighted total mean absolute deviation in version 2} \acrodefplural{wtmad}[WTMAD-2s]{weighted total mean absolute deviations in version 2} \acrodef{std}[StdDev]{standard deviation} \acrodef{lcao}[LCAO]{linear-combination-of-atomic orbitals} \acrodef{bsse}[BSSE]{basis set superposition error} \acrodef{bsie}[BSIE]{basis set incompleteness error} \acrodef{cp}[CP]{counter-poise} \acrodef{nci}[NCI]{non-covalent interaction} \acrodef{si}[Supporting Information]{Supporting Information} \acrodef{cpscf}[CP-SCF]{coupled-perturbed self-consistent field} \acrodef{ct}[CT]{charge transfer} \acrodef{rdf}[RDF]{radial distribution function} \acrodef{scc}[SCC]{self-consistent charge} \acrodef{pqn}[PQN]{principal quantum number} \acrodef{scf}[SCF]{self-consistent field} \acrodef{tb}[TB]{tight-binding} \acrodef{an}[An]{actinide} \acrodef{ln}[Ln]{lanthanide} \acrodef{ff}[FF]{force field} \acrodef{mo}[MO]{molecular orbital} \acrodef{en}[$\chi$]{electronegativity} \acrodef{chem-hard}[$\eta$]{chemical hardness} \acrodef{qsar}[QSAR]{Quantitative Structure-Activity Relationship} \acrodef{lfer}[LFER]{Linear Free Energy Relationship} \acrodef{mlff}[MLFF]{machine learning force field} \acrodef{mlip}[MLIP]{machine learning interatomic potential} \acrodef{mlp}[MLP]{machine learning potential} \acrodef{ann}[ANN]{artificial neural network} \acrodef{hdnn}[HDNN]{high dimensional neural network} \acrodef{mlm}[MLM]{"mindless" molecule} \acrodef{mr}[MR]{multireference} \acrodef{pes}[PES]{potential energy surface} \acrodef{ri}[RI]{resolution of the identity} \acrodef{ip}[IP]{ionization potential} \acrodef{ea}[EA]{electron affinity} \acrodef{cc}[CC]{coupled cluster} \acrodef{rks}[RKS]{restricted Kohn-Sham} \acrodef{uks}[UKS]{unrestricted Kohn-Sham} \acrodef{os}[OS]{open-shell} \acrodef{sie}[SIE]{self-interaction error} \acrodef{dfa}[DFA]{density functional approximation} \acrodef{hts}[HTS]{high-throughput screening} \acrodef{lda}[LDA]{local density approximation} \acrodef{gga}[GGA]{generalized gradient approximation} \acrodef{m}[m]{meta} \acrodef{bj}[BJ]{Becke-Johnson} \acrodef{fod}[FOD]{fractional occupation density} \acrodef{sr}[SR]{scalar relativistic} \acrodef{soc}[SOC]{spin-orbit coupling} \acrodef{so}[SO]{spin-orbit} \acrodef{sr}[SR]{scalar relativity} \acrodef{x2c}[X2C]{exact two-component} \acrodef{dkh}[DKH]{Douglas--Kroll--Hess} \acrodef{nmr}[NMR]{Nuclear Magnetic Resonance} \acrodef{gem}[GEM]{General and minimally empirical solvation model} \acrodef{zora}[ZORA]{Zeroth Order Regular Approximation} \acrodef{giao}[GIAO]{gauge-including atomic orbital} \acrodef{gto}[GTO]{Gaussian-type orbital} \acrodef{sto}[STO]{Slater-type orbital} \acrodef{gcp}[gCP]{geometrical counter-poise} \acrodef{ams}[AMS]{Amsterdam Modeling Suite} \acrodef{eda}[EDA]{energy decomposition analysis} \acrodef{led}[LED]{local energy decomposition} \acrodef{efg}[EFG]{electric field gradient} \acrodef{mp2}[MP2]{second-order Møller-Plesset perturbation theory} \acrodef{casscf}[CASSCF]{complete active space self-consistent field} \acrodef{mrci}[MR-CI]{multi-reference configurational interaction} \acrodef{dh}[DH]{double hybrid} \acrodef{cbs}[CBS]{complete basis set} \acrodef{pp}[PP]{pseudo potential} \acrodef{cgto}[CGTO]{contracted Gaussian-type orbitals} \acrodef{pgto}[PGTO]{primitive Gaussian-type orbitals} \acrodef{atm}[ATM]{Axilrod--Teller--Muto} \acrodef{nmr}[NMR]{Nuclear Magnetic Resonance} \acrodef{ppm}[ppm]{parts per million} \endinput