[go: up one dir, main page]

0% found this document useful (0 votes)
17 views79 pages

Chemmacros Manual

The document is a comprehensive guide for the chemmacros package, which supports typesetting chemistry documents with various modules for different tasks. It outlines the structure, options, and functionalities of the package, including core, main, and additional modules, as well as specific commands for typesetting chemical formulas and reactions. The document also emphasizes compliance with IUPAC recommendations and encourages user feedback for further enhancements.

Uploaded by

Aparna Valsan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views79 pages

Chemmacros Manual

The document is a comprehensive guide for the chemmacros package, which supports typesetting chemistry documents with various modules for different tasks. It outlines the structure, options, and functionalities of the package, including core, main, and additional modules, as well as specific commands for typesetting chemical formulas and reactions. The document also emphasizes compliance with IUPAC recommendations and encourages user feedback for further enhancements.

Uploaded by

Aparna Valsan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 79

ch e mmacr os

v6.2a 2022/03/11
comprehensive support for typesetting chemistry documents

Clemens Niederberger 1 Sonja K. 2

https://github.com/cgnieder/chemmacros


− 2e
0 + −I –
2 Na0 + Cl 2 2 NaI + 2 Cl

+ 2e

Table of Contents
I. Preliminaries 3 6.2. Macros Defined (Not Only)
For Usage in \iupac . . . . . . 12
1. License 3 6.3. One-letter Macros . . . . . . . 12
6.4. Greek Letters . . . . . . . . . . 13
2. Motivation and Background 3 6.5. Hetero Atoms and added Hy-
drogen . . . . . . . . . . . . . 13
3. The Structure of c h e m m ac r o s 3 6.6. Cahn-Ingold-Prelog . . . . . . 14
3.1. General Structure . . . . . . . 3 6.7. Fischer . . . . . . . . . . . . . 14
3.2. c h e m m ac r o s’ Options . . . 4 6.8. cis/trans, zusammen/entge-
3.3. Support Package c h e m f o r - gen, syn/anti & tert . . . . . . 15
mula . . . . . . . . . . . . . . 5 6.9. ortho/meta/para . . . . . . . . 15
3.4. Upgrading from version 5.𝑥 . . 5 6.10. Absolute Configuration . . . . 15
6.11. Coordination Chemistry . . . 15
6.12. Examples . . . . . . . . . . . . 16
II. Main Modules 6 6.13. Own \iupac Macros And
Shorthands . . . . . . . . . . . 16
4. The acid-base Module 6 6.14. Latin Phrases . . . . . . . . . . 17

5. The charges Module 8 7. The particles Module 18


5.1. Charge Symbols . . . . . . . . 8 7.1. Provided Particle Macros . . . 18
5.2. Ion Charges . . . . . . . . . . 8 7.2. Defining Own Particle Macros 19
5.3. Partial Charges and Similar
Stuff . . . . . . . . . . . . . . . 9 8. The phases Module 20
5.4. Charge Options . . . . . . . . 9 8.1. Basics . . . . . . . . . . . . . . 20
5.5. Own Charge Macros . . . . . 9 8.2. Define Own Phases . . . . . . 21
8.3. Language Dependencies . . . 21
6. The nomenclature Module 10
6.1. The \iupac Command . . . . 10 9. The symbols Module 22
1. clemens@cnltx.de
2. SonjaK@mein.gmx

1
10. The formula Module 22 21. The spectroscopy Module 50
10.1. For Users . . . . . . . . . . . . 22 21.1. The \NMR Command . . . . . . 50
10.2. Using the chemformula Package 23 21.2. Short Cuts . . . . . . . . . . . 51
10.3. Using the mhchem Package . 23 21.3. An Environment to Typeset
10.4. Using the chemfig Package . . 23 Experimental Data . . . . . . . 51
10.5. Using the chemist Package . . 24 21.4. Customization . . . . . . . . . 52
10.6. For Module Writers . . . . . . 24 21.5. An Example . . . . . . . . . . 54
21.6. Nearly Standard . . . . . . . . 55
11. The greek Module 24 21.7. Formatted List . . . . . . . . . 55
21.8. Crazy . . . . . . . . . . . . . . 56
III. Additional Modules 25 22. The thermodynamics Module 56
22.1. The \state Macro . . . . . . . 57
12. The isotopes Module 25
22.2. Thermodynamic Variables . . 57
13. The mechanisms Module 26 22.3. Create New Variables or Re-
define Existing Ones . . . . . . 59
14. The newman Module 27
23. The units Module 60
15. The orbital Module 28

16. The polymers Module 30 IV. Core Modules 62


16.1. Nomenclature . . . . . . . . . 30
16.2. Copolymers . . . . . . . . . . 30 24. The base Module 62
16.3. Non-linear (Co) Polymers and
Polymer Assemblies . . . . . . 31 25. The errorcheck Module 64
16.4. Polymer Denotations in
chemfig’s Molecules . . . . . . 31 26. The lang and translations
Modules 64
17. The reactions Module 32 26.1. Information For Users . . . . . 64
17.1. Predefined Environments . . . 32 26.2. Available Translation Keys . . 64
17.2. Cross-Referencing . . . . . . . 34 26.3. Information For Module
17.3. Own Reactions . . . . . . . . . 35 Writers . . . . . . . . . . . . . 67
17.4. List of Reactions . . . . . . . . 36
27. The tikz Module 67
18. The reactants Module 37 27.1. For Users . . . . . . . . . . . . 67
18.1. Idea and Getting Started . . . 37 27.2. For Module Writers . . . . . . 68
18.2. Basic Commands . . . . . . . 38
18.3. Options . . . . . . . . . . . . . 39 28. The xfrac Module 68
18.3.1. Data and Units . . . . 39
18.3.2. Output Styles . . . . . 41
18.4. Use in Section Headings . . . 42 V. Appendix 69
18.5. Acronyms as Reactant/Sol-
vent Names . . . . . . . . . . . 43 A. Own Modules Called Styles 69
18.6. List of Reactants . . . . . . . . 44 A.1. How To . . . . . . . . . . . . . 69
A.2. Submitting a Module . . . . . 71
19. The redox Module 44
19.1. Oxidation Numbers . . . . . . 44 B. Support, Suggestions and Bug
19.2. Redox Reactions . . . . . . . . 46 Reports 71
19.3. Examples . . . . . . . . . . . . 48 B.1. Support . . . . . . . . . . . . . 71
B.2. Suggestions . . . . . . . . . . 71
20. The scheme Module 49 B.3. Bug reports . . . . . . . . . . . 71

2
C. References 71 D. Index 74

Part I.
Preliminaries
1. License
Permission is granted to copy, distribute and/or modify this software under the terms of the
LATEX Project Public License (LPPL), version 1.3c or later (http://www.latex-project.org/
lppl.txt). The software has the status “maintained.”

2. Motivation and Background


This package grew from a small collection of personal helper macros back in 2010 into a rather
big package supporting various different chemical typesetting tasks. I hope I have achieved the
following points with this package:

• Intuitive usage as far as the syntax of the commands is concerned.

• A comprehensive set of macros! If there are any needs you might have with respect to
typesetting of chemistry which is not supported by this package3 then let me know so
c h e m m ac r o s can be extended.

• The commands shall not only make typesetting easier and faster but also the document
source more readable with respect to semantics (\ortho-dichlorobenzene is easier to
read and understand than \textit{o}-dichlorobenzene); the first variant in my opinion
also is more in the spirit of LATEX 2𝜀 .

• As much customizability as I could think of so every user can adapt the commands to his
or her own wishes. Every now and then users have wishes which can’t be solved with
the available options. Almost always I’ll add options then. If you find something please
contact me, see section B starting on page 71.

• Default settings that are compliant with the recommendations of the


International Union of Pure and Applied Chemistry
(IUPAC).

Especially the last point in the past needed some pushing from users to get things right in many
places. If you find anything not compliant with IUPAC recommendations please contact me,
see section B starting on page 71. Don’t forget to add references for the corresponding IUPAC
recommendation.

3. The Structure of chemmacros


3.1. General Structure
Introduced Since version 5.0 the chemmacros package has a strictly modular structure. On the one hand
in version 5.0 this eases maintenance but it will also allow for easy and quick extension in the future. In a
(2015/09/11)

3. Not including needs already solved by other packages such as chemnum or chemfig.

3
3. The Structure of c h e m m ac r o s

way it is a logical consequence from c h e m m ac r o s’ history: since version 2.0, i. e., since the
fall of 2011 c h e m m ac r o s already had modular options.
Since version 6.0 the different modules of c h e m m ac r o s are divided into three groups:

1. Core modules which provide underlying functionality or basic functionality and which
are not of direct interest from a user perspective but might be if you plan to write a
module yourself (see section A for details). These modules are described in part IV of this
manual.

2. Main modules which provide all the stuff for typesetting and which are always loaded.
These modules are described in part II of this manual.

3. Additional modules which are also loaded in the default setup. They are not loaded if
chemmacros is loaded with the minimal setup: \usepackage[minimal]{chemmacros}.
These modules are described in part III of this manual.

3.2. chemmacros’ Options


Prior to v5.0 chemmacros had quite a number of load-time options. chemmacros v6.0 has
only two:

minimal = true|false Default: false


Loads c h e m m ac r o s with the basic preset of modules.

modules = { ⟨comma separated list of module names⟩ } (initially empty)


When minimal is used this option allows to load additional modules.

These options only can be used in the optional argument of \usepackage. All other of chem-
mac r o s’ options are set using the command

\chemsetup[ ⟨module⟩ ]{ ⟨option list⟩ }


ch e m m ac r o s’ setup command.

When an option is described then in the left margin the module the option belongs to is
denoted. This looks something like this:

module » option = { ⟨value⟩ } (initially empty)


Description of option. The module is printed in the left margin. The default value to the right
is the setting the option has when chemmacros is loaded. This can be an explicit setting but
the option can also be empty.

module » choice-option = list|of|choices Default: list


Description of choice-option. A choice option can only be used with a predefined list of values.
If one of the values is underlined it means that the option can be used without value in which
case the underlined value is chosen. If no value is underlined then a value has to be given by
the user.

module » boolean-option = true|false Default: true


Description of boolean-option. A boolean option is a choice option with exactly the two values
true and false. If the option is called without value then the underlined value is chosen (which
is always true for a boolean option).

An option or list of options belonging to a module module can be set in two ways:

4
3. The Structure of c h e m m ac r o s

1 % first possibility:
2 \chemsetup[module]{
3 option1 = value ,
4 option2 = value
5 }
6 % second possibility:
7 \chemsetup{
8 module/option1 = value ,
9 module/option2 = value
10 }

The second way allows to set options belonging to different modules with one call of
\chemsetup.
c h e m m ac r o s has some core options which don’t belong to any of the modules described
in parts II and III. Those options have no module denoted in the left margin next to their
descriptions and are also set without specifying a module:

1 \chemsetup{
2 option1 = value ,
3 option2 = value
4 }

Some internal modules may also define core options, e. g., the lang module, see section 26
starting on page 64.

3.3. Support Package chemformula


chemformula provides means of typesetting chemical formulas and reactions. You will see its
macros \ch and \chcpd every now and then in this manual. When using chemmacros you can
consider the chemformula package [Nie22b] to be loaded as chemmacros makes use of it
in various places. chemmacros and chemformula are tightly intertwined. Nevertheless
you should be able to use the mhchem [Hen21] package with chemmacros without problems.
Please see section 10.3 starting on page 23 for details and caveats.
A historical note: chemformula started as a part of chemmacros in January 2012. Since
July 2013 it is a completely independent package – from chemformula’s point of view. It is
maintained independently and has a manual of its own.

3.4. Upgrading from version 5.𝑥


People upgrading from versions < 6.0 will find that almost everything they know from earlier
versions is the same in versions 6.𝑥. But there are important and breaking differences:

• The compatibility mode and all its commands have been dropped.

• The option modules now is a load-time option and cannot be set through \chemsetup
any more. The command \usechemmodule has been dropped.

• Per default all modules are now loaded. A new option minimal allows to load c h e m -
macros with smallest subset necessary. Then additional modules can be added with the
modules.

5
• A new module reactants has been added, thanks to Sonja K .!

Part II.
Main Modules
The modules described in this part are always loaded by chemmacros, even in the minimal
setup.

4. The acid-base Module


Easy representation of pH, p𝐾a . . .

\pH
pH

\pOH
pOH

\Ka
𝐾a , depends on language settings, see section 26 starting on page 64. The translations can be
adapted.

\Kb
𝐾b

\Kw
𝐾w

\pKa[ ⟨num⟩ ]
\pKa: p𝐾a , \pKa[1]: p𝐾a1 , depends on language settings, see section 26 starting on page 64. The
translations can be adapted.

\pKb[ ⟨num⟩ ]
\pKb: p𝐾b , \pKb[1]: p𝐾b1

\p{ ⟨anything⟩ }
e. g. \p{\Kw} p𝐾w

1 \Ka\ \Kb\ \pKa\ \pKa[1] \pKb\ \pKb


𝐾a 𝐾b p𝐾a p𝐾a1 p𝐾b p𝐾b1
[1]

The operator p [. . .] shall be printed in Roman type.


The IUPAC Green Book [Coh+08, p. 103]

There is one option which changes the style the p is typeset, other options allow to change
the subscript of the constants:

acid-base » p-style = italics|slanted|upright Default: upright


Set the style of the p operator.

6
4. The acid-base Module

acid-base » K-acid = { ⟨text⟩ } Default: \ChemTranslate{K-acid}


The subscript to \Ka and \pKa.
acid-base » K-base = { ⟨text⟩ } Default: \ChemTranslate{K-base}
The subscript to \Kb and \pKb.
acid-base » K-water = { ⟨text⟩ } Default: \ChemTranslate{K-water}
The subscript to \Kw.
acid-base » eq-constant = { ⟨text⟩ } Default: K
Introduced The symbol of the constants.
in version 5.4
(2016/02/10)
1 \pH, \pKa \par
2 \chemsetup[acid-base]{p-style=slanted} \pH, \pKa \par
3 \chemsetup[acid-base]{p-style=italics} \pH, \pKa

pH, p𝐾a
pH, p𝐾a
pH, p𝐾a

As you can see the default subscripts of \Kw, \Ka and \Kb are lowercase letters. The literature
is inconclusive about if this is the right way or if uppercase letters should be preferred. In
textbooks the uppercase variant usually seems to be used while journals seem to prefer the
lowercase variant. chemmacros’ default follows the usage in The IUPAC Green Book [Coh+08].
If you want to change this you have two possibilities:

1 % this works only in the preamble:


2 % \DeclareTranslation{English}{K-acid}{\mathrm{A}}% use your language here
3 % alternative:
4 \chemsetup{acid-base/K-acid=\mathrm{A}}% overwrites language dependent
settings
5 \pKa

p𝐾A

Introduced in The constants 𝐾a , 𝐾b , and 𝐾w were defined using the following commands:
version 5.4
\NewChemEqConstant{ ⟨cs⟩ }{ ⟨name⟩ }{ ⟨subscript⟩ }
Define the constant ⟨cs⟩ with the name ⟨name⟩ and the subscript ⟨subscript⟩. This also defines the
default translation with the key ⟨name⟩ using ⟨subscript⟩ as fallback translation (see section 26
starting on page 64 for details). It also defines the option ⟨name⟩ for setting the subscript.
\RenewChemEqConstant{ ⟨cs⟩ }{ ⟨name⟩ }{ ⟨default
appearance⟩ }
The same as \NewChemEqConstant but renews an existing command.
\DeclareChemEqConstant{ ⟨cs⟩ }{ ⟨name⟩ }{ ⟨default
appearance⟩ }
The same as \NewChemEqConstant but overwrites existing commands.
\ProvideChemEqConstant{ ⟨cs⟩ }{ ⟨name⟩ }{ ⟨default
appearance⟩ }
The same as \NewChemEqConstant but doesn’t throw an error if ⟨cs⟩ already exists.
This is how \Ka is defined:

7
5. The charges Module

1 \NewChemEqConstant\Ka{K-acid}{\mathrm{a}}

5. The charges Module


The charges module loads the module formula.

5.1. Charge Symbols


\fplus

+ formal positive charge

\fminus

– formal negative charge

\scrp
+ scriptstyle positive charge (e. g., for usage in chemfig’s [Tel21] formulas).

\scrm
– scriptstyle negative charge (e. g., for usage in chemfig’s formulas).

\fscrp

+ scriptstyle formal positive charge (e. g., for usage in chemfig’s formulas).

\fscrm

– scriptstyle formal negative charge (e. g., for usage in chemfig’s formulas).

\fsscrp

+ scriptscriptstyle formal positive charge (e. g., for usage in chemfig’s formulas).

\fsscrm

– scriptscriptstyle formal negative charge (e. g., for usage in chemfig’s formulas).

5.2. Ion Charges


Simple displaying of (real) charges. It is worth noting that these commands really are relics from a
time when chemmacros tried hard to be compliant with mhchem and chemformula didn’t
exist, yet. They are still provided for backwards compatibility but my recommendation
is to use \ch (see the documentation of the c h e m f o r m u l a package [Nie22b]) and
forget about these commands:

\pch[ ⟨number⟩ ]
positive charge

\mch[ ⟨number⟩ ]
negative charge

\fpch[ ⟨number⟩ ]
formal positive charge

\fmch[ ⟨number⟩ ]
formal negative charge

8
5. The charges Module

1 A\pch\ B\mch[3] C\fpch[2] D\fmch A+ B3– C2⃝


+
D⃝

5.3. Partial Charges and Similar Stuff


The next ones probably are seldomly needed but nevertheless useful:
\delp
𝛿+ partial positive charge
\delm
𝛿– partial negative charge
\fdelp
𝛿⃝
+ partial formal positive charge
\fdelm
𝛿⃝
– partial formal negative charge
These macros for example can be used with the \ox command (see section 19 starting on
page 44) or with the chemfig package:

1 \chemsetup{
2 charges/circled = all,
3 redox/parse = false,
4 redox/pos = top
5 }
6 \ch{"\ox{\delp,H}" -{} "\ox{\delm,Cl}"} \hspace*{1cm}
7 \chemfig{\chemabove[3pt]{\charge{90=\|,180=\|,270=\|}{Br}}{\delm}-\chemabove
[3pt]{H}{\delp}}

𝛿⃝
+ 𝛿⃝
– 𝛿⃝
– 𝛿⃝
+
H Cl Br H

5.4. Charge Options


charges » circled = formal|all|none Default: formal
chemmacros uses two different kinds of charges which indicate the usage of real (+/−) and
formal (⃝/
+ ⃝)
– charges. The option formal distinguishes between them, option none displays
them all without circle, option all circles all.
charges » circletype = chem|math Default: chem
This option switches between two kinds of circled charge symbols: \fplus ⃝/
+ \fminus ⃝
– (chem)
and $\oplus$ ⊕/$\ominus$ ⊖ (math).
charges » partial-format = { ⟨LATEX
code⟩ } Default: \tiny
Code which formats the macros defined with \NewChemPartialCharge (see section 5.5).

5.5. Own Charge Macros


Just in case the existing macros don’t fit you needs there are commands for defining new ones or
modifying the existing ones. These commands define macros like those described in section 5.2
on the preceding page.

9
6. The nomenclature Module

\NewChemCharge{ ⟨cs⟩ }{ ⟨chargesymbol⟩ }


Defines a new macro ⟨cs⟩. Raises an error if ⟨cs⟩ already exists.

\RenewChemCharge{ ⟨cs⟩ }{ ⟨chargesymbol⟩ }


Redefines a new macro ⟨cs⟩. Raises an error if ⟨cs⟩ doesn’t exist.

\DeclareChemCharge{ ⟨cs⟩ }{ ⟨charge symbol⟩ }


Defines a macro ⟨cs⟩. Silently overwrites ⟨cs⟩ if it exists.

\ProvideChemCharge{ ⟨cs⟩ }{ ⟨chargesymbol⟩ }


Defines a new macro ⟨cs⟩. Does nothing if ⟨cs⟩ already exists.

An example of usage is the definition of the existing ion charge macros:

1 \NewChemCharge\fpch{\fplus}
2 \NewChemCharge\fmch{\fminus}

These commands define macros like those described in section 5.3 on the previous page.

\NewChemPartialCharge{ ⟨cs⟩ }{ ⟨charge symbol⟩ }


Defines a new macro ⟨cs⟩. Raises an error if ⟨cs⟩ already exists.

\RenewChemPartialCharge{ ⟨cs⟩ }{ ⟨charge symbol⟩ }


Redefines a new macro ⟨cs⟩. Raises an error if ⟨cs⟩ doesn’t exist.

\DeclareChemPartialCharge{ ⟨cs⟩ }{ ⟨charge symbol⟩ }


Defines a macro ⟨cs⟩. Silently overwrites ⟨cs⟩ if it exists.

\ProvideChemPartialCharge{ ⟨cs⟩ }{ ⟨charge symbol⟩ }


Defines a new macro ⟨cs⟩. Does nothing if ⟨cs⟩ already exists.

An example of usage is the definition of the existing partial charge macros:

1 \NewChemPartialCharge\fdelp{\fplus}
2 \NewChemPartialCharge\fdelm{\fminus}

6. The nomenclature Module


The nomenclature module loads the tikz module. It also loads the package scrlfile which is
part of the KOMA - Script bundle [Koh21].

6.1. The \iupac Command


Similar to the bpchem package [Ped17] c h e m m ac r o s provides a command4 for typesetting
IUPAC names. Why is that useful? IUPAC names can get very long. So long indeed that they
span over more than two lines, especially in two-column documents. This means they must be
allowed to be broken more than one time. This is what the following command does.

4. The idea and initial implementation is shamelessly borrowed from bpchem by Bjørn Pedersen.

10
6. The nomenclature Module

\iupac{ ⟨IUPAC name⟩ }


Inside this command use | indicate a breaking point ^ as a shortcut for \textsuperscript. -, (
and ) allow words to be broken while still allow the rest of word to be hyphenated, likewise [
and ].

1 \begin{minipage}{.4\linewidth}
2 \iupac{%
3 Tetra|cyclo[2.2.2.1^{1,4}]-un|decane-2-dodecyl-%
4 5-(hepta|decyl|iso|dodecyl|thio|ester)%
5 }
6 \end{minipage}

Tetracyclo[2.2.2.11,4 ]-undecane-2-
dodecyl-5-(heptadecylisododecyl-
thioester)

The \iupac command is more of a semantic command. In many cases you can achieve
(nearly) the same thing by using \- instead of |, and \textsuperscript instead of ^ without
\iupac. There are some important differences, though:

• The character - inserts a small space before the hyphen and removes a small space after it.
Also usually words with hyphens are only allowed to break at the hyphen. Inside \iupac
the hyphen will not prevent further hyphenation. The amount of inserted space can be
customized.

• The character | not only prevents ligatures but also inserts a small space. The amount of
inserted space can be customized.

• The characters ( and ) allow the word to be hyphenated and don’t prevent further
hyphenation, likewise [ and ].

Introduced • The character ’ is printed as \chemprime.


in version 5.3
(2016/01/13)
Introduced in • The character = is printed ad \nonbreakinghyphen.
version 5.8c
(2018/03/02)
1 \huge\iupac{2,4-Di|chlor|pentan} \
par
2,4-Dichlorpentan
2 2,4-Dichlorpentan 2,4-Dichlorpentan
\chemprime
Introduced in Prints a prime character in superscript position. It is defined as \ensuremath{{}^{\prime}}.
version 5.3
\nonbreakinghyphen
Introduced in Prints a hyphen which doesn’t allow a line-break after it. It is defined as \mbox{-}\nobreak\
version 5.8c hspace{0pt}.

The spaces inserted by - and | can be customized.

nomenclature » hyphen-pre-space = { ⟨dim⟩ } Default: .01em


Set the space that is inserted before the hyphen set with -.

11
6. The nomenclature Module

Ta b l e 1 : Demonstration of iupac’s modes.


auto restricted strict
\L Ł Ł l
\iupac{\L} l l l
\D d — d
\iupac{\D} d d d

nomenclature » hyphen-post-space = { ⟨dim⟩ } Default: -.03em


Set the space that is inserted after the hyphen set with -.

nomenclature » break-space = { ⟨dim⟩ } Default: .01em


Set the space inserted by |.

The command \iupac serves another purpose, too, however. Regardless of the setting of the
iupac option (see below) all the commands presented in this section are always defined inside
\iupac. Quite a number of the naming commands have very general names: \meta, \D, \E, \L,
\R, \S, \trans and so forth.5 This means they either are predefined already (\L Ł) or are easily
defined by another package or class (the cool package defines both \D and \E, for example). In
order to give you control which commands are defined in which way, there is the option iupac:

nomenclature » iupac = auto|restricted|strict Default: auto


Take care of how IUPAC naming commands are defined.

It has three modes:

• iupac = {auto}: if the commands are not defined by any package or class you’re using
they are available generally, otherwise only inside \iupac.

• iupac = {restricted}: all naming commands are only defined inside \iupac. If the
commands are defined by another package they of course have that meaning outside.
They’re not defined outside otherwise.

• iupac = {strict}: c h e m m ac r o s overwrites any other definition and makes the com-
mands available throughout the document. Of course the commands can be redefined
(but only in the document body). They will still be available inside \iupac then.

Table 1 demonstrates the different modes.

6.2. Macros Defined (Not Only) For Usage in \iupac


6.3. One-letter Macros
For some of the macros explained in this section one-letter commands are defined – with a
caveat in mind, though: they are not actively recommended. One-letter commands seldomly
have meaningful names and often they’ve also been defined by other packages. This means
they make collaboration more difficult than it needs to be and are a source for package conflicts.
chemmacros solves the latter problem by only providing them inside the argument of \iupac.
The one exception c h e m m ac r o s makes is the command \p (for things like pH) which is
and will remain an official command (see section 4 starting on page 6). For all other one-letter
macros alternatives with more meaningful names exist.
5. Please read section 6.3 before you consider using the one-letter commands

12
6. The nomenclature Module

Ta b l e 2 : IUPAC shortcuts for Greek letters.


macro \a \b \g \d \k \m \n \w

letter α β γ δ κ μ η ω

6.4. Greek Letters


Greek letters in compound names are typeset upright. Here are a few examples for the existing
macros:

\chemalpha α
Upright lowercase alpha

\chembeta β
Upright lowercase alpha

\chemgamma γ
Upright lowercase alpha

\chemdelta δ
Upright lowercase alpha

There exist two commands for each of the twenty-four Greek letters: a lowercase and an
uppercase version (\chemalpha and \chemAlpha). Those commands are actually provided by
the c h e m g r e e k package. For more details read section 11 starting on page 24 and also refer
to c h e m g r e e k’s documentation.
There are a number of one-letter commands that some people may find convenient to use
which use above mentioned commands to print Greek letters inside \iupac. They’re listed in
table 2.

1 \iupac{5\chemalpha-androstan-3\chembeta-ol} \par
2 \iupac{\chemalpha-(tri|chloro|methyl)-\chemomega
3 -chloro|poly(1,4-phenylene|methylene)}

5α-androstan-3β-ol
α-(trichloromethyl)-ω-chloropoly(1,4-phenylenemethylene)

6.5. Hetero Atoms and added Hydrogen


Attachments to hetero atoms and added hydrogen atoms are indicated by italic letters [Coh+08].
ch e m m ac r o s defines a few macros for the most common ones.

\hydrogen H
The italic H for hydrogen. An alias for this command is \H.

\oxygen O
The italic O for oxygen. An alias for this command is \O.

\nitrogen N
The italic N for nitrogen. An alias for this command is \N.

13
6. The nomenclature Module

\sulfur S
The italic S for sulfur. An alias for this command is \Sf.

\phosphorus P
The italic P for phosphorus. An alias for this command is \P.

1 \iupac{\nitrogen-methyl|benz|amide}
2 N -methylbenzamide
3 \iupac{3\hydrogen-pyrrole} 3H -pyrrole
4 O-ethyl hexanethioate
5 \iupac{\oxygen-ethyl hexanethioate}

6.6. Cahn-Ingold-Prelog
\cip{ ⟨conf⟩ }
Typeset Cahn-Ingol-Prelog descriptors, e. g.: \cip{R,S} (R,S). ⟨conf⟩ may be a csv list of entries.

\rectus (R)
The rectus descriptor. An alias for this command is \R.

\sinister (S)
The sinister descriptor. An alias for this command is \S.

Both these commands and the entgegen/zusammen descriptors get a small additional amount
of kerning after the closing parenthesis. This amount can be changed through the following
option:

nomenclature » cip-kern = { ⟨dim⟩ } Default: .075em


Set the amount of kerning after the closing parenthesis.

The entries typeset by and implemented with \cip can be customized further:

cip-outer-format = { ⟨format⟩ } Default: \upshape


Introduced The format of parentheses and commas typeset by \cip.
in version 5.8
(2017/04/17) cip-inner-format = { ⟨format⟩ } Default: \itshape
Introduced in The format of the entries in \cip. This format works additive to the outer format.
version 5.8
cip-number-format = { ⟨format⟩ } Default: \upshape
Changed in The format of numbers in \cip. This format works additive to the outer format and is applied
version 6.0 to Arabic figures only.
(2022/01/16)

6.7. Fischer
\dexter d
The dexter descriptor. An alias for this command is \D.

\laevus l
The laevus descriptor. An alias for this command is \L.

14
6. The nomenclature Module

6.8. cis/trans, zusammen/entgegen, syn/anti & tert


• \cis cis \trans trans

• \fac fac \mer mer

• \sin sin \ter ter

• \zusammen (Z) \entgegen (E)

• \syn syn \anti anti

• \tert tert

An alias for \entgegen is \E and an alias for \zusammen is \Z.

6.9. ortho/meta/para
\ortho o \meta m \para p

Although these commands are provided I like to cite The IUPAC Blue Book [PPR04]:

The letters o, m, and p have been used in place of ortho, meta, and para, respectively, to
designate the 1,2-, 1,3-, and 1,4- isomers of disubstituted benzene. This usage is strongly
discouraged and is not used in preferred IUPAC names. [PPR04, p. 90]

6.10. Absolute Configuration


\Rconf[ ⟨letter⟩ ]
\Rconf: R \Rconf[]:

\Sconf[ ⟨letter⟩ ]
\Sconf: S \Sconf[]:

6.11. Coordination Chemistry


ch e m m ac r o s provides a few commands useful in coordination chemistry:
\bridge{ ⟨num⟩ } μ3-
Denote bridging ligand connection.

\hapto{ ⟨num⟩ } η5-


Denote hapticity.

\dento{ ⟨num⟩ } κ2-


Denote denticity.

1 Ferrocene = \iupac{bis(\hapto{5}cyclo|penta|dienyl)iron} \par


2 \iupac{tetra-\bridge{3}iodido-tetrakis[tri|methyl|platinum(IV)]}

Ferrocene = bis(η5-cyclopentadienyl)iron
tetra-μ3-iodido-tetrakis[trimethylplatinum(IV)]

Two options allow customization:

15
6. The nomenclature Module

nomenclature » bridge-number = sub|super Default: sub


Appends the number as a subscript or superscript, depending on the choice. The IUPAC
recommendation is the subscript [Con+05].

nomenclature » coord-use-hyphen = true|false Default: true


Append a hyphen to \hapto, \dento and \bridge or don’t.

Introduced in The default behavior of \hapto and \dento has changed with version 5.8 to follow IUPAC
version 5.8 recommendations.

6.12. Examples

1 \iupac{\dexter-Wein|s\"aure} =
2 \iupac{\cip{2S,3S}-Wein|s\"aure} \par
3 \iupac{\dexter-($-$)-Threose} =
4 \iupac{\cip{2S,3R}-($-$)-2,3,4-Tri|hydroxy|butanal} \par
5 \iupac{\cis-2-Butene} =
6 \iupac{\zusammen-2-Butene}, \par
7 \iupac{\cip{2E,4Z}-Hexa|diene} \par
8 \iupac{\meta-Xylol} =
9 \iupac{1,3-Di|methyl|benzene}

d-Weinsäure = (2S,3S)-Weinsäure
d-(−)-Threose = (2S,3R)-(−)-2,3,4-Trihydroxybutanal
cis-2-Butene = (Z)-2-Butene,
(2E,4Z)-Hexadiene
m-Xylol = 1,3-Dimethylbenzene

6.13. Own \iupac Macros And Shorthands


If you find any commands missing you can define them using

\NewChemIUPAC{ ⟨cs⟩ }{ ⟨declaration⟩ }


Define a new IUPAC command that is in any case defined inside of \iupac regardless if ⟨cs⟩ is
defined elsewhere already.

\ProvideChemIUPAC{ ⟨cs⟩ }{ ⟨declaration⟩ }


Define a new IUPAC command that is in any case defined inside of \iupac regardless if ⟨cs⟩ is
defined elsewhere already only if the corresponding IUPAC macro is not defined, yet.

\RenewChemIUPAC{ ⟨cs⟩ }{ ⟨declaration⟩ }


Redefine an existing IUPAC command that is in any case defined inside of \iupac regardless if
⟨cs⟩ is defined elsewhere already.

\DeclareChemIUPAC{ ⟨cs⟩ }{ ⟨declaration⟩ }


Define a new IUPAC command that is in any case defined inside of \iupac regardless if ⟨cs⟩ is
defined elsewhere already. This silently overwrites an existing IUPAC macro definition.

\LetChemIUPAC{ ⟨cs1⟩ }{ ⟨cs2⟩ }


Defines ⟨cs1⟩ to be an alias of ⟨cs2⟩.

16
6. The nomenclature Module

A command defined in this way will obey the setting of the option iupac. This means any
existing command is only overwritten with iupac = {strict}. However, \NewChemIUPAC will
not change the definition of an existing IUPAC naming command but issue an error if the
IUPAC naming command already exists. \DeclareChemIUPAC will overwrite an existing IUPAC
command.

1 \NewChemIUPAC\endo{\textsc{endo}}
2 \RenewChemIUPAC\anti{\textsc{anti}}
3 \iupac{(2-\endo,7-\anti)-2-bromo-7-fluoro|bicyclo[2.2.1]heptane}

(2-e n d o,7-a n t i)-2-bromo-7-fluorobicyclo[2.2.1]heptane

\RenewChemIUPAC allows you to redefine the existing IUPAC naming commands.

1 \iupac{\meta-Xylol} \par
m-Xylol
2 \RenewChemIUPAC\meta{\textup{m}}
3 \iupac{\meta-Xylol}
m-Xylol

There’s also a way for defining new IUPAC shorthands or changing the existing ones:

\NewChemIUPACShorthand ⟨shorthand token⟩⟨control sequence⟩


Defines a new IUPAC shorthand. Inside \iupac it will be equal to using ⟨control sequence⟩. This
throws an error if ⟨shorthand token⟩ is already defined.

\RenewChemIUPACShorthand ⟨shorthand token⟩⟨control sequence⟩


Redefines an existing IUPAC shorthand. This throws an error if ⟨shorthand token⟩ is not defined,
yet.

\DeclareChemIUPACShorthand ⟨shorthand token⟩⟨control sequence⟩


Defines a new IUPAC shorthand or redefines an existing one.

\ProvideChemIUPACShorthand ⟨shorthand token⟩⟨control sequence⟩


Provides a new IUPAC shorthand. Does nothing if ⟨shorthand token⟩ is already defined.

\RemoveChemIUPACShorthand ⟨shorthand token⟩


Deletes an existing IUPAC shorthand.

6.14. Latin Phrases


ch e m m ac r o s provides a command for typesetting Latin phrases:

\latin[ ⟨options⟩ ]{ ⟨phrase⟩ }


Typesets ⟨phrase⟩ according to the option format described below.

\insitu in situ

\invacuo in vacuo

\abinitio ab initio

17
7. The particles Module

If you additionally load chemstyle [Wri13] said package will not define its own \latin.
The last three commands mentioned above are defined through
\NewChemLatin{ ⟨cs⟩ }{ ⟨phrase⟩ }
Define a new Latin phrase. Gives an error if ⟨cs⟩ already exists.
\DeclareChemLatin{ ⟨cs⟩ }{ ⟨phrase⟩ }
Define a new Latin phrase. Silently redefined existing macros.
\RenewChemLatin{ ⟨cs⟩ }{ ⟨phrase⟩ }
Redefine an existing Latin phrase. Gives an error if ⟨cs⟩ doesn’t exist.
\ProvideChemLatin{ ⟨cs⟩ }{ ⟨phrase⟩ }
Define a new Latin phrase only if ⟨cs⟩ doesn’t exist.

1 \NewChemLatin\ltn{latin text}\ltn latin text

You can change the appearance with this option:


nomenclature » format = { ⟨definition⟩ } Default: \emph
Changed in Sets the format for the Latin phrases.
version 5.7
(2016/06/07)
7. The particles Module
The particles module loads the modules charges and formula.

7.1. Provided Particle Macros


The particles defines a number of macros which can be used for typesetting common particles
in the running text. Most of them don’t make much sense in chemformula [Nie22b]’s \ch,
though, which doesn’t mean that they can’t be used there, of course:
\el e– \prt p+ \ntr n0 \Hyd OH– \Oxo H3O+ \water H2O \El E+ \Nuc Nu– \ba ba–
All of these macros are defined using chemformula’s \chcpd. The details are explained in
section 7.2 on the next page.
The macros \Nuc and \ba are special: they have an optional argument for the following
options:
particles » elpair = dots|dash|false Default: false
Determine how the electron pair of the nucleophiles is displayed. The electron pair is drawn
using c h e m f o r m u l a’s \chlewis macro.
particles » space = { ⟨dim⟩ } Default: .1em
Introduced in Sets the space that is inserted between the electron pair and the negative charge sign.
version 5.3
Both options can of course also be set with \chemsetup.

1 \ba[elpair=dots] \Nuc[elpair=dash]
2 ba – Nu –

3 \chemsetup[particles]{elpair=false} ba– Nu–


4 \ba\ \Nuc

18
7. The particles Module

7.2. Defining Own Particle Macros


There are two sets of macros, one for defining particles and one for defining nucleophiles.
\NewChemParticle{ ⟨cs⟩ }{ ⟨formula⟩ }
Defines a new macro ⟨cs⟩. ⟨formula⟩ is any valid c h e m f o r m u l a input (this depends on the
setting of the formula option, see 10 starting on page 22). Raises an error if ⟨cs⟩ already exists.
\RenewChemParticle{ ⟨cs⟩ }{ ⟨formula⟩ }
Redefines a new macro ⟨cs⟩. ⟨formula⟩ is any valid chemformula input (this depends on the
setting of the formula option, see 10 starting on page 22). Raises an error if ⟨cs⟩ doesn’t exist.
\DeclareChemParticle{ ⟨cs⟩ }{ ⟨formula⟩ }
Defines a macro ⟨cs⟩. ⟨formula⟩ is any valid chemformula input (this depends on the setting
of the formula option, see 10 starting on page 22). Silently overwrites ⟨cs⟩ if it exists.
\ProvideChemParticle{ ⟨cs⟩ }{ ⟨formula⟩ }
Defines a new macro ⟨cs⟩. ⟨formula⟩ is any valid c h e m f o r m u l a input (this depends on the
setting of the formula option, see 10 starting on page 22). Does nothing if ⟨cs⟩ already exists.
An example of usage is the definition of the existing particle macros:

1 \NewChemParticle\el {e-}
2 \NewChemParticle\prt{p+}
3 \NewChemParticle\ntr{n^0}

The following set defines macros like \Nuc


\NewChemNucleophile{ ⟨cs⟩ }{ ⟨formula⟩ }
Defines a new macro ⟨cs⟩. ⟨formula⟩ is any valid c h e m f o r m u l a input (this depends on the
setting of the formula option, see 10 starting on page 22). Note that ⟨formula⟩ will get a trailing
negative charge! Raises an error if ⟨cs⟩ already exists.
\RenewChemNucleophile{ ⟨cs⟩ }{ ⟨formula⟩ }
Redefines a new macro ⟨cs⟩. ⟨formula⟩ is any valid c h e m f o r m u l a (this depends on the
setting of the formula option, see 10 starting on page 22). Note that ⟨formula⟩ will get a trailing
negative charge! Raises an error if ⟨cs⟩ doesn’t exist.
\DeclareChemNucleophile{ ⟨cs⟩ }{ ⟨formula⟩ }
Defines a macro ⟨cs⟩. ⟨formula⟩ is any valid c h e m f o r m u l a (this depends on the setting of
the formula option, see 10 starting on page 22). Note that ⟨formula⟩ will get a trailing negative
charge! Silently overwrites ⟨cs⟩ if it exists.
\ProvideChemNucleophile{ ⟨cs⟩ }{ ⟨formula⟩ }
Defines a new macro ⟨cs⟩. ⟨formula⟩ is any valid chemformula (this depends on the setting
of the formula option, see 10 starting on page 22). Note that ⟨formula⟩ will get a trailing
negative charge! Does nothing if ⟨cs⟩ already exists.
An example of usage is the definition of the existing nucleophile macros:

1 \NewChemNucleophile\Nuc{Nu}
2 \NewChemNucleophile\ba {ba}

A macro defined this way will have an optional argument for the elpair option.

19
8. The phases Module

8. The phases Module


The phases module loads the formula module.

8.1. Basics
These commands are intended to indicate the phase of a compound.

\sld (s) \lqd (l) \gas (g) \aq (aq)

1 \ch{C\sld{} + 2 H2O\lqd{} -> CO2\gas{} + 2 H2\gas}\par


2 To make it complete: NaCl\aq.

C (s) + 2 H2O (l) CO2 (g) + 2 H2 (g)


To make it complete: NaCl (aq).

The IUPAC recommendation to indicate the state of aggregation is to put it in parentheses


after the compound [Coh+08]. However, you might want to put it as a subscript which is also
very common.

The [. . .] symbols are used to represent the states of aggregation of chemical species.
The letters are appended to the formula in parentheses and should be printed in Roman
(upright) type without a full stop (period). The IUPAC Green Book [Coh+08, p. 54]

There are two options to customize the output:

phases » pos = side|sub Default: side


Switch the position of the phase indicator.

phases » space = { ⟨dim⟩ } Default: .1333em


Change the default spacing between compound a phase indicator if pos = {side}. A TEX
dimension.

1 \chemsetup[phases]{pos=sub}
2 \ch{C\sld{} + 2 H2O\lqd{} -> CO2\gas{} + 2 H2\gas}\par
3 To make it complete: NaCl\aq.

C(s) + 2 H2O(l) CO2(g) + 2 H2(g)


To make it complete: NaCl(aq) .

All those phase commands have an optional argument:

1 \ch{H2O "\lqd[\qty{5}{\celsius}]"} H2O (l, 5 °C)

There is also a generic phase command:

\phase{ ⟨phase⟩ }
If you need a phase indicator just once or twice. You can use it to denote a phase for which
there is no phase command, yet.

20
8. The phases Module

8.2. Define Own Phases


Depending on the subject of your document you might need to indicate other states of aggrega-
tion. You can easily define them.
\NewChemPhase{ ⟨cs⟩ }{ ⟨symbol⟩ }
Define a new phase command. See section 8.3 for a way to define language dependent settings.
Gives an error if ⟨cs⟩ already exists.
\DeclareChemPhase{ ⟨cs⟩ }{ ⟨symbol⟩ }
Define a new phase command. See section 8.3 for a way to define language dependent settings.
Overwrites previous definitions of ⟨cs⟩.
\RenewChemPhase{ ⟨cs⟩ }{ ⟨symbol⟩ }
Redefine an existing phase command. See section 8.3 for a way to define language dependent
settings. Gives an error if ⟨cs⟩ is not defined.
\ProvideChemPhase{ ⟨cs⟩ }{ ⟨symbol⟩ }
Define a new phase command. See section 8.3 for a way to define language dependent settings.
Does nothing if ⟨cs⟩ is already defined.

1 % preamble:
2 \NewChemPhase\aqi{aq,$\infty$} % aqueous solution at infinite dilution
3 \NewChemPhase\cd {cd} % condensed phase
4 \NewChemPhase\lc {lc} % liquid crystal
5 \ch{NaOH\aqi} \ch{H2O\cd} \ch{U\phase{cr}} \ch{A\lc}\par
6 \chemsetup[phases]{pos=sub}
7 \ch{NaOH\aqi} \ch{H2O\cd} \ch{U\phase{cr}} \ch{A\lc}

NaOH (aq,∞) H2O (cd) U (cr) A (lc)


NaOH(aq,∞) H2O(cd) U(cr) A(lc)

8.3. Language Dependencies


For each phase command a translation into the custom language can be defined. If a phase
is declared with \NewChemPhase no translation exists and for every babel language the literal
string is used that was provided as a definition. Let’s say you define the phase

1 \NewChemPhase\liquid{l}

and want to add the German translation “fl”. Then you could do

1 \DeclareTranslation{German}{phase-liquid}{f\/l}

This way, when you use it in a German document using the appropriate babel option using
\liquid would correctly translate. For this the package translations [Nie22d] is used. The ID
always is phase- ⟨csname⟩ where ⟨csname⟩ is the name of the phase command you defined
without leading backslash.
See section 26 starting on page 64 for predefined translations and general language options
of c h e m m ac r o s.

21
9. The symbols Module

9. The symbols Module


The symbols module defines a few symbols chemists need now and then. It loads the package
amstext [MS21].

\transitionstatesymbol
This is self-explaining:

\standardstate
Again self-explaining: −

\changestate
The uppercase delta used in Δ𝐻 −◦ for example.

10. The formula Module


The formula module loads the amstext package [MS21] and the charges module.

10.1. For Users


There are different packages which provide means for typesetting chemical formulas:

• chemformula [Nie22b]. This package started as a part of c h e m m ac r o s and thus goes


naturally together with c h e m m ac r o s, see also 3.3 starting on page 5.

• mhchem [Hen21]. This is the “older brother” of c h e m f o r m u l a.

• chemfig [Tel21]. The easiest and most complete of the packages for drawing skeletal
formulas.

• XˇMTEX [Fuj13]. A very comprehensive alternative for typesetting chemistry.

In order to help authors getting a consistent layout c h e m m ac r o s does not make a choice
which package to use for typesetting formulas. Although c h e m f o r m u l a is well tested and
preferred users can choose other packages if they like.
this is done with the following general option:

formula = { ⟨method⟩ } Default: chemformula


Introduced This option let’s you choose how chemical formulas are typeset. Available methods are
in version 5.1
(2015/09/23) •chemformula
•mhchem
Introduced •chemist (from the XˇMTEX bundle)
in version 5.6
Introduced in
(2016/05/02) •chemfig
version 5.6
The corresponding package with the same name is loaded.

If you explicitly set this option the corresponding package is loaded immediately and the method
is set up. Otherwise the option will be set by c h e m m ac r o s at the end of the preamble.
Introduced If you load a method package in a way that a unique choice is possible then chemmacros
in version 5.2 will set the method accordingly if you haven’t set the option by yourself. If no unique choice is
(2015/10/14)
possible chemmacros will raise a warning and choose chemformula regardless if the package
is loaded or not. In this case if you want to use another method you’ll have to choose manually.
All automatic choices only happen at the end of the preamble.

22
10. The formula Module

10.2. Using the chemformula Package


If you set formula = {chemformula} the formula module makes it possible that you can set all
chemformula options via the \chemsetup command using the module formula, for example:

1 \chemsetup[chemformula]{format=\sffamily}

Everywhere where c h e m m ac r o s typesets chemical formulas c h e m f o r m u l a’s macros


\chcpd or \ch are used, for example in the reaction environments provided by the reactions
module.
This method is the recommended choice!

10.3. Using the mhchem Package


Introduced in If you set formula = {mhchem} the formula module makes it possible that you can set all of
version 5.1 mhchem’s options via the \chemsetup command using the module mhchem, for example:

1 \chemsetup[mhchem]{format=\sffamily}

Everywhere where chemmacros typesets chemical formulas mhchem’s macro \ce is used,
for example in the reaction environments provided by the reactions module.
There are some caveats if you use this method:

• This method has not been extensively tested, yet. There may be errors and wrong output
at unexpected places.

• Using this method effectively disables the different values of the particles option elpair
(see section 7).

• The different kinds of formal charges provided by the charges module (see section 5.2)
are disabled. Formal charges always use the math method now.

• There may also be other incompatibilities (e. g., mhchem has it’s own method of setting
upright Greek letters so it may or may not disable c h e m m ac r o s’ mechanism).

10.4. Using the chemfig Package


Introduced in Everywhere where chemmacros typesets chemical formulas chemfig’s macro \printatom is
version 5.6 used, for example in the reaction environments provided by the reactions module.
There are some caveats if you use this method:

• This method has not been extensively tested, yet. There may be errors and wrong output
at unexpected places.

• Using this method effectively disables the different values of the particles option elpair
(see section 7).

• The different kinds of formal charges provided by the charges module (see section 5.2)
are disabled. Formal charges always use the math method now.

• The reaction environments by the reactions module may work only to a limited respect.
If you plan to use them consider using methods chemformula or mhchem instead.

23
11. The greek Module

10.5. Using the chemist Package


Introduced in Everywhere where chemmacros typesets chemical formulas chemist’s macro \ChemForm is
version 5.6 used, for example in the reaction environments provided by the reactions module.
There are some caveats if you use this method:
• This method has not been extensively tested, yet. There may be errors and wrong output
at unexpected places.

• Using this method effectively disables the different values of the particles option elpair
(see section 7).

• The different kinds of formal charges provided by the charges module (see section 5.2)
are disabled. Formal charges always use the math method now.

• The reaction environments by the reactions module may work only to a limited respect.
If you plan to use them consider using methods chemformula or mhchem instead.6

10.6. For Module Writers


There are two macros for module writers:
\chemmacros_chemformula:n { ⟨formula⟩ }
This is only a wrapper for \chcpd or \ce. It is recommended that module writers use this
macro (or a variant thereof) inside of chemmacros’ macros whenever they want to display a
chemical formula. Writers who prefer traditional LATEX 2𝜀 programming over expl3 should use
\chemmacros@formula.

\chemmacros_reaction:n { ⟨reaction⟩ }
This is only a wrapper for \ch or \ce. It is recommended that module writers use this macro
(or a variant thereof) inside of c h e m m ac r o s’ macros whenever they want to display a
chemical reaction. Writers who prefer traditional LATEX 2𝜀 programming over expl3 should use
\chemmacros@reaction.

11. The greek Module


The greek module loads the chemgreek package [Nie20].
This module provides one option:
greek = { ⟨mapping⟩ }
A valid value is any valid chemgreek ⟨mapping⟩. chemmacros will warn you if no mapping
has been chosen or if you are using the default or the var-default mapping because this
means that no upright Greek letters are available.
If you load a chemgreek support package which allows an unambiguous choice of a mapping
ch e m g r e e k will make this choice automatically. This means if you say

1 \usepackage{upgreek}
2 \usepackage{chemmacros}

then c h e m m ac r o s will use upgreek’s upright Greek letters. If you have


6. On the other hand XˇMTEX (and especially the chemist package) provides quite a number of chemical reaction
environments itself.

24
1 \usepackage{upgreek}
2 \usepackage{chemmacros}
3 \usepackage{textgreek}

then no unambiguous choice is possible and you should choose a mapping yourself, for
example:

1 \usepackage{upgreek}
2 \usepackage{chemmacros}
3 \usepackage{textgreek}
4 \chemsetup{greek=textgreek}

For further details on mappings please refer to c h e m g r e e k’s manual.

Part III.
Additional Modules
The modules described in this part are not part of c h e m m ac r o s’ minimal setup.

12. The isotopes Module


The isotope module loads the elements package [Nie22c]. This module defines one user
command:

\isotope*{ ⟨input⟩ }
⟨input⟩ can either be the symbol of an element or the name of an element. Be aware that the
name is language dependent, refer to the manual of the elements package for details. To be on
the safe side use the element symbol.
⟨input⟩ can also be comma separated list: \isotope{ ⟨nuc⟩ , ⟨symbol⟩ }. If you leave ⟨nuc⟩ out
then \isotope will display the most common isotope. Otherwise ⟨nuc⟩ will be used. If ⟨nuc⟩ is
an isotope unknown to the elements package \isotope will write a warning to the log file.
The starred variant omits the element number.

1 \isotope{C}
2 \isotope*{C} 12 12 14 14
3 \isotope{14,C} 6C C 6C C
4 \isotope*{14,C}

As input for the element symbol you can choose any of the elements known to the elements
package.
There are options which allow you to determine how the isotope is printed:

isotopes » format = super|side Default: super


Either print the isotope number as superscript or to the right of the element symbol.

25
13. The mechanisms Module

isotopes » side-connect = { ⟨input⟩ } Default: -


Determine what is printed between the element symbol and the isotope number if format =
{side}.

1 \isotope{C}
2 \chemsetup[isotopes]{format=side}
\isotope{C} 12
3
6C C-12 C12
4 \chemsetup[isotopes]{side-connect=}
5 \isotope{C}

13. The mechanisms Module


The module mechanisms loads the package amstext [MS21]. It provides one macro:

\mech[ ⟨type⟩ ]
Allows to specify the most common reaction mechanisms.

⟨type⟩ can have one of the following values:

\mech
(empty, no opt. argument) nucleophilic substitution SN

\mech[1]
unimolecular nucleophilic substitution SN 1

\mech[2]
bimolecular nucleophilic substitution SN 2

\mech[se]
electrophilic substitution SE

\mech[1e]
unimolecular electrophilic substitution SE 1

\mech[2e]
bimolecular electrophilic substitution SE 2

\mech[ar]
electrophilic aromatic substitution Ar-SE

\mech[e]
elimination E

\mech[e1]
unimolecular elimination E1

\mech[e2]
bimolecular elimination E2

\mech[cb]
unimolecular elimination “conjugated base”, i. e., via carbanion E1cb

26
14. The newman Module

14. The newman Module


The newman module provides a command for drawing Newman projections. It loads the tikz
module.

\newman[ ⟨options⟩ ]( ⟨angle⟩ ){ ⟨1⟩ , ⟨2⟩ , ⟨3⟩ , ⟨4⟩ , ⟨5⟩ , ⟨6⟩ }


Create Newman projections. This command uses TikZ internally. ⟨angle⟩ rotates the back atoms
counter clockwise with respect to the front atoms and is an optional argument. ⟨1⟩ to ⟨6⟩ are
the positions, the first three are the front atoms, the last three the back atoms.

1 \newman{} \newman(170){}
2 \newman{1,2,3,4,5,6} \newman{1,2,3} \newman{,,,4,5,6}

1
1
6 5 6 5

2 3
2 3
4 4

Several options allow customization:

newman » angle = { ⟨angle⟩ } Default: 0


Default angle.

newman » scale = { ⟨factor⟩ } Default: 1


Scale the whole projection by factor ⟨factor⟩.

newman » ring = { ⟨tikz⟩ } (initially empty)


Customize the ring with TikZ keys.

newman » atoms = { ⟨tikz⟩ } (initially empty)


Customize the nodes within which the atoms are set with TikZ keys.

newman » back-atoms = { ⟨tikz⟩ } (initially empty)


Explicitly customize the nodes of the back atoms with TikZ keys.

1 \chemsetup[newman]{angle=45} \newman{}
2 \newman[scale=.75,ring={draw=blue,fill=blue!20}]{}

1 \chemsetup[newman]{atoms={draw=red,fill=red!20,inner sep=2pt,rounded corners


}}
2 \newman{1,2,3,4,5,6}

27
15. The orbital Module

1
6 5

2 3
4

1 \chemsetup[newman]{
2 atoms = {draw=red,fill=red!20,inner sep=2pt,rounded corners},
3 back-atoms = {draw=blue,fill=blue!20,inner sep=2pt,rounded corners}
4 }
5 \newman{1,2,3,4,5,6} \newman(170){1,2,3,4,5,6}

1
5 14
6

2 3
5
2 3
4 6

15. The orbital Module


The orbital module loads the tikz module. It provides the following command to create
orbitals:
\orbital[ ⟨options⟩ ]{ ⟨type⟩ }
Draw an orbital shape of type ⟨type⟩. This command uses TikZ internally.
There are the following types available for ⟨type⟩:
s p sp sp2 sp3

1 \orbital{s} \orbital{p} \orbital{sp} \orbital{sp2} \orbital{sp3}

Depending on the type you have different options to modify the orbitals:
orbital » phase = +|- Default: +
changes the phase of the orbital (all types)
orbital » scale = { ⟨factor⟩ } Default: 1
changes the size of the orbital (all types)
orbital » color = { ⟨color⟩ } Default: black
changes the color of the orbital (all types)

28
15. The orbital Module

orbital » angle = { ⟨angle⟩ } Default: 0


rotates the orbitals with a p contribution counter clockwise (all types except s)

orbital » half = true|false Default: false


displays only half an orbital (only p)

1 \orbital{s} \orbital[phase=-]{s}
2 \orbital{p} \orbital[phase=-]{p}
3 \orbital{sp3} \orbital[phase=-]{sp3}
4
5 \orbital[angle=0]{p} \orbital[color=red!50]{p}
6 \orbital[angle=135,scale=1.5]{p} \orbital[half]{p}

Additionally there are two options, with which the TikZ behavior can be changed.

orbital » overlay = true|false


The orbital “doesn’t need space”; it is displayed with the TikZ option overlay.

orbital » opacity = { ⟨num⟩ }


The orbital becomes transparent; ⟨value⟩ can have values between 1 (fully opaque) to 0 (invisi-
ble).

1 \vspace{7mm}
2 \chemsetup[orbital]{
3 overlay,
4 p/color = black!70
5 }
6 \setchemfig{bond offset=0pt}
7 \chemfig{
8 ?\orbital{p}
9 -[,1.3]{\orbital[phase=-]{p}}
10 -[:30,1.1]\orbital{p}
11 -[:150,.9]{\orbital[phase=-]{p}}
12 -[4,1.3]\orbital{p}
13 -[:-150,1.1]{\orbital[phase=-]{p}}?
14 }
15 \vspace{7mm}

29
16. The polymers Module

1 \vspace{7mm}
2 \setchemfig{bond offset = 0pt}
3 \chemsetup[orbital]{
4 overlay ,
5 opacity = .75 ,
6 p/scale = 1.6 ,
7 s/color = blue!50 ,
8 s/scale = 1.6
9 }
10 \chemfig{
11 \orbital{s}
12 -[:-20]{\orbital[scale=2]{p}}
13 {\orbital[half,angle=0]{p}}
14 {\orbital[angle=170,half]{p}}
15 {\orbital[angle=-150,half]{p}}
16 (-[:-150]\orbital{s})-\orbital{s}
17 }
18 \vspace{1cm}

16. The polymers Module


Introduced The polymers module loads the nomenclature and the tikz modules.
in version 5.5
(2016/03/08)
16.1. Nomenclature
The polymers module defines a number of IUPAC macros for usage inside \iupac which are
used in polymer chemistry.

16.2. Copolymers
\copolymer co
unspecified copolymer. An alias for this command is \co.

\statistical stat
statistical copolymer. An alias for this command is \stat.

30
16. The polymers Module

\random ran
random copolymer. An alias for this command is \ran.

\alternating alt
alternating copolymer. An alias for this command is \alt.

\periodic per
periodic copolymer. An alias for this command is \per.

\block block
block copolymer.

\graft graft
graft copolymer.

16.3. Non-linear (Co) Polymers and Polymer Assemblies


\blend blend
The blend qualifier.

\comb comb
The comb qualifier.

\complex compl
The complex qualifier. An alias for this command is \compl.

\cyclic cyclo
The cyclic qualifier. An alias for this command is \cyclo.

\branch branch
The branch qualifier.

\network net
The network qualifier. An alias for this command is \net.

\ipnetwork ipn
The interpenetrating network qualifier. An alias for this command is \ipn.

\sipnetwork sipn
The semi-interpenetrating network qualifier. An alias for this command is \sipn.

\star star
The star qualifier.

16.4. Polymer Denotations in chemfig’s Molecules


The chemfig manual proposes some code defining the macros \setpolymerdelim and \makebraces
which make it possible to add delimiters to chemfig molecules. The polymers module imple-
ments the following macro based on the same idea:

\makepolymerdelims[ ⟨options⟩ ]{ ⟨height⟩ }[ ⟨depth⟩ ]{ ⟨opening node⟩ }{ ⟨closing node⟩ }


The value of ⟨depth⟩ is the same as ⟨height⟩ unless it is specified explicitly. ⟨opening node⟩ and
⟨closing node⟩ are the names of TikZ’ nodes where the delimiters are placed.

31
17. The reactions Module

polymers » delimiters = { ⟨left⟩⟨right⟩ } Default: []


This option demands two tokens as argument, the first being the opening brace, the second the
closing brace. A dot (.) denotes an empty delimiter.

polymers » subscript = { ⟨subscript⟩ } Default: $n$


Subscript to the right delimiter.

polymers » superscript = { ⟨superscript⟩ }


Superscript to the right delimiter.

1 \setchemfig{atom sep=2em}
2 \chemfig{-[@{op,.75}]CH_2-CH(-[6]Cl)-[@{cl,0.25}]}
3 \makepolymerdelims{5pt}[27pt]{op}{cl}
4 \chemfig{-[@{op,.75}]CH_2-CH(-[6]Cl)-[@{cl,0.25}]}
5 \makepolymerdelims[delimiters=()]{5pt}[27pt]{op}{cl}

 
 CH2 CH  © CH2 CH ª
  ­ ®
 

 Cl 𝑛 « Cl ¬𝑛

17. The reactions Module


The reactions module loads the formula module and the mathtools package [HMT22].

17.1. Predefined Environments


You can use these environments for numbered. . .

\begin{reaction}
A single reaction where c h e m f o r m u l a code is placed directly in the environment body. A
wrapper around the equation environment. The environment body is parsed with \ch or \ce
depending on the value of the formula option, see section 10 starting on page 22.

\begin{reactions}
Several aligned reactions. A wrapper around amsmath’s align environment. The environment
body is parsed with \ch or \ce depending on the value of the formula option, see section 10
starting on page 22.

. . . and their starred versions for unnumbered reactions.

\begin{reaction*}
A wrapper around the equation* environment. The environment body is parsed with \ch or
\ce depending on the value of the formula option, see section 10 starting on page 22.

\begin{reactions*}
A wrapper around amsmath’s align* environment. The environment body is parsed with \ch
or \ce depending on the value of the formula option, see section 10 starting on page 22.

With those environments you can create (un)numbered reaction equations similar to mathe-
matical equations.
Theses environments use the equation/equation* environments or the align/align* envi-
ronments, respectively, to display the reactions.

32
17. The reactions Module

1 Reaction with counter:


2 \begin{reaction}
3 A -> B
4 \end{reaction}

Reaction with counter:


A B {1}

1 Reaction without counter:


2 \begin{reaction*}
3 C -> D
4 \end{reaction*}

Reaction without counter:


C D

1 Several aligned reactions with counter:


2 \begin{reactions}
3 A &-> B + C \\
4 D + E &-> F
5 \end{reactions}

Several aligned reactions with counter:

A B+C {2}
D+E F {3}

1 Several aligned reactions without counter:


2 \begin{reactions*}
3 G &-> H + I \\
4 J + K &-> L
5 \end{reactions*}

Several aligned reactions without counter:

G H+I
J+K L

If you want to change the layout of the counter tags, you can use
\renewtagform{ ⟨tagname⟩ }[ ⟨format⟩ ]{ ⟨left delimiter⟩ }{ ⟨right delimiter⟩ }
Provided by the mathtools package.
or use the following options:
reactions » tag-open = { ⟨left delimiter⟩ } Default: \{
Introduced in The left delimiter.
version 5.6

33
17. The reactions Module

reactions » tag-close = { ⟨right delimiter⟩ } Default: \}


Introduced in The right delimiter.
version 5.6
reactions » before-tag = { ⟨format⟩ } (initially empty)
Introduced in Code inserted before the tags.
version 5.6

1 \chemsetup[reactions]{
2 before-tag = R \textbf ,
3 tag-open = [ ,
4 tag-close = ]
5 }
6 \begin{reaction}
7 H2O + CO2 <<=> H2CO3
8 \end{reaction}

H2O + CO2 H2CO3 [R 4]

Introduced You can also make reactions share a counter with math equations (by using the equation
in version 6.1 counter).
(2022/02/13)
reactions » own-counter = true|false Default: true
If set to false the reaction environments will use the equation counter instead of the reaction
counter.

The use of AMSmath’s \intertext is possible:

1 \begin{reactions}
2 A + 2 B &-> 3 C + D "\label{rxn:test}"
3 \intertext{Some text in between aligned reactions}
4 3 E + F &<=> G + 1/2 H
5 \end{reactions}
6 See reaction~\ref{rxn:test}.

A + 2B 3C + D {5}

Some text in between aligned reactions


1
3E + F G+ H {6}
2
See reaction 5.

17.2. Cross-Referencing
Introduced in If you are using either cleveref [Cub18] or fancyref [Rei99] and have set own-counter = {true}
version 5.6 the reaction counter is supported by both packages and already set up by c h e m m ac r o s.
For fancyref c h e m m ac r o s’ uses the prefix rct by defining the following:

34
17. The reactions Module

1 \newcommand*\fancyrefrctlabelprefix{rct}

You can of course redefine \fancyrefrctlabelprefix into whatever suits you best.
Also hyperref’s \autoref is supported.
reactions » autoref-name = { ⟨name⟩ } Default: \ChemTranslate{reaction}
Introduced in Change the name used by hyperref’s \autoref.
version 6.1
Alternatively you can just redefine \reactionautorefname.

17.3. Own Reactions


You can create new types of reactions with the command:
\NewChemReaction{ ⟨name⟩ }[ ⟨number of arguments⟩ ]{ ⟨math name⟩ }
⟨name⟩ will be the name of the new chem environment. ⟨math name⟩ is the underlying math
environment. Gives an error if ⟨name⟩ already exists.
\RenewChemReaction{ ⟨name⟩ }[ ⟨number of arguments⟩ ]{ ⟨math name⟩ }
⟨name⟩ is the name of the renewed chem environment. ⟨math name⟩ is the underlying math
environment. Gives an error if ⟨name⟩ does not exist.
\DeclareChemReaction{ ⟨name⟩ }[ ⟨numberof arguments⟩ ]{ ⟨math name⟩ }
⟨name⟩ will be the name of the chem environment. ⟨math name⟩ is the underlying math
environment.
\ProvideChemReaction{ ⟨name⟩ }[ ⟨number of arguments⟩ ]{ ⟨math name⟩ }
⟨name⟩ will be the name of the new chem environment. ⟨math name⟩ is the underlying math
environment. The new environment is only defined if it doesn’t exist, yet.

1 \NewChemReaction{reaction} {equation}
2 \NewChemReaction{reaction*} {equation*}
3 \NewChemReaction{reactions} {align}
4 \NewChemReaction{reactions*}{align*}

Let’s suppose, you’d like to have the alignment behavior of the alignat environment for
ch e m f o r m u l a reactions. You could do the following:

1 \NewChemReaction{reactionsat}[1]{alignat}

With this the reactionsat environment is defined.

1 \NewChemReaction{reactionsat}[1]{alignat}
2 \NewChemReaction{reactionsat*}[1]{alignat*}
3 \begin{reactionsat}{3}
4 A &-> B &&-> C &&-> D \\
5 aaaaa &-> bbbbb &&-> ccccc &&-> ddddd
6 \end{reactionsat}
7 \begin{reactionsat*}{2}
8 A &-> B & C &-> D \\

35
17. The reactions Module

9 aaaaa &-> bbbbb &\quad{} ccccc &-> ddddd


10 \end{reactionsat*}

A B C D {7}
aaaaa bbbbb ccccc ddddd {8}

A B C D
aaaaa bbbbb ccccc ddddd

17.4. List of Reactions


The reactions module also provides a command to display a list of the reactions created with
the reaction environment.

\listofreactions
Print a list of reactions.

1 \listofreactions

List of Reactions
Reaction {1} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Reaction {2} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Reaction {3} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Reaction [R 4] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Reaction {5} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Reaction {6} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Reaction {7} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Reaction {8} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Reaction {9}: Autoprotolyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Reaction {10}: first step of chain . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Reaction {11}: second step of chain . . . . . . . . . . . . . . . . . . . . . . . . . 37

The output of this list can be modified by two options:

reactions » list-name = { ⟨name of the list⟩ } Default: \ChemTranslate{list-of-reactions}


Let’s you set the name of the list manually. The default name is language dependent, see
section 26 starting on page 64. Alternatively you can redefine \reactionlistname.

reactions » list-entry = { ⟨prefix to each entry⟩ } Default: \ChemTranslate{reaction}


Let’s you set a prefix to each list entry. The default name is language dependent, see section 26
starting on page 64.

reactions » list-heading-cmd = { ⟨code⟩ } Default: \section*{#1}


Introduced in The macro that is called at the beginning of the list. Inside of ⟨code⟩ #1 refers to the actual
version 5.2 heading of the list. The default setting is not entirely true: if a macro \chapter is defined
\chapter*{#1} is used.

36
18. The reactants Module

This command has no effect if a KOMA-Script class or the package tocbasic is used. The list of
reactions then obeys KOMA - Script’s listof option.
Instead of using the option list-name you also could redefine \reactionlistname.
The list lists all reactions with a number and disregards reactions without number. All reaction
environments without star have an optional argument which let’s you add a description (or
caption) for the entry in the list.

1 \begin{reaction}[Autoprotolyse]
2 2 H2O <<=> H3O+ + OH-
3 \end{reaction}

2 H2O H3O+ + OH– {9}

If you use the reactions environment this will not work, though. In this case you can use
\AddRxnDesc{ ⟨description⟩ }
Add a description to a reaction.

1 \begin{reactions}
2 "\chlewis{0.}{Cl}" + CH4 &
3 -> HCl + "\chlewis{180.}{C}" H3 \AddRxnDesc{first~step~of~chain} \\
4 "\chlewis{180.}{C}" H3 + Cl2 &
5 -> CH3Cl + "\chlewis{0.}{Cl}" \AddRxnDesc{second~step~of~chain}
6 \end{reactions}

Cl + CH4 HCl + CH3 {10}


CH3 + Cl2 CH3Cl + Cl {11}

18. The reactants Module


Introduced in Idea for this module is by Sonja K., who also does the main development of the module. Many
version 6.0 thanks for all her work!

18.1. Idea and Getting Started


The reactants module offers a simplified input syntax for chemical reactants in the description
of reaction procedures. Reactant and solvent names are declared in the preamble removing the
need to repeat the same IUPAC names multiple times throughout the document. With the help
of module options the output style (order of name number and data) can be altered globally (or
locally) to suit your needs, while the data itself is input using an easy to use key-value approach
and processed by the siunitx package [Wri22]. The reactants module responds to the language
declared with the babel package and also offers methods to integrate the acronyms of used
reactants or solvents into the list of acronyms.
The module requires and loads the packages chemnum [Nie21] and siunitx. Depending on
the selected options the packages acro [Nie22a], glossaries-extra [Tal20], hyperref [ORT21],
longtable [Car21] and/or xltabular [VN20] might be needed for this module and will be explicitly
mentioned in the corresponding sections of this manual.

37
18. The reactants Module

18.2. Basic Commands


\DeclareChemReactant{ ⟨ID⟩ }{ ⟨properties⟩ }
This command defines the reactant ⟨ID⟩ with the properties ⟨properties⟩. Should be used in the
preamble. Must be used in the preamble when acro is used as acronym support package.

\DeclareChemReactant{ ⟨main ID⟩ . ⟨sub ID⟩ }{ ⟨properties⟩ }


Analogously to chemnum’s \cmpd command, both the \DeclareChemReactant and \reactant
commands accept a combined ⟨ID⟩ consisting of a ⟨main ID⟩ and ⟨sub ID⟩ part. The default
separator is a . here, but this can be changed using chemnum’s main-sub-sep = {token}
option.

Valid ⟨properties⟩ include the following key-value pairs:

name = { ⟨name⟩ }
Mandatory property: the name of the substance.

short = { ⟨abbreviation⟩ }
Optional property: a short form of the name, used when the reactants module is used in
combination with the acronym-support option, see section 18.5 starting on page 43.

bookmark = { ⟨replacement in portable document file (PDF) bookmarks⟩ }


Optional property: replaces ⟨name⟩ in a PDF bookmark. This might be advisable when reactants
are used in section titles and the hyperref package is used as well, see section 18.4 starting on
page 42.

upper-name = { ⟨upper case version of the name⟩ }


Optional property: The upper case version of a compound’s name, e.g. for the use in the
beginning of a sentence.

upper-bookmark = { ⟨upper case version of the bookmark text⟩ }


Optional property: The upper case version of the ⟨name⟩ in a PDF bookmark.

Common declarations will look like this:

1 \DeclareChemReactant{thf}{name={tetrahydrofuran}, short={THF}}
2 \DeclareChemReactant{H2SO4}{name={\ch{H2SO4}}}
3 \DeclareChemReactant{dichloropentane}{name={\iupac{2,4-di|chloro|pentane}}}

\reactant[ ⟨data and units⟩ ]{ ⟨ID⟩ }


This command is used to insert name, number, and, if present, data of a predefined reactant with
the ⟨ID⟩ in the text. The order of the information in the output can be controlled through the
reactant-output-style option, see section 18.3.2 starting on page 41. The upper case version
of this command \Reactant can be used in order to start a sentence with an upper case version of
a compound’s name. The corresponding text must be defined through \DeclareChemReactant’s
upper-name option. Further variants of \reactant with different suffixes, such as *, +, l, s or
plain will be described later.

\solvent[ ⟨data and units⟩ ]{ ⟨ID⟩ }


Analogous to \reactants. Can be used to insert solvent names and corresponding data in
the text. Format and order depend on the on the solvent-output-style option. The upper
case version of this command \Solvent can be used in order to start a sentence with an

38
18. The reactants Module

upper case version of a solvent’s name. The corresponding text must be defined through
\DeclareChemReactant’s upper-name option. s and l suffixed variants exist and are discussed
later.

⟨data and units⟩ accepts a comma separated list of key-value pairs. Valid keys, acceptable
values as well as their defaults are listed in table 3 on the next page.
Typical uses will look like this:

1 \reactant{dichloropentane}
2 \reactant[volume=5]{dichloropentane}
3 \reactant[volume=0.5, volume-unit=\L]{dichloropentane}
4 \solvent{thf}
5 \solvent[volume=200]{thf}
6 \solvent[volume=1.5, volume-unit=\L]{thf}

\printreactants
Prints a list of number and name of all reactants used throughout the document. The resulting list
is sorted by number and also includes compounds numbered with chemnum’s \cmpd command.
The starred variant also includes the ⟨ID⟩ in the list of reactants. Using printreactants-style
different styles can be selected. (See section 18.6 starting on page 44).

18.3. Options
reactants » initiate = true|false Default: false
The chemnum package that is internally used for numbering the reactants offers two ways of
initiating a new label: either when \cmpd is first used or through \initcmpd. The reactants
module also offers these two methods with initiating a new label upon the first use of a reactant
being the default. If you prefer to initiate a new label through the \DeclareChemReactant
command set this option to true.
Reactants are automatically numbered in the order of their first appearance, while initiate
numbers the compounds in the order in which they were declared in the preamble or in an
external document.

reactants » switch = true|false Default: false


While \reactants will output name and number of a reactant, its starred variant \reactant*,
will by default result in the name without the corresponding number. Setting switch = {true},
globally or locally, reverses this behavior and outputs a reactant’s number without its name.

Other options are described at later places when the corresponding behavior is described.

18.3.1. Data and Units


Describing synthetic procedures often requires adding a lot of data with the corresponding
units to each reactant/solvent that is used. In order to allow for a uniform representation of
numbers and units, as well as making the code more readable, the \reactant and \solvent
commands offer an optional argument that can be used to easily input this data:

\reactant[ ⟨data and units⟩ ]{ ⟨ID⟩ }

\solvent[ ⟨data and units⟩ ]{ ⟨ID⟩ }

39
18. The reactants Module

⟨data and units⟩ accepts a comma separated list of key-value pairs with the available keys
and their default units/values listed in table 3. Key-value pairs can be input in any order
as they are categorized and rearranged internally according to the order in which they are
listed in table 3. Customization of this order is thus far somewhat limited. The available
customization possibilities are described in section 18.3.2 on the next page. Since numbers and
their corresponding units are processed using siunitx, the usual \sisetup command can be
used to alter, for example, the output decimal separator according to your needs. Be aware,
though, that you must surround a number with a set of {} if you use a comma as input decimal
separator. Otherwise the decimal places will be truncated without a warning.
solution here refers to the text that links concentration and solvent. This text auto-
matically adapts to the document language set via babel or polyglossia. Currently, the En-
glish fallback, as well as the German translation are included in the package. If you write
in a different language (or just don’t like the predefined text), you can use the command
\DeclareChemTranslation{ ⟨key⟩ }{ ⟨language⟩ }{ ⟨translation⟩ } (with ⟨key⟩ = {solution}) as
described in section 26 starting on page 64 in order to supply your own translation.

1 % in the preamble:
2 % \DeclareChemReactant{nBuLi}{name={\iupac{\textit{n}=butyllithium}}}
3 % \DeclareChemReactant{Br2benzene}{name={\iupac{1,4=di|bromo|benzene}}}
4 % \DeclareChemReactant{HBr}{name={\ch{HBr\aq}}}
5
6 \reactant[volume=5.00, amount=12.5, equiv=1.00, concentration=2.5, solvent=
hexane]{nBuLi}\par
7 \reactant[mass=3.9, amount=15.6, equiv=1.3, purity=95]{Br2benzene}\par
8 \reactant[volume=2.0, amount=43.8, equiv=3.5, fraction=65]{HBr}

n-butyllithium 1 (5.00 mL, 12.5 mmol, 1.00 eq, 2.5 m solution in hexane)
1,4-dibromobenzene 2 (3.9 g, 15.6 mmol, 1.3 eq, 95 %)
HBr (aq) 3 (2.0 mL, 65 w/w%, 43.8 mmol, 3.5 eq)

The options that change the units of the properties can be set with \chemsetup or in the
optional argument of \reactant. Accepted units are units defined by the siunitx package or by
the units module.
reactants » mass-unit = { ⟨unit⟩ } Default: \gram

Ta b l e 3 : Overview of available keys as well as the default units and the option to locally or globally
change that default unit.
Key default unit option
mass g mass-unit
volume mL volume-unit
fraction w/w% fraction-unit
amount mmol amount-unit
equiv eq equiv-unit
purity % purity-unit
concentration m concentration-unit
solvent n.a.
solution-name solution in solution

40
18. The reactants Module

Change the unit of the mass property.


reactants » volume-unit = { ⟨unit⟩ } Default: \milli\liter
Change the unit of the volume property.
reactants » fraction-unit = { ⟨unit⟩ } Default: w/w \percent
Change the unit of the fraction property.
reactants » amount-unit = { ⟨unit⟩ } Default: \milli\mole
Change the unit of the amount property.
reactants » equiv-unit = { ⟨unit⟩ } Default: eq
Change the unit of the equiv property.
reactants » concentration-unit = { ⟨unit⟩ } Default: \Molar
Change the unit of the concentration property.
reactants » purity-unit = { ⟨unit⟩ } Default: \percent
Change the unit of the purity property.

1 \reactant[volume=5.5]{thf} \par
2 \reactant[volume=5, volume-unit=\cubic\centi\metre]{thf}

tetrahydrofuran 4 (5.5 mL)


tetrahydrofuran 4 (5 cm3 )

18.3.2. Output Styles


The reactants module categorizes the data into different categories that are later used to
determine the order in which this information is displayed. This behavior can be controlled
using the following predefined output styles:

reactants » reactant-output-style = name-main-other|main-name-other|main-other-name


Default: name-main-other
Select one of the three predefined styles to determine the output style of the data and their units
in the \reactant command.
reactants » solvent-output-style = main-name|name-main Default: main-name
Select one of the two predefined styles to determine the output style of the data and their units
in the \solvent command.

name here refers to the combination of name and number (or if just one of them is available,
to either name or number).
main here refers to the mass or volume of a reactant or solvent. If needed, equiv and/or
amount can also be assigned to the main category.
other here refers to all the other data that is give to the reactant command.
The names of the reactant-output-style and solvent-output-style choice options refer
to the order in which the contents of the categories are typeset.

1 \chemsetup[reactants]{reactant-output-style=name-main-other}
2 \reactant[volume=5, amount=4]{dichloropentane}\par

41
18. The reactants Module

3 \chemsetup[reactants]{reactant-output-style=main-name-other}
4 \reactant[volume=5, amount=4]{dichloropentane}\par
5 \chemsetup[reactants]{reactant-output-style=main-other-name}
6 \reactant[volume=5, amount=4]{dichloropentane}
7
8 \chemsetup[reactants]{solvent-output-style=name-main}
9 \solvent[volume=5]{thf}\par
10 \chemsetup[reactants]{solvent-output-style=main-name}
11 \solvent[volume=5]{thf}

2,4-dichloropentane 5 (5 mL, 4 mmol)


5 mL 2,4-dichloropentane 5 (4 mmol)
5 mL (4 mmol) 2,4-dichloropentane 5
tetrahydrofuran (5 mL)
5 mL tetrahydrofuran

reactants » main = default|amount|equiv Default: default


By default, only mass and volume are assigned to the main category. Using the main option,
equiv or amount can be added to the main category.

1 \chemsetup[reactants]{main=amount}
2 \reactant[equiv=2.0, amount=5]{dichloropentane}\par
3 \chemsetup[reactants]{main=equiv}
4 \reactant[equiv=2.0, amount=5]{dichloropentane}\par
5 \chemsetup[reactants]{main=default}
6 \reactant[equiv=2.0, amount=5]{dichloropentane}

5 mmol 2,4-dichloropentane 5 (2.0 eq)


2.0 eq 2,4-dichloropentane 5 (5 mmol)
2,4-dichloropentane 5 (5 mmol, 2.0 eq)

reactants » equivalents = true|false Default: true


Can be used to prevent equiv from being output while still keeping the corresponding infor-
mation in the input code. If you used the main = {equiv} option, the equivalents = {false}
option will be ignored for the corresponding entries.

18.4. Use in Section Headings


Using the \reactants command inside of section headings or captions can mess up the order
in which the molecules are numbered, especially when also using a table of contents and/or
a list of figures/tables. To prevent this, the reactants module offers the + suffixed variant of
\reactants, comparable to chemnum’s \cmpd+ command.

\reactant+[ ⟨data and units⟩ ]{ ⟨ID⟩ }


This command is used to insert name, number, and, if present, data of a predefined reactant
with the ⟨ID⟩ in a section heading or caption.

If you also use the hyperref package in combination with PDF bookmarks, you might want
to use the optional bookmark property of \DeclareChemReactant to supply an alternative text

42
18. The reactants Module

to name to be displayed inside of the PDF bookmarks. To later use such a predefined solvent
or reactant, use one of the following three commands, that are defined analogously to chem-
num‘s \cmpdplain. All three commands also exist in the upper case variant (\Reactantplain,
\Submainreactantplain and \Solventplain) which can be used to display the upper case
version of a reactant or solvent’s name. The upper case version of the name must be declared
previously through \DeclareChemReactant’s upper-name and upper-bookmark options.

\reactantplain{ ⟨ID⟩ }
Outputs the value of bookmark inside of the PDF bookmark, while using the reactant’s name
inside of the section headings.

\submainreactantplain{ ⟨mainID⟩ }{ ⟨subID⟩ }


Outputs the value of bookmark inside of the PDF bookmark, while using the reactant’s name
inside of the section headings. Must be used if your ⟨ID⟩ consists of a ⟨mainID⟩ and a ⟨subID⟩
part.

\solventplain{ ⟨ID⟩ }
Outputs the value of bookmark inside of the PDF bookmark, while using the solvent’s name
inside of the section headings.

18.5. Acronyms as Reactant/Solvent Names


In order to integrate solvent/reactant acronyms into one combined list of acronyms, the reactants
module offers two different options. While using either of these two options, the user can also
explicitly decide if the name or the short version of the reactant/solvent should be used in the
text. Inspired by the \acs and \acl commands from the acro or the glossaries-extra package,
the reactants module also offers the following s and l suffixed variants:

\reactants{ ⟨ID⟩ }
Output the short version of the reactant’s name.

\reactantl{ ⟨ID⟩ }
Output the name version of the reactant’s name.

\solvents{ ⟨ID⟩ }
Output the short version of the solvent’s name.

\solventl{ ⟨ID⟩ }
Output the name version of the solvent’s name.

reactants » acronym-support = acro|glossaries|none Default: none


Can be used to select, which of the two packages acro or glossaries-extra is used in the back-
ground in order to format and sort acronyms.

1 % in the preamble:
2 % \DeclareChemReactant{dcm}{name={dichloromethane}, short={DCM}}
3 \solvent{dcm}\par
4 \solventl{dcm}\par
5 \solvents{dcm}

43
19. The redox Module

dichloromethane
dichloromethane
DCM

18.6. List of Reactants


As mentioned before, \printreactants can be used to print a list of all used reactants and their
numbers. The reactants module internally uses either longtable or xltabular to typeset this
list:

reactants » printreactants-style = xltabular|longtable|none Default: none


Can be used to switch between longtable and xltabular which are responsible for formatting the
list of reactants. Be aware that with longtable, the column widths are hard coded, thus you
could experience overfull box warnings if you use exceptionally long ⟨ID⟩s in combination with
the starred variant \printreactants*, which is responsible for adding the ⟨ID⟩ in resulting list,
as well.

19. The redox Module


The redox module loads the modules tikz and xfrac. It also loads the packages math-
tools [HMT22] and relsize [Ars13].

19.1. Oxidation Numbers


Regarding the typesetting of oxidation numbers The IUPAC Green Book [Coh+08] says the
following:
Oxidation numbers are denoted by positive or negative Roman numerals or by zero [. . .]
Examples MnVII , manganese (VII), O−II , Ni0 [Coh+08, p. 50]

The following command is provided to set oxidation numbers:

\ox*[ ⟨options⟩ ]{ ⟨number⟩ , ⟨atom⟩ }


Places ⟨number⟩ as right superscript to ⟨atom⟩; ⟨number⟩ has to be a (rational) number! ⟨atom⟩
is treated as a chemformula formula, like it would be in \chcpd (this depends on the setting
of the formula option, see 10 starting on page 22).

1 \ox{+1,Na}, \ox{2,Ca}, \ox{-2,S}, \ox{-1,F}

NaI , CaII , S−II , F−I

There are a number of options that can be used to modify the typeset result:

redox » format = { ⟨code⟩ }


Introduced in Allows to apply arbitrary ⟨code⟩ in front of the typeset oxidation numbers. The last command
version 5.11 may expect the oxidation number as an argument. An example might be \textcolor{red}.
(2020/03/07)
redox » parse = true|false Default: true
When false an arbitrary entry can be used for <number>.

44
19. The redox Module

redox » roman = true|false Default: false


Switches from Roman to Arabic numbers.

redox » pos = top|super|side Default: super


top places ⟨number⟩ above ⟨atom⟩, super to the upper right as superscript and side to the right
and inside brackets. Both super and side follow IUPAC recommendation, top does not!

redox » explicit-sign = true|false Default: false


Shows the + for positive numbers and the ± for 0.

redox » explizit-zero-sign = true|false Default: true


Introduced in Only if both explicit-sign and explicit-zero-sign are set to true ±0 will be printed.
version 5.4
redox » decimal-marker = comma|point Default: point
Choice for the decimal marker for formal oxidation numbers like X1.2 .

redox » align = center|right Default: center


Center the oxidation number relative to the atom or right-align it.

redox » side-connect = { ⟨code⟩ } Default: \,


Code that is inserted between atom and oxidation number if pos = {side} is used.

redox » text-frac = { ⟨cs⟩ } Default: \chemfrac[text]{#1}{#2}


The fraction macro that is used for fractions if pos = {side} is used. ⟨cs⟩ must be a macro that
takes two mandatory arguments, the first for the numerator and the second for the denominator.

redox » super-frac = { ⟨cs⟩ } Default: \chemfrac[superscript]{#1}{#2}


The fraction macro that is used for fractions if pos = {top} or pos = {super} is used. ⟨cs⟩ must
be a macro that takes two mandatory arguments, the first for the numerator and the second for
the denominator.

1 \ox[roman=false]{2,Ca} \ox{2,Ca} \\ Ca2 CaII


III
2 \ox[pos=top]{3,Fe}-Oxide \\ Fe-Oxide
3 \ox[pos=side]{3,Fe}-Oxide \\ Fe (III)-Oxide
4 \ox[parse=false]{?,Mn} \\ Mn?
5 \ox[pos=top,align=right]{2,Ca} II
Ca

The pos = {top} variant also can be set with the shortcut \ox*:

III
1 \ox{3,Fe} \ox*{3,Fe}
FeIII Fe

Using the explicit-sign option will always show the sign of the oxidation number:

1 \chemsetup[redox]{explicit-sign = true}
2 \ox{+1,Na}, \ox{2,Ca}, \ox{-2,S}, \ch{"\ox{0,F}" {}2}

Na+I , Ca+II , S−II , F0 2

45
19. The redox Module

1 \chemsetup[redox]{pos=top}
2 Compare \ox{-1,O2^2-} to \ch{"\ox{-1,O}" {}2^2-}

−I −I
Compare O22– to O22–

Sometimes one might want to use formal oxidation numbers like 0.5 or 1⁄3:

1 \chemsetup[redox]{pos=top}
2 \ox{.5,Br2}
0.5 1⁄3
3 \ch{"\ox{1/3,I}" {}3+} Br2 I3+
4
I3+ (1⁄3)
5 \chemsetup[redox]{pos=side}
6 \ox{1/3,I3+}

The fraction is displayed with the help of the xfrac package [L3P]. For more details on how
ch e m m ac r o s uses it read section 28 starting on page 68.

19.2. Redox Reactions


chemmacros provides two commands to visualize the transfer of electrons in redox reactions.
Both commands are using TikZ.

\OX{ ⟨name⟩ , ⟨atom⟩ }


Label ⟨atom⟩ with the label ⟨name⟩.

\redox( ⟨name1⟩ , ⟨name2⟩ )[ ⟨tikz⟩ ][ ⟨num⟩ ]{ ⟨text⟩ }


Connect two ⟨atom⟩s previously labeled with \OX. Only the first argument ( ⟨name1⟩ , ⟨name2⟩ )
is required, the others are all optional.

\OX places ⟨atom⟩ into a node, which is named with ⟨name⟩. If you have set two \OX, they
can be connected with a line using \redox. To do so the names of the two nodes that are to be
connected are written in the round braces. Since \redox draws a tikzpicture with options
remember picture,overlay, the document needs to be compiled at least two times.

1 \vspace{7mm}
2 \OX{a,Na} $\rightarrow$ \OX{b,Na}\pch\redox(a,b){oxidation}

oxidation
Na → Na+

This line can be customized using TikZ keys in [ ⟨tikz⟩ ]:

1 \vspace{7mm}
2 \OX{a,Na} $\rightarrow$ \OX{b,Na}\pch\redox(a,b)[->,red]{ox}

46
19. The redox Module

ox
Na → Na+

With the argument [ ⟨num⟩ ] the length of the vertical parts of the line can be adjusted. The
default length is .6em. This length is multiplied with ⟨num⟩. If you use a negative value the line
is placed below the text.

1 \vspace{7mm}
2 \OX{a,Na} $\rightarrow$ \OX{b,Na}\pch
3 \redox(a,b)[->,red]{ox}
4 \redox(a,b)[<-,blue][-1]{red}
5 \vspace{7mm}

ox
Na → Na+
red

The default length of the vertical lines can be customized with the option

redox » dist = { ⟨dim⟩ } Default: .6em


A TEX dimension.

1 \vspace{7mm}
2 \chemsetup{redox/dist=1em}
3 \OX{a,Na} $\rightarrow$ \OX{b,Na}\pch\redox(a,b)[->,red]{ox}

ox

Na → Na+

redox » sep = { ⟨dim⟩ } Default: .2em


The option can be used to change the distance between the atom and the beginning of the line.

1 \vspace{7mm}
2 \chemsetup{redox/sep=.5em}
3 \OX{a,Na} $\rightarrow$ \OX{b,Na}\pch\redox(a,b)[->,red]{ox}

ox

Na → Na+

47
19. The redox Module

19.3. Examples

1 \vspace{7mm}
2 \ch{
3 2 "\OX{o1,Na}" + "\OX{r1,Cl}" {}2
4 ->
5 2 "\OX{o2,Na}" {}+ + 2 "\OX{r2,Cl}" {}-
6 }
7 \redox(o1,o2){\small OX: $- 2\el$}
8 \redox(r1,r2)[][-1]{\small RED: $+ 2\el$}
9 \vspace{7mm}

OX: −2e–

2 Na + Cl2 2 Na+ + 2 Cl–


RED: +2e–

1 \vspace{7mm}
2 \ch{
3 2 "\OX{o1,\ox*{0,Na}}" + "\OX{r1,\ox*{0,Cl}}" {}2
4 ->
5 2 "\OX{o2,\ox*{+1,Na}}" {}+ + 2 "\OX{r2,\ox*{-1,Cl}}" {}-
6 }
7 \redox(o1,o2){\small OX: $- 2\el$}
8 \redox(r1,r2)[][-1]{\small RED: $+ 2\el$}
9 \vspace{7mm}

OX: −2e–
0 0 I −I
2 Na + Cl2 2 Na+ + 2 Cl–
RED: +2e–

1 \vspace{14mm}
2 \ch{
3 2 "\OX{o1,\ox*{0,Na}}" + "\OX{r1,\ox*{0,Cl}}" {}2
4 ->
5 2 "\OX{o2,\ox*{+1,Na}}" {}+ + 2 "\OX{r2,\ox*{-1,Cl}}" {}-
6 }
7 \redox(o1,o2)[draw=red,->][3.33]{\small OX: $- 2\el$}
8 \redox(r1,r2)[draw=blue,->]{\small RED: $+ 2\el$}

OX: −2e–
RED: +2e–
0 0 I −I
2 Na + Cl2 2 Na+ + 2 Cl–

48
20. The scheme Module

1 \vspace{7mm}
2 \ch{
3 2 "\OX{o1,\ox*{0,Na}}" + "\OX{r1,\ox*{0,Cl}}" {}2
4 -> 2 "\OX{o2,\ox*{+1,Na}}" {}+ + 2 "\OX{r2,\ox*{-1,Cl}}" {}-
5 }
6 \redox(o1,o2)[green,-stealth]{\small OX}
7 \redox(r1,r2)[purple,-stealth][-1]{\small RED}
8 \vspace{7mm}

OX
0 0 I −I
2 Na + Cl2 2 Na+ + 2 Cl–
RED

20. The scheme Module


The scheme module loads the chemnum package [Nie21] and defines a floating environment
\begin{scheme}. That is, it only defines this float if no environment scheme exists at the end
of the preamble. The module checks for different available float defining methods:

• If the current class is a KOMA - Script class \DeclareNewTOC will be used.

• If the current class is memoir, memoir’s methods are used.

• If the package tocbasic has been loaded \DeclareNewTOC will be used.

• If the package newfloat has been loaded \DeclareFloatingEnvironment will be used.

Introduced in • If the package floatrow has been loaded its method will be used.
version 5.1
• If the package float has been loaded its method will be used.

• If neither of the above the “manual” method is used. This means the environment is
defined the same way like figure is defined in the article class or the book class, depending
if \chapter is defined or not (the “traditional” way).

Introduced in • If no unique choice is possible the last of the detected methods will be used. For example,
version 6.1 if you use the memoir class and load the float then the method of float will be used.

scheme » float-method = KOMA|memoir|tocbasic|newfloat|floatrow|float|traditional


Introduced in You can also decide for yourself which method you want chemmacros to use by setting this
version 6.1 option accordingly.

The list name and the caption name both are translated to the language specified according
to the lang option and the provided translations, see section 26 starting on page 64 for details.
If you want to manually change them then redefine these macros after begin document:

\listschemename
The name of the list of schemes.

\schemename
The name used in captions.

49
21. The spectroscopy Module

The list of schemes is printed as expected with


\listofschemes

Introduced in If you are using either cleveref [Cub18] or fancyref [Rei99] the scheme counter is supported
version 5.6 by both packages and already set up by c h e m m ac r o s.
For fancyref c h e m m ac r o s uses the prefix sch by defining the following:

1 \newcommand*\fancyrefschlabelprefix{sch}

You can of course redefine \fancyrefschlabelprefix into whatever suits you best.

21. The spectroscopy Module


The spectroscopy module loads the formula module and the siunitx package [Wri22].

21.1. The \NMR Command


When you’re trying to find out if a compound is the one you think it is often NMR spectroscopy
is used. The experimental data are typeset similar to this:
1
H-NMR (400 MHz, CDCl3): 𝛿 = 1.59
The spectroscopy module provides a command which simplifies the input.

\NMR*{ ⟨num⟩ , ⟨element⟩ }( ⟨num⟩ , ⟨unit⟩ )[ ⟨solvent⟩ ]


Typeset nuclear magnetic resonance data. ⟨num⟩ is a valid siunitx number input, ⟨unit⟩ is a
valid siunitx unit input. ⟨solvent⟩ is any valid chemformula input as in \chcpd (this depends
on the setting of the formula option, see 10 starting on page 22).

All Argument are optional! Without arguments we get:

\NMR \par 1
1 H-NMR: 𝛿
2 \NMR* 1
H-NMR

The first argument specifies the kind of NMR:

1 \NMR{13,C} 13
C-NMR: 𝛿

The second argument sets the frequency (in MHz):

\NMR(400) 1
1 H-NMR (400 MHz): 𝛿

You can choose another unit:

1
1 \NMR(4e8,\hertz) H-NMR (4 × 108 Hz): 𝛿

50
21. The spectroscopy Module

Please note that the setup of siunitx also affects this command:

1 \sisetup{exponent-product=\cdot} 1
2 \NMR(4e8,\hertz)
H-NMR (4 · 108 Hz): 𝛿

The third argument specifies the solvent:

\NMR[CDCl3] 1
1 H-NMR (CDCl3): 𝛿

21.2. Short Cuts


It is possible to define short cut commands for specific nuclei.

\NewChemNMR{ ⟨cs⟩ }{ ⟨num⟩ , ⟨atom⟩ }


Define a new shortcut macro for typesetting a certain type of magnetic resonance data. Gives
an error if ⟨cs⟩ already exists.

\DeclareChemNMR{ ⟨cs⟩ }{ ⟨num⟩ , ⟨atom⟩ }


Define a new shortcut macro for typesetting a certain type of magnetic resonance data. Over-
writes an existing macro.

\RenewChemNMR{ ⟨cs⟩ }{ ⟨num⟩ , ⟨atom⟩ }


Redefine an existing shortcut macro for typesetting a certain type of magnetic resonance data.
Gives an error if ⟨cs⟩ doesn’t exist.

\ProvideChemNMR{ ⟨cs⟩ }{ ⟨num⟩ , ⟨atom⟩ }


Define a new shortcut macro for typesetting a certain type of magnetic resonance data. ⟨cs⟩ is
only defined if it doesn’t exist, yet.

This defines a command with the same arguments as \NMR except for { ⟨num⟩ , ⟨atom⟩ }:

1 \NewChemNMR\HNMR{1,H}%
13
2 \NewChemNMR\CNMR{13,C}% C-NMR (100 MHz)
3 \CNMR*(100) \par 1
H-NMR (400 MHz)
4 \HNMR*(400)

21.3. An Environment to Typeset Experimental Data


The spectroscopy module provides an environment to ease the input of experimental data.

\begin{experimental}
Environment for the output of experimental data. Inside the environment the following com-
mands are defined.

\data{ ⟨type⟩ }[ ⟨specification⟩ ]


Type of data, e. g. IR, MS. . . The optional argument takes further specifications which are output
in parentheses.

\data*{ ⟨type⟩ }[ ⟨specification⟩ ]


Like \data but changes the = into a :, given that use-equal = {true} is used.

51
21. The spectroscopy Module

\NMR{ ⟨num⟩ , ⟨elem⟩ [ ⟨coupling


core⟩ ]}( ⟨num⟩ , ⟨unit⟩ )[ ⟨solvent⟩ ]
This command gets an additional argument: \NMR{13,C[^1H]} 13C{1H}-NMR: 𝛿

\J( ⟨bonds⟩ ; ⟨nuclei⟩ )[ ⟨unit⟩ ]{ ⟨list


of nums⟩ }
Coupling constant, values are input separated by ; (NMR). The arguments ( ⟨bonds⟩ ; ⟨nuclei⟩ )
and [ ⟨unit⟩ ] are optional and enable further specifications of the coupling.

\#{ ⟨num⟩ }
Number of nuclei (NMR).

\pos{ ⟨num⟩ }
Position of nuclues (NMR).

\val{ ⟨num⟩ }
A number, an alias of siunitx’ \num{ ⟨num⟩ }.

\val{ ⟨num1⟩ -- ⟨num2⟩ }


An alias of siunitx’ \numrange{ ⟨num1⟩ }{ ⟨num2⟩ }.

1 \begin{experimental}
2 \data{type1} Data.
3 \data{type2}[specifications] More data.
4 \data*{type3} Even more data.
5 \end{experimental}

type1 Data. type2 (specifications) More data. type3 Even more data.

21.4. Customization
The output of the environment and of the NMR commands can be customized be a number of
options.

spectroscopy » unit = { ⟨unit⟩ } Default: \mega\hertz


The used default unit.

spectroscopy » nucleus = { ⟨num⟩ , ⟨atom⟩ } Default: {1,H}


The used default nucleus.

spectroscopy » connector = { ⟨code⟩ } Default: -


Places ⟨code⟩ between the nucleus and the method.

spectroscopy » method = { ⟨code⟩ } Default: NMR


The measuring method.

spectroscopy » format = { ⟨commands⟩ } (initially empty)


For example \bfseries.

spectroscopy » nmr-base-format = { ⟨commands⟩ } (initially empty)


Introduced in Formatting instructions for the NMR base.
version 5.8
spectroscopy » pos-number = side|sub|super Default: side
Position of the number next to the atom.

52
21. The spectroscopy Module

spectroscopy » coupling-symbol = { ⟨code⟩ } Default: J


The symbol used for the coupling constant.

spectroscopy » coupling-unit = { ⟨unit⟩ } Default: \hertz


A siunitx unit.

spectroscopy » coupling-pos = side|sub Default: side


Placement of the coupling nuclei next to the symbol 𝐽 (or rather the symbol specified with
option coupling-symbol).

spectroscopy » coupling-nuclei-pre = { ⟨code⟩ } Default: (


Code inserted before the coupling nuclei when coupling-pos = {side}.

spectroscopy » coupling-nuclei-post = { ⟨code⟩ } Default: )


Code inserted after the coupling nuclei when coupling-pos = {side}.

spectroscopy » coupling-bonds-pre = { ⟨code⟩ } (initially empty)


Code inserted before the coupling bonds.

spectroscopy » coupling-bonds-post = { ⟨code⟩ } Default: \!


Code inserted after the coupling bonds.

spectroscopy » coupling-pos-cs = { ⟨cs⟩ } Default: \@firstofone


Set the macro that prints the number set with the \pos macro. This needs to be a command
with one mandatory argument.

spectroscopy » atom-number-cs = { ⟨cs⟩ } Default: \@firstofone


Set the macro that prints the number set with the \# macro. This needs to be a command with
one mandatory argument.

spectroscopy » atom-number-space = { ⟨dim⟩ } Default: .16667em


Introduced in Horizontal space inserted between number and atom (printed by \#).
version 5.3
spectroscopy » parse = true|false Default: true
Treat the solvent as c h e m f o r m u l a formula (this depends on the setting of the formula
option, see 10 starting on page 22) or not.

spectroscopy » delta = { ⟨tokens⟩ } (initially empty)


The ⟨tokens⟩ are added after 𝛿.

spectroscopy » list = true|false Default: false


The environment experimental is formatted as a list

spectroscopy » list-setup = { ⟨setup⟩ }


Setup of the list. See below for the default settings.

spectroscopy » use-equal = true|false Default: false


Add equal sign after \NMR and \data.
The default setup of the list:

1 \topsep\z@skip \partopsep\z@skip
2 \itemsep\z@ \parsep\z@ \itemindent\z@
3 \leftmargin\z@

53
21. The spectroscopy Module

1 \begin{experimental}[format=\bfseries]
2 \data{type1} Data.
3 \data{type2}[specifications] More data.
4 \data*{type3} Even more data.
5 \end{experimental}

type1 Data. type2 (specifications) More data. type3 Even more data.

The command \NMR and all commands defined through \NewChemNMR can be used like \data
for the NMR data.

1 \begin{experimental}[format=\bfseries,use-equal]
2 \data{type1} Data.
3 \data{type2}[specifications] More data.
4 \NMR Even more data.
5 \end{experimental}

type1 = Data. type2 (specifications) = More data. 1H-NMR: 𝛿 =Even more data.

21.5. An Example
The code below is shown with different specifications for ⟨options⟩. Of course options can also
be chosen with \chemsetup.

1 \sisetup{separate-uncertainty,per-mode=symbol,detect-all,range-phrase=--}
2 \begin{experimental}[<options>]
3 \data*{yield} \qty{17}{\milli\gram} yellow needles (\qty{0.04}{\milli\mole
},
4 \qty{13}{\percent}).
5 %
6 \data{mp.} \qty{277}{\celsius} (DSC).
7 %
8 \NMR(600)[CDCl3] \val{2.01} (s, \#{24}, \pos{5}), \val{2.31} (s, \#{12},
9 \pos{1}), \val{6.72--6.74} (m, \#{2}, \pos{11}), \val{6.82} (s, \#{8},
10 \pos{3}), \val{7.05--7.07} (m, \#{2}, \pos{12}), \val{7.39--7.41} (m,
\#{4},
11 \pos{9}), \val{7.48--7.49} (m, \#{4}, \pos{8}).
12 %
13 \NMR{13,C}(150)[CDCl3] \val{21.2} ($+$, \#{4}, \pos{1}), \val{23.4} ($+$,
14 \#{8}, \pos{5}), \val{126.0} ($+$, \#{4}, \pos{9}), \val{128.2} ($+$,
\#{8},
15 \pos{3}), \val{130.8} ($+$, \#{2}, \pos{12}), \val{133.6} ($+$, \#{2},
16 \pos{11}), \val{137.0} ($+$, \#{4}, \pos{8}), \val{138.6} (q, \#{4},
17 \pos{2}), \val{140.6} (q, \#{2}, \pos{10}), \val{140.8} (q, \#{8}, \pos{4})
,
18 \val{141.8} (q, \#{4}, \pos{6}), \val{145.6} (q, \#{2}, \pos{7}).
19 %
20 \data{MS}[DCP, EI, \qty{60}{\electronvolt}] \val{703} (2, \ch{M+}), \val
{582}
21 (1), \val{462} (1), \val{249} (13), \val{120} (41), \val{105} (100).

54
21. The spectroscopy Module

22 %
23 \data{MS}[\ch{MeOH + H2O + KI}, ESI, \qty{10}{\electronvolt}] \val{720}
(100,
24 \ch{M+ + OH-}), \val{368} (\ch{M+ + 2 OH-}).
25 %
26 \data{IR}[KBr] \val{3443} (w), \val{3061} (w), \val{2957} (m), \val{2918}
27 (m), \val{2856} (w), \val{2729} (w), \val{1725} (w), \val{1606} (s),
28 \val{1592} (s), \val{1545} (w), \val{1446} (m), \val{1421} (m), \val{1402}
29 (m), \val{1357} (w), \val{1278} (w), \val{1238} (s), \val{1214} (s),
30 \val{1172} (s), \val{1154} (m), \val{1101} (w), \val{1030} (w), \val{979}
31 (m), \val{874} (m), \val{846} (s), \val{818} (w), \val{798} (m), \val{744}
32 (w), \val{724} (m), \val{663} (w), \val{586} (w), \val{562} (w), \val{515}
33 (w).
34 %
35 \data*{UV-Vis} \qty{386}{\nano\metre} ($\varepsilon = \val{65984}$),
36 \qty{406}{\nano\metre} ($\varepsilon = \val{65378}$).
37 %
38 \data*{quantum yield} $\Phi = \val{0.74+-0.1}$\,.
39 \end{experimental}

21.6. Nearly Standard


Output with these options:

1 delta=(ppm),pos-number=sub,use-equal

yield: 17 mg yellow needles (0.04 mmol, 13 %). mp. = 277 °C (DSC). 1H-NMR (600 MHz, CDCl3):
𝛿 (ppm) = 2.01 (s, 24 H, H5), 2.31 (s, 12 H, H1), 6.72–6.74 (m, 2 H, H11), 6.82 (s, 8 H, H3), 7.05–7.07
(m, 2 H, H12), 7.39–7.41 (m, 4 H, H9), 7.48–7.49 (m, 4 H, H8). 13C-NMR (150 MHz, CDCl3): 𝛿 (ppm)
= 21.2 (+, 4 C, C1), 23.4 (+, 8 C, C5), 126.0 (+, 4 C, C9), 128.2 (+, 8 C, C3), 130.8 (+, 2 C, C12), 133.6
(+, 2 C, C11), 137.0 (+, 4 C, C8), 138.6 (q, 4 C, C2), 140.6 (q, 2 C, C10), 140.8 (q, 8 C, C4), 141.8 (q, 4 C,
C6), 145.6 (q, 2 C, C7). MS (DCP, EI, 60 eV) = 703 (2, M+), 582 (1), 462 (1), 249 (13), 120 (41), 105
(100). MS (MeOH + H2O + KI, ESI, 10 eV) = 720 (100, M+ + OH–), 368 (M+ + 2 OH–). IR (KBr) =
3443 (w), 3061 (w), 2957 (m), 2918 (m), 2856 (w), 2729 (w), 1725 (w), 1606 (s), 1592 (s), 1545 (w),
1446 (m), 1421 (m), 1402 (m), 1357 (w), 1278 (w), 1238 (s), 1214 (s), 1172 (s), 1154 (m), 1101 (w),
1030 (w), 979 (m), 874 (m), 846 (s), 818 (w), 798 (m), 744 (w), 724 (m), 663 (w), 586 (w), 562 (w),
515 (w). UV-Vis: 386 nm (𝜀 = 65 984), 406 nm (𝜀 = 65 378). quantum yield: Φ = 0.74 ± 0.10 .

21.7. Formatted List


Output with these options:

1 format=\bfseries,delta=(ppm),list=true,use-equal

yield: 17 mg yellow needles (0.04 mmol, 13 %).


mp. = 277 °C (DSC).
1
H-NMR (600 MHz, CDCl3): 𝛿 (ppm) = 2.01 (s, 24 H, H5), 2.31 (s, 12 H, H1), 6.72–6.74 (m, 2 H,
H11), 6.82 (s, 8 H, H3), 7.05–7.07 (m, 2 H, H12), 7.39–7.41 (m, 4 H, H9), 7.48–7.49 (m, 4 H, H8).

55
22. The thermodynamics Module

13
C-NMR (150 MHz, CDCl3): 𝛿 (ppm) = 21.2 (+, 4 C, C1), 23.4 (+, 8 C, C5), 126.0 (+, 4 C, C9),
128.2 (+, 8 C, C3), 130.8 (+, 2 C, C12), 133.6 (+, 2 C, C11), 137.0 (+, 4 C, C8), 138.6 (q, 4 C, C2), 140.6
(q, 2 C, C10), 140.8 (q, 8 C, C4), 141.8 (q, 4 C, C6), 145.6 (q, 2 C, C7).
MS (DCP, EI, 60 eV) = 703 (2, M+), 582 (1), 462 (1), 249 (13), 120 (41), 105 (100).
MS (MeOH + H2O + KI, ESI, 10 eV) = 720 (100, M+ + OH–), 368 (M+ + 2 OH–).
IR (KBr) = 3443 (w), 3061 (w), 2957 (m), 2918 (m), 2856 (w), 2729 (w), 1725 (w), 1606 (s), 1592
(s), 1545 (w), 1446 (m), 1421 (m), 1402 (m), 1357 (w), 1278 (w), 1238 (s), 1214 (s), 1172 (s), 1154
(m), 1101 (w), 1030 (w), 979 (m), 874 (m), 846 (s), 818 (w), 798 (m), 744 (w), 724 (m), 663 (w), 586
(w), 562 (w), 515 (w).
UV-Vis: 386 nm (𝜀 = 65 984), 406 nm (𝜀 = 65 378).
quantum yield: Φ = 0.74 ± 0.10 .

21.8. Crazy
Output for these options:

1 format=\color{red}\itshape,
2 list=true,
3 delta=\textcolor{green}{\ch{M+ + H2O}},
4 pos-number=side,
5 coupling-unit=\mega\gram\per\square\second,
6 list-setup=,
7 use-equal

yield: 17 mg yellow needles (0.04 mmol, 13 %).


mp. = 277 °C (DSC).
1
H-NMR (600 MHz, CDCl3): 𝛿 M+ + H2O = 2.01 (s, 24 H, H-5), 2.31 (s, 12 H, H-1), 6.72–
6.74 (m, 2 H, H-11), 6.82 (s, 8 H, H-3), 7.05–7.07 (m, 2 H, H-12), 7.39–7.41 (m, 4 H, H-9),
7.48–7.49 (m, 4 H, H-8).
13
C-NMR (150 MHz, CDCl3): 𝛿 M+ + H2O = 21.2 (+, 4 C, C-1), 23.4 (+, 8 C, C-5), 126.0 (+,
4 C, C-9), 128.2 (+, 8 C, C-3), 130.8 (+, 2 C, C-12), 133.6 (+, 2 C, C-11), 137.0 (+, 4 C, C-8),
138.6 (q, 4 C, C-2), 140.6 (q, 2 C, C-10), 140.8 (q, 8 C, C-4), 141.8 (q, 4 C, C-6), 145.6 (q, 2 C,
C-7).
MS (DCP, EI, 60 eV) = 703 (2, M+), 582 (1), 462 (1), 249 (13), 120 (41), 105 (100).
MS (MeOH + H2O + KI, ESI, 10 eV) = 720 (100, M+ + OH–), 368 (M+ + 2 OH–).
IR (KBr) = 3443 (w), 3061 (w), 2957 (m), 2918 (m), 2856 (w), 2729 (w), 1725 (w), 1606 (s),
1592 (s), 1545 (w), 1446 (m), 1421 (m), 1402 (m), 1357 (w), 1278 (w), 1238 (s), 1214 (s), 1172
(s), 1154 (m), 1101 (w), 1030 (w), 979 (m), 874 (m), 846 (s), 818 (w), 798 (m), 744 (w), 724
(m), 663 (w), 586 (w), 562 (w), 515 (w).
UV-Vis: 386 nm (𝜀 = 65 984), 406 nm (𝜀 = 65 378).
quantum yield: Φ = 0.74 ± 0.10 .

22. The thermodynamics Module


The thermodynamics module loads the siunitx package [Wri22].

56
22. The thermodynamics Module

22.1. The \state Macro


\state[ ⟨options⟩ ]{ ⟨symbol⟩ }
Typeset a state variable.

This macro can be used to write the thermodynamic state variables.

1 \state{A}, \state_f{G} ,
2 \state{E}_{\ch{Na}},
3 \state{H}^{\qty{1000}{\celsius}}

Δ𝐴 −◦ , Δf𝐺 −◦ , Δ𝐸 Na
◦ , Δ𝐻 1000 °C

These options are available:

thermodynamics » pre = { ⟨text⟩ } Default: \changestate


Code inserted before the variable. Inserted in text mode.

thermodynamics » post = { ⟨text⟩ } (initially empty)


Code inserted after the variable. Inserted in text mode.

thermodynamics » superscript-left = { ⟨text⟩ } (initially empty)


The left superscript. Inserted in text mode.

thermodynamics » superscript-right = { ⟨text⟩ } Default: \standardstate


The right superscript. Inserted in text mode.

thermodynamics » superscript = { ⟨text⟩ }


An alias of superscript-right.

thermodynamics » subscript-left = { ⟨text⟩ } (initially empty)


The left subscript. Inserted in text mode.

thermodynamics » subscript-right = { ⟨text⟩ } (initially empty)


The right subscript. Inserted in text mode.

thermodynamics » subscript = { ⟨text⟩ }


An alias of subscript-left.

Introduced in Since version 6.1 you can input the sub- and superscripts in a more intuitive way instead of
version 6.1 using the options – the latter are still available, though:

1 \state_a^b{X}_c^d

Δba𝑋 cd

22.2. Thermodynamic Variables


The thermodynamics module provides a few commands for specific thermodynamic variables:

\enthalpy*[ ⟨options⟩ ]( ⟨subscript⟩ ){ ⟨value⟩ }


Typeset the amount of enthalpy.

57
22. The thermodynamics Module

\entropy*[ ⟨options⟩ ]( ⟨subscript⟩ ){ ⟨value⟩ }


Typeset the amount of entropy.

\gibbs*[ ⟨options⟩ ]( ⟨subscript⟩ ){ ⟨value⟩ }


Typeset the amount of Gibbs enthalpy.

Their usage is pretty much self-explaining:

1 \enthalpy{123} \par Δ𝐻 −◦ = 123 kJ mol−1


2 \entropy{123} \par 𝑆 −◦ = 123 J K−1 mol−1
3 \gibbs{123} Δ𝐺 −◦ = 123 kJ mol−1

The argument ( ⟨subscript⟩ ) adds a subscript for specification, * hides number and unit:

1 \enthalpy(r){123} \par Δr𝐻 −◦ = 123 kJ mol−1


2 \enthalpy*{123} \par Δ𝐻 −◦

thermodynamics » pre = { ⟨text⟩ } Default: \changestate


Code inserted before the variable. Inserted in text mode.

thermodynamics » post = { ⟨text⟩ } (initially empty)


Code inserted after the variable. Inserted in text mode.

thermodynamics » superscript-left = { ⟨text⟩ } (initially empty)


The left superscript. Inserted in text mode.

thermodynamics » superscript-right = { ⟨text⟩ } Default: \standardstate


The right superscript. Inserted in text mode.

thermodynamics » superscript = { ⟨text⟩ }


An alias of superscript-right.

thermodynamics » subscript-left = { ⟨text⟩ } (initially empty)


The left subscript. Inserted in text mode.

thermodynamics » subscript-right = { ⟨text⟩ } (initially empty)


The right subscript. Inserted in text mode.

thermodynamics » subscript = { ⟨text⟩ }


An alias of subscript-left.

thermodynamics » subscript-pos = left|right Default: left


Determines whether the subscript given in ( ⟨subscript⟩ ) is placed to the left or the right of the
variable.

thermodynamics » symbol = { ⟨symbol⟩ } (initially empty)


The symbol of the variable. Inserted in math mode.

thermodynamics » unit = { ⟨unit⟩ } (initially empty)


A valid siunitx unit.

58
22. The thermodynamics Module

The default values depend on the command.

1 \enthalpy[unit=\kilo\joule]{-285} \
par Δ𝐻 −◦ = −285 kJ
2 \gibbs[pre=]{0} \par 𝐺 −◦ = 0 kJ mol−1
3 \entropy[pre=$\Delta$,superscript Δ𝑆 = 56.7 J K−1 mol−1
=]{56.7}

The unit is set corresponding to the rules of siunitx and depends on its settings:

1 \enthalpy{-1234.56e3} \par
2 \sisetup{
3 per-mode=symbol,
4 exponent-product=\cdot, Δ𝐻 −◦ = −1234.56 × 103 kJ mol−1
5 output-decimal-marker={,}, Δ𝐻 −◦ = −1 234,56 · 103 kJ/mol
6 group-four-digits=true
7 }
8 \enthalpy{-1234.56e3}

22.3. Create New Variables or Redefine Existing Ones


\NewChemState{ ⟨cs⟩ }{ ⟨options⟩ }
Define new state commands like \enthalpy. Gives an error is ⟨cs⟩ already exists.

\RenewChemState{ ⟨cs⟩ }{ ⟨options⟩ }


Redefine existing state commands.

\DeclareChemState{ ⟨cs⟩ }{ ⟨options⟩ }


Like \NewChemState but gives now error if ⟨cs⟩ already exists.

\ProvideChemState{ ⟨cs⟩ }{ ⟨options⟩ }


Define new state commands like \enthalpy. Defines ⟨cs⟩ only if it is not defined, yet.

The argument ⟨options⟩ is a comma separated list of key/value options:

thermodynamics » pre = { ⟨text⟩ } Default: \changestate


Code inserted before the variable. Inserted in text mode.

thermodynamics » post = { ⟨text⟩ } (initially empty)


Code inserted after the variable. Inserted in text mode.

thermodynamics » superscript-left = { ⟨text⟩ } (initially empty)


The left superscript. Inserted in text mode.

thermodynamics » superscript-right = { ⟨text⟩ } Default: \standardstate


The right superscript.

thermodynamics » superscript = { ⟨text⟩ }


An alias of superscript-right.

thermodynamics » subscript-left = { ⟨text⟩ } (initially empty)


The left subscript. Inserted in text mode.

59
23. The units Module

thermodynamics » subscript-right = { ⟨text⟩ } (initially empty)


The right subscript. Inserted in text mode.
thermodynamics » subscript = { ⟨text⟩ }
An alias of subscript-left.
thermodynamics » subscript-pos = left|right Default: left
Determines whether the subscript given in ( ⟨subscript⟩ ) is placed to the left or the right of the
variable.
thermodynamics » symbol = { ⟨symbol⟩ } (initially empty)
The symbol of the variable.
thermodynamics » unit = { ⟨unit⟩ } (initially empty)
A valid siunitx unit.

1 \NewChemState\Helmholtz{ symbol=A , unit=\kilo\joule\per\mole }


2 \NewChemState\ElPot{ symbol=E , subscript-pos=right , superscript= , unit=\
volt }
3 \Helmholtz{123.4} \par
4 \ElPot{-1.1} \par
5 \ElPot[superscript=0]($\ch{Sn}|\ch{Sn^2+}||\ch{Pb^2+}|\ch{Pb}$){0.01} \par
6 \RenewChemState\enthalpy{ symbol=h , unit=\joule} \par
7 \enthalpy(f){12.5}

Δ𝐴 −◦ = 123.4 kJ mol−1
Δ𝐸 = −1.1 V
Δ𝐸 0 2+ 2+ = 0.01 V
Sn|Sn | |Pb |Pb
Δfℎ −◦ = 12.5 J

The existing commands have been defined like this:

1 \NewChemState \enthalpy{ symbol = H, unit = \kilo\joule\per\mole }


2 \NewChemState \entropy { symbol = S, unit = \joule\per\kelvin\per\mole, pre =
}
3 \NewChemState \gibbs { symbol = G, unit = \kilo\joule\per\mole }

So – for following thermodynamic conventions – one could define a molar and an absolute
variable:

1 \RenewChemState\enthalpy{symbol=h,superscript=,unit=\kilo\joule\per\mole}%
molar
2 \NewChemState\Enthalpy{symbol=H,superscript=,unit=\kilo\joule}% absolute
3 \enthalpy{-12.3} \Enthalpy{-12.3}

Δℎ = −12.3 kJ mol−1 Δ𝐻 = −12.3 kJ

23. The units Module


The units module loads the siunitx package [Wri22].

60
23. The units Module

In chemistry some non-SI units are very common. siunitx provides the command

\DeclareSIUnit{ ⟨cs⟩ }{ ⟨unit⟩ }


Define ⟨cs⟩ to be a valid unit command inside siunitx’ macros \qty and \unit which represents
⟨unit⟩.

to add arbitrary units. c h e m m ac r o s uses that command to provide some units. Like all
siunitx units they’re only valid inside \qty{ ⟨num⟩ }{ ⟨unit⟩ } and \unit{ ⟨unit⟩ }.

\atmosphere
atm

\atm
atm

\calory
cal

\cal
cal

\cmc
cm3
The units \cmc, \molar, and \Molar are defined by the package chemstyle as well. c h e m -
mac r o s only defines them, if chemstyle is not loaded.

\molar
mol dm−3

\moLar
mol L−1

\Molar
m

\MolMass
g mol−1

\normal
n

\torr
Torr
Introduced in Since some units still frequently used in chemistry were removed from version 3 of siunitx
version 6.0
chemmacros also defines these in the same way, older versions of siunitx used to do. These
units are:

\angstrom
Å

\atomicmassunit
u

\bar
bar

61
\elementarycharge
𝑒

\mmHg
mmHg

Part IV.
Core Modules
The modules described in this part are always loaded and mainly concern module writers.

24. The base Module


The base module is the core module of c h e m m ac r o s. It defines some tools which can (and
should) be used in other modules. This means this section is only interesting for you if you plan
to write a module yourself (see section A starting on page 69 for details).
This module requires the packages bm [CM21], amstext [MS21], and etoolbox [Leh20].
This module also provides \chemsetup and the option modules.
It also provides a number of (expl3) macros which may be used in other modules. In the macro
descriptions below TF denotes that a T, an F and a TF variant exist. In case of an expandable
conditional (∗) also the predicate variant is available.

∗ \chemmacros_if_loaded:nnTF {package|class} { ⟨name⟩ } { ⟨true⟩ } { ⟨false⟩ }


Checks if package (or class) ⟨name⟩ has been loaded. Also works after begin document.

∗ \chemmacros_if_package_loaded:nTF { ⟨name⟩ } { ⟨true⟩ } { ⟨false⟩ }


Checks if package ⟨name⟩ has been loaded. Also works after begin document.

∗ \chemmacros_if_class_loaded:nTF { ⟨name⟩ } { ⟨true⟩ } { ⟨false⟩ }


Checks if class ⟨name⟩ has been loaded. Also works after begin document.

\chemmacros_nobreak:
Inserts a penalty of 10 000.

\chemmacros_allow_break:
Inserts a penalty of 0.

\chemmacros_skip_nobreak:N ⟨skip/length variable⟩


Inserts a horizontal skip where a linebreak is disallowed.

∗ \chemmacros_if_is_int:nTF { ⟨input⟩ } { ⟨true⟩ } { ⟨false⟩ }


Checks if ⟨input⟩ is an integer or something else.

\chemmacros_if_bold:TF { ⟨true⟩ } { ⟨false⟩ }


Checks if the current font weight is one of b, bc, bm, bx, bux, eb, ebc, ebx, mb, sb, sbc, sbx, ub,
ubc or ubx.

\chemmacros_bold:n { ⟨text⟩ }
Checks if the current font weight is bold and if yes places ⟨text⟩ in \textbf if in text mode or
in \bm if in math mode. If no, ⟨text⟩ simply is placed in the input stream as is.

62
24. The base Module

\chemmacros_text:n { ⟨text⟩ }
Ensures that ⟨text⟩ is placed in text mode.

\chemmacros_math:n { ⟨text⟩ }
Ensures that ⟨text⟩ is placed in math mode.

\chemmacros_new_macroset:nnn { ⟨name⟩ } { ⟨arg spec⟩ } { ⟨internal command call⟩ }


Changed in A command to define a set of macros \NewChem ⟨name⟩, \RenewChem ⟨name⟩, \DeclareChem ⟨name⟩
version 5.3b () and \ProvideChem ⟨name⟩ where the first letter of ⟨name⟩ is converted to uppercase, other let-
ters are kept unchanged. ⟨arg spec⟩ is any valid argument specification for xparse’s
\DeclareDocumentCommand [L3P]. ⟨internal command call⟩ should be a macro which makes
definitions without error checks, i. e., define new macros or redefine existing ones like \def
does. This macro just should get the arguments passed on to. Have a look at the example below.

\chemmacros_new_environment_macroset:nnn { ⟨name⟩ } { ⟨arg spec⟩ } { ⟨internal command call⟩ }


Like \chemmacros_new_macroset:nnn but for environments.

\NewChemMacroset*{ ⟨name⟩ }{ ⟨arg spec⟩ }{ ⟨internal command call⟩ }


A non-expl3 version of \chemmacros_new_macroset:nnn for LATEX 2𝜀 programmers. The starred
version calls \chemmacros_new_environment_macroset:nnn.

\chemmacros_add_cleveref_support:nnnnn { ⟨counter⟩ } { ⟨singular⟩ } { ⟨plural⟩ } { ⟨uppercase sin-


gular⟩ } { ⟨uppercase plural⟩ }
Introduced in A command to add suiting names for a counter for the cleveref package’s \cref commands.
version 5.6 This command acts at the end of the preamble and only if a user hasn’t provided definitions
with \crefname already.

\ChemCleverefSupport{ ⟨counter⟩ }{ ⟨singular⟩ }[ ⟨uppercase


singular⟩ ]{ ⟨plural⟩ }[ ⟨uppercase plu-
ral⟩ ]
Introduced in LATEX 2𝜀 -version of \chemmacros_add_cleveref_support:nnnnn.
version 5.6
\chemmacros_add_fancyref_support:nnn { ⟨prefix⟩ } { ⟨name⟩ } { ⟨uppercasename⟩ }
Introduced in A command to add suiting names for a counter for the fancyref package’s \fref commands.
version 5.6 This command acts at the end of the preamble and doesn’t override definitions made by the
users.

\ChemFancyrefSupport{ ⟨prefix⟩ }{ ⟨name⟩ }[ ⟨uppercase name⟩ ]


Introduced in LAT X 2𝜀 -version of \chemmacros_add_fancyref_support:nnnnn.
E
version 5.6
This is how the macros \NewChemParticle, \RenewChemParticle, \DeclareChemParticle and
\ProvideChemParticle were defined:

1 \NewChemMacroset {Particle} {mm}


2 { \chemmacros_define_particle:Nn #1 {#2} }

The following macros strictly speaking are not provided by the base module but this place
fits best for their description.

∗ \chemmacros_module_if_exist:nTF { ⟨module⟩ } { ⟨true⟩ } { ⟨false⟩ }


Checks if a file with the correct name for a module ⟨module⟩ can be found.

∗ \chemmacros_module_if_loaded:nTF { ⟨module⟩ } { ⟨true⟩ } { ⟨false⟩ }


Checks if the module ⟨module⟩ has already been loaded or not.

63
25. The errorcheck Module

\chemmacros_module_load:n { ⟨module⟩ }
Loads module ⟨module⟩ if it hasn’t been loaded, yet. The module must exist as a separate file as
described in section A.
\chemmacros_module_before:nn { ⟨module⟩ } { ⟨code⟩ }
Introduced in Saves ⟨code⟩ and inserts it right before ⟨module⟩ is loaded. If ⟨module⟩ is never loaded then
version 5.1 ⟨code⟩ is never inserted. If ⟨module⟩ already is loaded when the command is used then ⟨code⟩
also is never inserted.
\chemmacros_module_after:nn { ⟨module⟩ } { ⟨code⟩ }
Introduced in Saves ⟨code⟩ and inserts it right after ⟨module⟩ is loaded. If ⟨module⟩ is never loaded then
version 5.1 ⟨code⟩ is never inserted. If ⟨module⟩ already is loaded when the command is used then ⟨code⟩ is
inserted immediately.

25. The errorcheck Module


Introduced in The errorcheck module provides some rudimentary support for giving users more meaningful
version 5.2 messages when they use a command or environment provided by a module that they haven’t
loaded.

26. The lang and translations Modules


The lang module provides language support for c h e m m ac r o s. It loads the package transla-
tions [Nie22d].

26.1. Information For Users


This module defines the following option:
language = auto| ⟨language⟩ Default: auto
If set to auto c h e m m ac r o s will detect the language used by babel [Bra22] or polyglos-
sia [Cha21] automatically, the fallback translation is English and will be used if no translation
for the actual language is available. Any language known to the translations package is a valid
value for ⟨language⟩.
The language chosen via language is used for translation of certain strings in different places
all over chemmacros. They are mentioned in the places when the corresponding function of
ch e m m ac r o s is explained.
Translation is done with the help of the translations package, available translation keys are
listed in section 26.2.

26.2. Available Translation Keys


Table 4 on the following page lists all predefined translations of the available keys. Some of
Changed in the translations have changed in version 5.6. All available translations are provided by the
version 5.6 translations module. A translation key is a unique string7 of characters. Each key is used to
identify a replacement text which depends on the current language or the language set through
the language option. For each key at least the English fallback translation is provided, for most
also the German translation is provided. For a few keys also other translations are provided. If
you find that a translation for your language is missing you can provide it in the preamble:
7. That is, a string using the definition for strings used for expl3, i.e., converted to a series of category code 12
characters..

64
26. The lang and translations Modules

\DeclareChemTranslation{ ⟨key⟩ }{ ⟨language⟩ }{ ⟨translation⟩ }


Introduced in A command which makes an abstraction from the translations package. It should be used in
version 5.6 documents for adding missing translations that are needed. This command can only be used in
the preamble.

\DeclareChemTranslations{ ⟨key⟩ }{ ⟨language⟩ = ⟨translation⟩ }


Introduced in A command rather meant for module writers but can be used by document authors as well, of
version 5.6 course. It gets a csv list of key/value pairs of translations. This command can only be used in
the preamble.

\AddChemTranslation{ ⟨language⟩ }{ ⟨key⟩ }{ ⟨translation⟩ }


Introduced Basically the same as \DeclareChemTranslation but with focus on the language instead of the
in version 6.2 key and thus has a different argument order. This command can only be used in the preamble.
(2022/03/05)
\AddChemTranslations{ ⟨language⟩ }{ ⟨key⟩ = ⟨translation⟩ }
Introduced in Basically the same as \DeclareChemTranslations but with focus on the language instead of
version 6.2 the key. It lets you define the translations of several keys for one language in one go. This
command can only be used in the preamble.

If you send me an email (see section B starting on page 71) with the translations for your
language I’ll gladly add them to the next release of c h e m m ac r o s!
Please do not use translations’ \DeclareTranslation for declaring translations.

Ta b l e 4 : Translation keys predefined by c h e m m ac r o s (except phase-aqi, phase-cd and phase-lc


which were defined in this document).
key language translation
K-acid fallback \mathrm {a}
K-base fallback \mathrm {b}
K-water fallback \mathrm {w}
phase-sld fallback s
phase-lqd fallback l
phase-gas fallback g
phase-aq fallback aq
solution fallback solution in
list-of-reactions fallback List of Reactions
reaction fallback reaction
reactions fallback reactions
Reaction fallback Reaction
Reactions fallback Reactions
scheme-name fallback Scheme
scheme-list fallback List of Schemes
scheme fallback scheme
schemes fallback schemes
Scheme fallback Scheme
Schemes fallback Schemes
K-acid German \mathrm {s}
phase-sld German f
phase-lqd German f\/l
solution German L\"osung in

continues

65
26. The lang and translations Modules

key language translation


list-of-reactions German Reaktionsverzeichnis
reaction German Reaktion
reactions German Reaktionen
Reaction German Reaktion
Reactions German Reaktionen
scheme-name German Schema
scheme-list German Verzeichnis der Schemata
scheme German Schema
schemes German Schemata
Scheme German Schema
Schemes German Schemata
K-acid Danish \mathrm {s}
K-water Danish \mathrm {v}
list-of-reactions Danish Reaktionsliste
reaction Danish reaktion
reactions Danish reaktioner
Reaction Danish Reaktion
Reactions Danish Reaktioner
scheme-name Danish Skema
scheme-list Danish Skemaliste
scheme Danish skema
schemes Danish skemaer
Scheme Danish Skema
Schemes Danish Skemaer
K-acid Dutch \mathrm {z}
list-of-reactions Dutch Lijst van reacties
reaction Dutch reactie
reactions Dutch reacties
Reaction Dutch Reactie
Reactions Dutch Reacties
list-of-reactions Italian Elenco delle reazioni
reaction Italian reazione
reactions Italian reazioni
Reaction Italian Reazione
Reactions Italian Reazioni
list-of-reactions French Table des r\’{e}actions
reaction French r\’{e}action
reactions French r\’{e}actions
Reaction French R\’{e}action
Reactions French R\’{e}actions
list-of-reactions Norwegian Reaksjonsliste
reaction Norwegian reaksjon
reactions Norwegian reaksjoner
Reaction Norwegian Reaksjon
Reactions Norwegian Reaksjoner
scheme-name Norwegian Skjema
scheme-list Norwegian Skjemaliste

continues

66
27. The tikz Module

key language translation


scheme Norwegian skjema
schemes Norwegian skjema
Scheme Norwegian Skjema
Schemes Norwegian Skjema
reactions Nynorsk reaksjonar
Reactions Nynorsk Reaksjonar
phase-aqi fallback aq,$\infty $
phase-cd fallback cd
phase-lc fallback lc

26.3. Information For Module Writers


In addition to the commands from section 26.2 starting on page 64 the following macros are
available:

∗ \chemmacros_translate:n { ⟨translation key⟩ }


Translates the given key to the language which is detected automatically or given by the user.
Should be used in c h e m m ac r o s’ macros instead of translations’ \GetTranslation.

\l_chemmacros_language_tl
A token list variable that holds the language which is used by \chemmacros_translate:n for
translation, after begin document.

∗ \ChemTranslate{ ⟨translation key⟩ }


A version of \chemmacros_translate:n for those who prefer traditional LATEX 2𝜀 programming
over expl3.

\chemmacros_declare_translation:nnn { ⟨language⟩ } { ⟨key⟩ } { ⟨translation⟩ }


The expl3 version of \DeclareChemTranslation.

\chemmacros_declare_translations:nn { ⟨key⟩ } { ⟨language⟩ = ⟨translation⟩ }


The expl3 version of \DeclareChemTranslations.

27. The tikz Module


The tikz module loads the tikz package [Tan21] and the TikZ library calc.

27.1. For Users


The tikz module defines a few arrow tips:

el
An arrow tip: \tikz\draw[-el](0,0)--(1,0);

left el
An arrow tip: \tikz\draw[-left el](0,0)--(1,0);

right el
An arrow tip: \tikz\draw[-right el](0,0)--(1,0);

67
28. The xfrac Module

Introduced in The tikz module also loads the libraries calc and decorations.pathmorphing. It uses those
version 5.3 libraries for defining a new decoration wave.

1 \begin{tikzpicture}
2 \draw[decorate,decoration=wave]
(0,0) -- (2,0) ;
3 \end{tikzpicture}

27.2. For Module Writers


The tikz module provides some macros for common TikZ functions. This allows to use expl3’s
powerful function variants for expansion control.

\c_chemmacros_other_colon_tl
A constant tokenlist which contains a colon with category code 12 (other). This is useful since
TikZ sometimes expects an other colon and in an expl3 programming environment : has
category code 11 (letter).

\chemmacros_tikz_picture:nn { ⟨options⟩ } { ⟨code⟩ }


Defined as \tikzpicture[{#1}] #2 \endtikzpicture.

\chemmacros_tikz:nn { ⟨options⟩ } { ⟨code⟩ }


Defined as \tikz[{#1}]{#2}.

\chemmacros_tikz_draw:n { ⟨options⟩ }
Defined as \draw[{#1}].

\chemmacros_tikz_node:n { ⟨options⟩ }
Defined as \node[{#1}].

\chemmacros_tikz_shade:n { ⟨options⟩ }
Defined as \shade[{#1}].

\chemmacros_tikz_shadedraw:n { ⟨options⟩ }
Defined as \shadedraw[{#1}].

\chemmacros_tikz_node_in_draw:n { ⟨options⟩ }
Defined as node[{#1}].

28. The xfrac Module


The xfrac module loads the package xfrac [L3P]. For the following explanations it will be
helpful if you know about said package and how it works first. This module is a support module
that defines the macro

\chemfrac[ ⟨type⟩ ]{ ⟨numerator⟩ }{ ⟨denominator⟩ }


⟨type⟩ can either be text or superscript.

This macro calls a certain instance of the xfrac text template, depending on the option ⟨type⟩
and the current font family. If used \chemfrac looks if an instance

chemmacros-frac-\f@family- ⟨type⟩

68
Ta b l e 5 : Predefined xfrac text instances.
font family text superscript
cmr 2
⁄3 ⁄3
2

lmr 2
⁄3 ⁄3
2

LinuxLibertineT-TLF 2
⁄3 2⁄3

LinuxLibertineT-TOsF 2
⁄3 2 ⁄3

exists. If yes this instance is used, if no the instance chemmacros-frac-default- ⟨type⟩ is used.
The default instances are the same as the ones for cmr.
The xfrac module defines instances some font families, they are listed and demonstrated in
table 5. The superscript type fractions look larger than the text types. The reason is that the
superscript types are typically used with a smaller font size. Let’s take a look at an example
where both instances are used:

1 \chemsetup[redox]{pos=top}
2 \code{superscript}:
3 \ch{"\ox{1/3,I}" {}3+}
4 1⁄3
+
5 \chemsetup[redox]{pos=side} superscript: I3
+
6 \code{text}: \ox{1/3,I3+} text: I3 (1⁄3)
7 1⁄3
8
9
\huge
\chemsetup[redox]{pos=top}
superscript: I3+
10
11
\code{superscript}:
\ch{"\ox{1/3,I}" {}3+}
text: I3+ (1⁄3)
12
13 \chemsetup[redox]{pos=side}
14 \code{text}: \ox{1/3,I3+}

If you define instances for other families please feel free to submit them to me (see section A.2
starting on page 71) so they can be added to the xfrac module.

Part V.
Appendix
A. Own Modules Called Styles
A.1. How To
If you have additional functionality which you think might be useful as a c h e m m ac r o s
module then you can easily write one yourself. The module must be a file in a path where
TEX can find it following a certain naming scheme. The file for a module foo must be named
chemmacros.style.foo.code.tex.

\ChemStyle*{ ⟨name⟩ }[ ⟨version


description⟩ ]
Register module ⟨name⟩ where the optional argument is passed to the optional argument of

69
A. Own Modules Called Styles

\ProvidesFile.

The first line in the file then should look similar to this:

1 \ChemStyle{foo}[2022-02-07 description of foo]

This registers the style foo which means chemmacros will accept this file as a valid style.
Such a style can then be loaded to your document via

\usechemstyle{ ⟨csv list of style names⟩ }


which should be used in the preamble of your document.

Since c h e m m ac r o s is written using expl3 \ChemModule starts an expl3 programming


environment. If you don’t want that but rather want to write your module using traditional
LATEX 2𝜀 methods then use the starred variant:

1 \ChemStyle*{foo}[2022-02-07 description of foo]

In both variants @ has category code 11 (letter).


If you decide to write your module foo using expl3 and add options you want to be able to
set using \chemsetup[foo]{ ⟨options⟩ } please make sure you define (and set) them with the
following macros:

\chemmacros_define_keys:nn { ⟨module⟩ } { ⟨key definitions⟩ }


Define l3keys options for the module ⟨module⟩. This is a wrapper for \keys_define:nn
{chemmacros/ ⟨module⟩ } { ⟨key definitions⟩ }.

\chemmacros_set_keys:nn { ⟨module⟩ } { ⟨input⟩ }


Sets l3keys options for the module ⟨module⟩. This is a wrapper for \keys_set:nn {chemmacros/ ⟨module⟩ }
{ ⟨input⟩ }.

Also (especially if you consider submitting the module, see section A.2 on the next page) please
follow the expl3 naming conventions for variables and functions, i. e., use chemmacros as expl3
module name:

1 \tl_new:N \l__chemmacros_my_internal_variable_tl
2 \tl_new:N \l_chemmacros_my_public_variable_tl
3 \cs_new:Npn \__chemmacros_my_internal_function:n #1 { ... }
4 \cs_new_protected:Npn \chemmacros_my_public_function:n #1 { ... }
5 \NewDocumentCommand \publicfunction {m}
6 { \chemmacros_my_public_function:n {#1} }

You will find more details on the naming conventions in interface3.pdf which most likely
is available on your system:

~ $ texdoc interface3

70
B. Support, Suggestions and Bug Reports

If you haven’t read section 24 starting on page 62 about the base module, yet, please have a
look. There some macros for module writers are described. Also other modules define macros
for module writers which may be useful.

A.2. Submitting a Module


If you have written a module and feel it might be useful for other users please feel free to contact
me and submit the module. I will surely take at look at both functionality and code and if I feel
that it adds value to c h e m m ac r o s I will add it to the package. Requirement for this is that
the module is licensed with the LATEX Project Public License (v1.3 or later) and that I take over
maintenance (according to the “maintainer” status of the LPPL).
Please do not submit your module via pull request but send me the files directly. In the best
case you also have a short piece of documentation.

B. Support, Suggestions and Bug Reports


B.1. Support
If you need support or help with anything regarding c h e m m ac r o s please use the usual
support forums

• http://www.golatex.de/ or

• http://texwelt.de/wissen/ if you speak German,

• http://www.latex-community.org/forum/ or

• http://tex.stackexchange.com/ if you speak English

You can also open an issue on https://github.com/cgnieder/chemmacros/issues/ possibly


adding the label support or write an email to chemmacros@cnltx.de.

B.2. Suggestions
If you have any suggestions on how c h e m m ac r o s could be improved then please go to
https://github.com/cgnieder/chemmacros/issues/ and open a new issue possibly adding
the label suggestion.

B.3. Bug reports


If you find any bugs, i. e., errors (something not working as described, conflicts with other
packages, . . . ) then please go to https://github.com/cgnieder/chemmacros/issues/ and
open a new issue describing the error including a minimal working example and possibly adding
the label bug.

C. References
[Ars13] Donald A r s e n e au. relsize. version 4.1, Mar. 29, 2013 (or newer).
u r l: https://www.ctan.org/pkg/relsize.
[Bra22] Johannes B r a a m s, current maintainer: Javier B e z o s.
babel. version 3.70, Jan. 26, 2022 (or newer).
u r l: https://www.ctan.org/pkg/babel/.

71
C. References

[Car21] David C a r l i s l e. longtable. version 4.17, Sept. 1, 2021 (or newer).


u r l: https://www.ctan.org/pkg/longtable/.
[Cha21] François C h a r e tt e, current maintainer: Arthur R e u t e n au e r.
polyglossia. version 1.53, Apr. 12, 2021 (or newer).
u r l: https://www.ctan.org/pkg/polyglossia/.
[CM21] David C a r l i s l e and Frank M i t t e l b ac h.
bm. version 1.2e, Apr. 25, 2021 (or newer). url: https://www.ctan.org/pkg/bm/.
[Coh+08] E. Richard C o h a n et al.
“Quantities, Symbols and Units in Physical Chemistry”, IUPAC Green Book.
3rd Edition. 2nd Printing. IUPAC & RSC Publishing, Cambridge, 2008.
[Con+05] Neil G. Connelly et al. “Nomenclature of Inorganic Chemistry”, IUPAC Red Book.
IUPAC & RSC Publishing, Cambridge, 2005. i s b n: 0-85404-438-8.
[Cub18] Toby C u b i t t. cleveref. version 0.21.4, Mar. 27, 2018 (or newer).
u r l: https://www.ctan.org/pkg/cleveref/.
[Fuj13] Shinsaku F u j i ta. XˇMTEX. version 5.06, 2013 (or newer).
u r l: https://www.ctan.org/pkg/xymtex/.
[Hen21] Martin H e n s e l. mhchem. version 4.09, Dec. 31, 2021 (or newer).
u r l: https://www.ctan.org/pkg/mhchem/.
[HMT22] Morten H ø g h o l m, Lars M a d s e n, and T h e LATEX 3 P r o j e c t T e a m.
mathtools. version 1.28, Feb. 2, 2022 (or newer).
u r l: https://www.ctan.org/pkg/mh/.
[Koh21] Markus Ko h m. KOMA - Script. version 3.35, Nov. 13, 2021 (or newer).
u r l: https://www.ctan.org/pkg/koma-script/.
[L3P] T h e LATEX 3 P r o j e c t T e a m. l3packages. Feb. 5, 2022 (or newer).
u r l: https://www.ctan.org/pkg/l3packages/.
[Leh20] Philipp L e h m a n, current maintainer: Joseph Wr i g h t.
etoolbox. version 2.5k, Oct. 5, 2020 (or newer).
u r l: https://www.ctan.org/pkg/etoolbox/.
[MS21] Frank M i t t e l b ac h and Rainer S c h ö p f.
amstext. version 2.01, Aug. 26, 2021 (or newer).
u r l: https://www.ctan.org/pkg/amstext/.
[Nie20] Clemens N i e d e r b e r g e r. chemgreek. version 1.1a, Jan. 16, 2020 (or newer).
u r l: https://www.ctan.org/pkg/chemgreek/.
[Nie21] Clemens N i e d e r b e r g e r. chemnum. version 1.3a, Jan. 21, 2021 (or newer).
u r l: https://www.ctan.org/pkg/chemnum/.
[Nie22a] Clemens N i e d e r b e r g e r. acro. version 3.7, Jan. 27, 2022 (or newer).
u r l: https://www.ctan.org/pkg/acro/.
[Nie22b] Clemens N i e d e r b e r g e r. chemformula. version 4.17, Jan. 23, 2022 (or newer).
u r l: https://www.ctan.org/pkg/chemformula/.
[Nie22c] Clemens N i e d e r b e r g e r. elements. version 0.4, Jan. 29, 2022 (or newer).
u r l: https://www.ctan.org/pkg/elements/.
[Nie22d] Clemens N i e d e r b e r g e r. translations. version 1.12, Feb. 5, 2022 (or newer).
u r l: https://www.ctan.org/pkg/translations/.

72
C. References

[ORT21] Heiko O b e r d i e k, Sebastian R a h t z, and T h e LATEX 3 P r o j e c t T e a m.


hyperref. version 7.00m, June 7, 2021 (or newer).
u r l: https://www.ctan.org/pkg/hyperref/.
[Ped17] Bjørn P e d e r s e n. bpchem. version 1.1, Aug. 23, 2017 (or newer).
u r l: https://www.ctan.org/pkg/bpchem/.
[PPR04] R. Pa n i c o, W. H. Pow e l l, and J-C. R i c h e r. “Nomenclature of Organic
Chemistry, Sections A, B, C, D, E, F, and H”, IUPAC Blue Book. d r a f t. Oct. 7, 2004.
u r l: http://old.iupac.org/reports/provisional/abstract04/BB-
prs310305/CompleteDraft.pdf (visited on 07/07/2013).

[Rei99] Axel R e i c h e r t. fancyref. version 0.9c, Feb. 3, 1999 (or newer).


u r l: https://www.ctan.org/pkg/fancyref/.
[Tal20] Nicola L. C. Ta l b ot. glossaries-extra. version 1.45, Apr. 1, 2020 (or newer).
u r l: https://ctan.org/pkg/glossaries-extra/.
[Tan21] Till Ta n tau. TikZ/pgf. version 3.1.9a, May 15, 2021 (or newer).
u r l: https://www.ctan.org/pkg/pgf/.
[Tel21] Christian T e l l e c h e a. chemfig. version 1.6b, Aug. 1, 2021 (or newer).
u r l: https://www.ctan.org/pkg/chemfig/.
[VN20] Herbert Vo ss and Rolf N i e p r a s c h k.
xltabular. version 0.2e, Nov. 4, 2020 (or newer).
u r l: https://ctan.org/pkg/xltabular/.
[Wri13] Joseph Wr i g h t. chemstyle. version 2.0m, July 3, 2013 (or newer).
u r l: https://www.ctan.org/pkg/chemstyle/.
[Wri22] Joseph Wr i g h t. siunitx. version 3.0.47, Feb. 3, 2022 (or newer).
u r l: https://www.ctan.org/pkg/siunitx/.

73
D. Index

Symbols boolean-option ................................. 4


’ (symbol) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 bpchem (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
( (symbol) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Braams, Johannes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
) (symbol) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 \branch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
- (symbol) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 f. break-space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
= (symbol) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 \bridge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 f.
[ (symbol) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 bridge-number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
\# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 f.
^ (symbol) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 C
| (symbol) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 f. \c_chemmacros_other_colon_tl (expl3) . . . . . . . . . . 68
option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 \cal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
] (symbol) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 \calory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Carlisle, David . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37, 62
A \cd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
\a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 \ce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 f., 32
\abinitio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 \ch 5, 8 f., 18, 20 f., 23 f., 32, 38, 45 f., 48 f., 54–57, 60, 69
\acl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 \changestate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22, 57 ff.
acro (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 f., 43 Charette, François . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
acronym-support . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38, 43 charges (module) . . . . . . . . . . . . . . . . . . . . . . . . 8, 18, 22 ff.
\acs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 \chcpd . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5, 18, 23 f., 44, 50
\AddChemTranslation . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 \chemabove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
\AddChemTranslations . . . . . . . . . . . . . . . . . . . . . . . . . . 65 \chemAlpha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
\AddRxnDesc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 \chemalpha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
align . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 \chembeta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
alignat (environment) . . . . . . . . . . . . . . . . . . . . . . . . . . 35 \ChemCleverefSupport . . . . . . . . . . . . . . . . . . . . . . . . . . 63
\alt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 \chemdelta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
\alternating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 \ChemFancyrefSupport . . . . . . . . . . . . . . . . . . . . . . . . . . 63
amount-unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 f. chemfig (package) . . . . . . . . . . . . . . . . . . . . 3, 8 f., 22 f., 31
amsmath (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 \ChemForm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
amstext (package) . . . . . . . . . . . . . . . . . . . . . . . . 22, 26, 62 chemformula (package) . . . . . . . . . . . . . . . . 5, 8, 18, 22 ff.
angle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27, 29 \chemfrac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45, 68
\angstrom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 \chemgamma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
\anti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15, 17 chemgreek (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
\aq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 f. chemist (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22, 24
\aqi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 \chemmacros_add_cleveref_support:nnnnn (expl3) .
A rseneau, Donald . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 63
\atm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 \chemmacros_add_fancyref_support:nnn (expl3) . 63
\atmosphere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 \chemmacros_add_fancyref_support:nnnnn (expl3) .
atom-number-cs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 63
atom-number-space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 \chemmacros_allow_break: (expl3) . . . . . . . . . . . . . . 62
\atomicmassunit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 \chemmacros_bold:n (expl3) . . . . . . . . . . . . . . . . . . . . . 62
atoms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 \chemmacros_chemformula:n (expl3) . . . . . . . . . . . . . 24
autoref-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 \chemmacros_declare_translation:nnn (expl3) . . 67
\chemmacros_declare_translations:nn (expl3) . . 67
B \chemmacros_define_keys:nn (expl3) . . . . . . . . . . . . 70
\b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 \chemmacros_if_bold: (expl3) . . . . . . . . . . . . . . . . . . . 62
\ba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 f. \chemmacros_if_class_loaded:n (expl3) . . . . . . . . . 62
babel (package) . . . . . . . . . . . . . . . . . . . . . . . . 21, 37, 40, 64 \chemmacros_if_is_int:n (expl3) . . . . . . . . . . . . . . . 62
back-atoms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 \chemmacros_if_loaded:nn (expl3) . . . . . . . . . . . . . . 62
\bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 \chemmacros_if_package_loaded:n (expl3) . . . . . . 62
base (module) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 f., 71 \chemmacros_math:n (expl3) . . . . . . . . . . . . . . . . . . . . . 63
before-tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 \chemmacros_module_after:nn (expl3) . . . . . . . . . . . 64
B ezos, Javier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 \chemmacros_module_before:nn (expl3) . . . . . . . . . . 64
\blend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 \chemmacros_module_if_exist:n (expl3) . . . . . . . . . 63
\block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 \chemmacros_module_if_loaded:n (expl3) . . . . . . . . 63
bm (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 \chemmacros_module_load:n (expl3) . . . . . . . . . . . . . 64
\bond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 f. \chemmacros_new_environment_macroset:nnn (expl3)
bookmark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38, 42 f. 63

74
INDEX

\chemmacros_new_macroset:nnn (expl3) . . . . . . . . . . 63 D
\chemmacros_nobreak: (expl3) . . . . . . . . . . . . . . . . . . . 62 \D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 14
\chemmacros_reaction:n (expl3) . . . . . . . . . . . . . . . . . 24 \d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
\chemmacros_set_keys:nn (expl3) . . . . . . . . . . . . . . . 70 \data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51–55
\chemmacros_skip_nobreak:N (expl3) . . . . . . . . . . . . 62 decimal-marker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
\chemmacros_text:n (expl3) . . . . . . . . . . . . . . . . . . . . . 63 \DeclareChemCharge . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
\chemmacros_tikz:nn (expl3) . . . . . . . . . . . . . . . . . . . . 68 \DeclareChemEqConstant . . . . . . . . . . . . . . . . . . . . . . . . 7
\chemmacros_tikz_draw:n (expl3) . . . . . . . . . . . . . . . 68 \DeclareChemIUPAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 f.
\chemmacros_tikz_node:n (expl3) . . . . . . . . . . . . . . . 68 \DeclareChemIUPACShorthand . . . . . . . . . . . . . . . . . . . 17
\chemmacros_tikz_node_in_draw:n (expl3) . . . . . . 68 \DeclareChemLatin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
\chemmacros_tikz_picture:nn (expl3) . . . . . . . . . . . 68 \DeclareChemNMR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
\chemmacros_tikz_shade:n (expl3) . . . . . . . . . . . . . . 68 \DeclareChemNucleophile . . . . . . . . . . . . . . . . . . . . . . 19
\chemmacros_tikz_shadedraw:n (expl3) . . . . . . . . . . 68 \DeclareChemPartialCharge . . . . . . . . . . . . . . . . . . . . 10
\chemmacros_translate:n (expl3) . . . . . . . . . . . . . . . 67 \DeclareChemParticle . . . . . . . . . . . . . . . . . . . . . . 19, 63
\ChemModule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 \DeclareChemPhase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
chemnum (package) . . . . . . . . . . . . . . . . . 3, 37 ff., 42 f., 49 \DeclareChemReactant . . . . . . . . . . . . . . . . . . . . 38 f., 42 f.
\chemomega . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 \DeclareChemReaction . . . . . . . . . . . . . . . . . . . . . . . . . . 35
\chemprime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 \DeclareChemState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
\chemsetup 4 f., 7, 9, 18, 20 f., 23, 25–30, 34, 40 ff., 45 ff., \DeclareChemTranslation . . . . . . . . . . . . . . . . 40, 65, 67
54, 62, 69 f. \DeclareChemTranslations . . . . . . . . . . . . . . . . . . 65, 67
\ChemStyle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 f. \DeclareDocumentCommand . . . . . . . . . . . . . . . . . . . . . . 63
chemstyle (package) . . . . . . . . . . . . . . . . . . . . . . . . . . 18, 61 \DeclareTranslation . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
\ChemTranslate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7, 67 delimiters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
\chlewis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18, 37 \delm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
choice-option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 \delp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
\cip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14, 16 \Delta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
cip-inner-format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 delta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
cip-kern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 \dento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 f.
cip-number-format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 \dexter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14, 16
cip-outer-format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 dist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
circled . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
circletype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 E
\cis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 f. \E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 15
cleveref (package) . . . . . . . . . . . . . . . . . . . . . . . . . 34, 50, 63 \El . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
\cmc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 \el . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 f., 48, 67
\cmpd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 f., 42 \elementarycharge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
\cmpdplain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 elements (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
\CNMR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 elpair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 f., 23 f.
\co . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 \ElPot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
C ohan, E. Richard . . . . . . . . . . . . . . . . . . . 6 f., 13, 20, 44 \endo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 \entgegen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
\comb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 \Enthalpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
\compl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 \enthalpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57–60
\complex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 \entropy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 ff.
concentration-unit . . . . . . . . . . . . . . . . . . . . . . . . . . 40 f. eq-constant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
connector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 equiv-unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 f.
C onnelly, Neil G. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 equivalents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
cool (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 errorcheck (module) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
coord-use-hyphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 etoolbox (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
\copolymer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 experimental (environment) . . . . . . . . . . . . . . . . . 51, 53
coupling-bonds-post . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 explicit-sign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
coupling-bonds-pre . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 explicit-zero-sign . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
coupling-nuclei-post . . . . . . . . . . . . . . . . . . . . . . . . . . 53 explizit-zero-sign . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
coupling-nuclei-pre . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
coupling-pos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 F
coupling-pos-cs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 \fac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
coupling-symbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 fancyref (package) . . . . . . . . . . . . . . . . . . . . . . . . 34, 50, 63
coupling-unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 \fancyrefrctlabelprefix . . . . . . . . . . . . . . . . . . . . . . 35
C ubitt, Toby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34, 50 \fancyrefschlabelprefix . . . . . . . . . . . . . . . . . . . . . . 50
\cyclic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 \fdelm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 f.
\cyclo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 \fdelp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 f.

75
INDEX

float (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 K-water ......................................... 7


float-method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 K., Sonja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6, 37
floatrow (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 \Ka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 ff.
\fmch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 ff. \Kb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 f.
\fminus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 ff. Kohm, Markus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
format . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 f., 25 f., 44, 52 KOMA-Script (bundle) . . . . . . . . . . . . . . . . . . . . . . . . . . 10
formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 \Kw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 f.
formula . . . . . . . . . . . . . . . . . . . . . . 19, 22 f., 32, 44, 50, 53
formula (module) . . . . . . . . . . . . . . . 8, 18, 20, 22 f., 32, 50 L
\fpch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 ff. \L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 14
\fplus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 ff. l3packages (bundle) . . . . . . . . . . . . . . . . . . . . . . . 46, 63, 68
fraction-unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 f. \l_chemmacros_language_tl (expl3) . . . . . . . . . . . . . 67
\fscrm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 \laevus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
\fscrp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 lang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
\fsscrm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 lang (module) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5, 64
\fsscrp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
F ujita, Shinsaku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 \latin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 f.
Lehman, Philipp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
G \LetChemIUPAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
\g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
\gas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 list-entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
\gibbs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 ff. list-heading-cmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
glossaries-extra (package) . . . . . . . . . . . . . . . . . . . . 37, 43 list-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 f.
\graft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 list-setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
\gram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54, 56 \listofreactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
greek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 \listofschemes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
greek (module) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 \listschemename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
longtable (package) . . . . . . . . . . . . . . . . . . . . . . . . . . 37, 44
H
lppl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 71
\H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
\lqd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
half . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
\hapto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 f.
M
\Helmholtz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
\m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
H ensel, Martin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5, 22
Madsen, Lars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32, 44
\HNMR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
\Hyd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
main-sub-sep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
\hydrogen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 f.
\makepolymerdelims . . . . . . . . . . . . . . . . . . . . . . . . . . 31 f.
hyperref (package) . . . . . . . . . . . . . . . . . . . . . . 35, 37 f., 42
mass-unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
hyphen-post-space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
mathtools (package) . . . . . . . . . . . . . . . . . . . . . . . . 32 f., 44
hyphen-pre-space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
\mch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 f.
H øgholm, Morten . . . . . . . . . . . . . . . . . . . . . . . . . . 32, 44
\mech . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
mechanisms (module) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
I
\mega . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
\initcmpd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
initiate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 memoir (class) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
\mer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
\insitu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
\meta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 15 ff.
\intertext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
\invacuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

\ipn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 mhchem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
\ipnetwork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 mhchem (package) . . . . . . . . . . . . . . . . . . . . . . . . 5, 8, 22 ff.
\isotope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 f. minimal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 f.
isotope (module) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Mittelbach, Frank . . . . . . . . . . . . . . . . . . . . . 22, 26, 62
iupac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 17 \mmHg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
\iupac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11–17, 30, 38 module (module) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 f., 62
J \Molar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
\J . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 \moLar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
\molar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
K \MolMass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
\k . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
K-acid .......................................... 7 N
K-base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 \N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

76
INDEX

\n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 particles (module) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38, 43 \pch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 f., 46 f.
\net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Pedersen, Bjørn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
\network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Pedersen, Bjørn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
\NewChemCharge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 \per . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31, 54, 56, 59 f.
\NewChemEqConstant . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 f. \periodic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
\NewChemIUPAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 f. \pH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 f.
\NewChemIUPACShorthand . . . . . . . . . . . . . . . . . . . . . . . 17 phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
\NewChemLatin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 \phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 f., 29
\NewChemMacroset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 phases (module) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
\NewChemNMR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51, 54 \phosphorus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
\NewChemNucleophile . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 \pKa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 f.
\NewChemPartialCharge . . . . . . . . . . . . . . . . . . . . . . . . 9 f. \pKb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 f.
\NewChemParticle . . . . . . . . . . . . . . . . . . . . . . . . . . . 19, 63 \pOH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
\NewChemPhase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 polyglossia (package) . . . . . . . . . . . . . . . . . . . . . . . . . 40, 64
\NewChemReaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 polymers (module) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 f.
\NewChemState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 f. pos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20, 45
newfloat (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 \pos . . . . . . . . . . . . . . . . . . . . . . 9, 20 f., 45 f., 52–56, 60, 69
\newman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 f. pos-number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
newman (module) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 post . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 ff.
Niederberger, Clemens 5, 8, 18, 21 f., 24 f., 37, 49, 64 Powell, W. H. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
N iepraschk, Rolf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 pre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 ff.
\nitrogen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 f. \printatom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
\NMR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50–54 \printreactants . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39, 44
nmr-base-format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 printreactants-style . . . . . . . . . . . . . . . . . . . . . . 39, 44
nomenclature (module) . . . . . . . . . . . . . . . . . . . . . . 10, 30 \ProvideChemCharge . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
“Nomenclature of Inorganic Chemistry”, IUPAC Red Book \ProvideChemEqConstant . . . . . . . . . . . . . . . . . . . . . . . . 7
16 \ProvideChemIUPAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
“Nomenclature of Organic Chemistry, Sections A, B, C, D, \ProvideChemIUPACShorthand . . . . . . . . . . . . . . . . . . . 17
E, F, and H”, IUPAC Blue Book . . . . . . . . . . 15 \ProvideChemLatin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
\nonbreakinghyphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 \ProvideChemNMR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
\normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 \ProvideChemNucleophile . . . . . . . . . . . . . . . . . . . . . . 19
\ntr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 \ProvideChemPartialCharge . . . . . . . . . . . . . . . . . . . . 10
\Nu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 \ProvideChemParticle . . . . . . . . . . . . . . . . . . . . . . 19, 63
\Nuc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 f. \ProvideChemPhase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
nucleus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 \ProvideChemReaction . . . . . . . . . . . . . . . . . . . . . . . . . . 35
\ProvideChemState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
O \prt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 f.
\O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 purity-unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 f.
O berdiek, Heiko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
opacity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Q
option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 “Quantities, Symbols and Units in Physical Chemistry”,
\orbital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 ff. IUPAC Green Book . . . . . . . . . . 6 f., 13, 20, 44
orbital (module) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
\ortho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3, 15 R
overlay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 \R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 14
own-counter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Rahtz, Sebastian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
\OX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46–49 \ran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
\ox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9, 44–49, 69 \random . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
\Oxo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 \Rconf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
\oxygen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 f. \Reactant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
\reactant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38–42
P reactant-output-style . . . . . . . . . . . . . . . . . . . . . 38, 41
\P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 \reactantl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
\p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6, 12 \Reactantplain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
p-style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 \reactantplain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Panico, R. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 reactants . . . . . . . . . . . . . . . . . . . . . . . . . . . 6, 37 ff., 41–44
\para . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 \reactants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 f., 41 ff.
parse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44, 53 reaction (environment) . . . . . . . . . . . . . . . . . . . 32, 34, 36
partial-format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 reaction* (environment) . . . . . . . . . . . . . . . . . . . . . . . . 32
particles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 f. \reactionautorefname . . . . . . . . . . . . . . . . . . . . . . . . . . 35

77
INDEX

\reactionlistname . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 f. \standardstate . . . . . . . . . . . . . . . . . . . . . . . . . . . 22, 57 ff.


reactions (environment) . . . . . . . . . . . . . . . . . . . . . 32, 37 \star . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
reactions (module) . . . . . . . . . . . . . . . . . . . . . 23 f., 32, 36 \stat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
reactions* (environment) . . . . . . . . . . . . . . . . . . . . . . . 32 \state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
reactionsat (environment) . . . . . . . . . . . . . . . . . . . . . . 35 \statistical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
\rectus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 \Submainreactantplain . . . . . . . . . . . . . . . . . . . . . . . . 43
\redox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9, 45–49, 69 \submainreactantplain . . . . . . . . . . . . . . . . . . . . . . . . 43
redox (module) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 subscript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32, 57 f., 60
R eichert, Axel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34, 50 subscript-left . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57–60
relsize (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 subscript-pos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58, 60
\RemoveChemIUPACShorthand . . . . . . . . . . . . . . . . . . . . 17 subscript-right . . . . . . . . . . . . . . . . . . . . . . . . . . 57 f., 60
\RenewChemCharge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 \sulfur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
\RenewChemEqConstant . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 super-frac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
\RenewChemIUPAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 f. superscript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32, 57 ff.
\RenewChemIUPACShorthand . . . . . . . . . . . . . . . . . . . . . 17 superscript-left . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 ff.
\RenewChemLatin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 superscript-right . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 ff.
\RenewChemNMR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
\RenewChemNucleophile . . . . . . . . . . . . . . . . . . . . . . . . 19 symbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58, 60
\RenewChemPartialCharge . . . . . . . . . . . . . . . . . . . . . . 10 symbols (module) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
\RenewChemParticle . . . . . . . . . . . . . . . . . . . . . . . . . 19, 63 \syn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
\RenewChemPhase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
\RenewChemReaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 T
\RenewChemState . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 f. tag-close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
R eutenauer, Arthur . . . . . . . . . . . . . . . . . . . . . . . . . . 64 tag-open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
R icher, J-C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Talbot, Nicola L. C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
ring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Tantau, Till . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
roman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Tellechea, Christian . . . . . . . . . . . . . . . . . . . . . . . . 8, 22
\ter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
\tert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
S
text-frac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
\S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 14
scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 f. The LATEX3 Project Team . . . 32, 37, 44, 46, 63, 68
thermodynamics (module) . . . . . . . . . . . . . . . . . . . . . . 56 f.
scheme (environment) . . . . . . . . . . . . . . . . . . . . . . . . . . 49 f.
tikz (module) . . . . . . . . . . . . . . . . . . . 10, 27 f., 30, 44, 67 f.
scheme (module) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
\schemename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
tikz (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
S chöpf, Rainer . . . . . . . . . . . . . . . . . . . . . . . . . . 22, 26, 62 TikZ/pgf (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
tocbasic (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . 37, 49
\Sconf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
\torr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
scrlfile (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
\trans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12, 15
\scrm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
\transitionstatesymbol . . . . . . . . . . . . . . . . . . . . . . . 22
\scrp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
translations (module) . . . . . . . . . . . . . . . . . . . . . . . . . . 64
\second . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37, 56
translations (package) . . . . . . . . . . . . . . . . . . . 21, 64 f., 67
sep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
\Sf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
U
short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38, 43
unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52, 58, 60
side-connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26, 45
units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
\sin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
units (module) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
\sinister . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
upgreek (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
\sipn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
upper-bookmark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38, 43
\sipnetwork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
upper-name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 f., 43
\sisetup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
use-equal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51, 53
siunitx (package) . . . . . . . . . . . . 37, 40, 50–53, 56, 58–61 \usechemmodule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
\sld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
\usechemstyle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
\Solvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 V
\solvent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38–43 \val . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52, 54 f.
solvent-output-style . . . . . . . . . . . . . . . . . . . . . . 38, 41 volume-unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 f.
\solventl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Voss, Herbert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
\Solventplain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
\solventplain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 W
\solvents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 \w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18, 20 \water . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
spectroscopy (module) . . . . . . . . . . . . . . . . . . . . . . . . 50 f. wave (TikZ decoration) . . . . . . . . . . . . . . . . . . . . . . . . . . 68

78
INDEX

Wright, Joseph . . . . . . . . . . . . . . . . 18, 37, 50, 56, 60, 62 xltabular (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . 37, 44
xparse (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
X
XˇMTEX (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Z
xfrac (module) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44, 68 f. \Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
xfrac (package) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46, 68 \zusammen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 f.

79

You might also like