Comment représenter des équations de réaction ?#
Pour mettre en forme des équations de réaction, on peut utiliser le package chemformula qui permet très simplement d’écrire des équations bilans.
chemmacros, son « grand frère », fournit l’ensemble des possibilités de chemformula mais également un grand nombre de commandes supplémentaires très utiles.
Pour écrire des mécanismes réactionnels, il faudra plutôt se tourner vers le package chemfig.
Infos
chemmacros et chemformula ont été créés par le même auteur.
En utilisant chemmacros, on peut considérer chemmformula comme chargé, et ses commandes disponibles.
chemmformula était initialement une partie de chemmacros mais est maintenant un pakage à part entière et dispose de sa propre documentation.
1. Équation bilan avec chemformula/chemmacros#
1.1. Principe de base#
Ce package est particulièrement simple d’utilisation. Il fournit la commande \ch{}
qui
contient la description des formules et du type de flèche.
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[a4paper]{geometry}
\usepackage{chemmacros}
\usepackage{babel}
\begin{document}
\begin{enumerate}
\item \ch{CH4 (g) + 2 O2 (g) -> CO2 (g) + H2O (g)}
\item \ch{MnO4- (aq) + 8 H+ (aq) + 5 e- = Mn^2+ + 4 H2O (l)}
\end{enumerate}
\end{document}
Attention
Bien penser à mettre des espaces entre les nombres stœchiométriques, les états physiques, et la formule de la molécule.
1.2. Noms des espèces#
On peut facilement ajouter le nom des espèces chimiques avec la syntaxe suivante :
\ch{!(⟨nom de l'esppèce⟩)( ⟨formule⟩ )}
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[a4paper]{geometry}
\usepackage{chemmacros}
\usepackage{babel}
\begin{document}
\ch{!(Méthane)(CH4 (g)) + !(Dioxygène)(2 O2 (g))
-> !(Dioxyde~de~carbone)(CO2 (g)) + !(Eau)(2 H2O (g))}
\end{document}
Note
Par défaut, les chiffres sont placés en indice et les signes en exposants. Pour les
chiffres en exposant, on utilse ^
(les accolades ne sont pas nécessaires).
2. Équations bilan avec chemfig#
Dans cette partie, on suppose la synthaxe de base du package chemfig connue. Si ce n’est pas le cas on pourra se référer à sa documentation chemfig ou à la page dédiée sur la FAQ. Comment représenter des molécules avec le package chemfig?
L’équation bilan doit être comprise entre les commandes \schemestart
et \schemestop
On dispose alors de deux commandes supplémentaires : \arrow(⟨arguments optionnels⟩)
et
\+
.
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[a4paper]{geometry}
\usepackage{chemfig}
\usepackage{babel}
\begin{document}
\schemestart
\chemfig{CH_3 - C (=[:90]O) - OH}
\+
\chemfig{CH_3 - CH_2 - OH}
\arrow(.mid east--.mid west)
\chemfig{CH_3 - C (=[:90]O) - O - CH_2 - CH_3}
\+
\chemfig{H_2O}
\schemestop
\end{document}
Note
Pour aligner la flèche, on a ajouté entre parenthèses un argument optionnel à la
commande \arrow()
.
Pour les molécules linéaires cela devrait être souvent le même. Toutefois, si l’alignement n’est pas satifaisant, on trouvera d’autre possibilités p. 54 de la documentation chemfig.
3. Mécanisme réactionnel avec chemfig#
3.1. Étape 1 : donner un nom#
Pour simplifier, on peut considérer que la première étape est d’attribuer un nom à un
atome ou une liaison avec @{⟨nom⟩}
placé :
juste après pour une liaison ;
juste avant pour un atome.
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[a4paper]{geometry}
\usepackage{chemfig}
\usepackage{babel}
\begin{document}
\chemfig{
R-O-C(-[2]R)(-[6]OH)-@{donneur}
\charge{90=\|,-90=\|}{O}H}
\hspace{1cm}
\chemfig{@{accepteur}\charge{
90:3pt=$\oplus$, 180=\"}{H}
}
\end{document}
Note
En réalité on définit des nœuds. Pour aller plus loin, se reporter à la documentation chemfig et/ou à celle de tikz
Pour l’instant, on ne voit rien de plus, c’est normal. Mais maintenant que cette étape est faite, on peut utiliser les deux nœuds nommés comme point de repère pour représenter le mouvement des électrons.
3.2. Étape 2 : tracer le mouvement des électrons#
La macro utilisée pour cela est \chemmove{}
.
Voici un premier exemple d’utilisation.
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[a4paper]{geometry}
\usepackage{chemfig}
\usepackage{babel}
\begin{document}
% formules et création de nœuds
\chemfig{
R-O-C(-[2]R)(-[6]OH)-@{donneur}
\charge{90=\|,-90=\|}{O}-H}
\hspace{1cm}
\chemfig{@{accepteur}\charge{
90:3pt=$\oplus$, 180=\"}{H}
}
% mouvement des électrons
\chemmove{
\draw[shorten <=2pt, shorten >=3pt]
(donneur).. controls +(90:1cm) and +(180:1cm).. (accepteur);
}
\end{document}
Explications :
Les arguments optionnels de la commande
\draw
permettent de réduire la taille de la flèche qui irait sinon jusqu’aux atomes. On réduit ici de 2 points le départ et de 3 points l’arrivée.Dans la suite, on définit deux points de contrôle pour la courbure de la flèche en indiquant leurs coordonnées polaires par rapport aux deux nœuds (donneur et accepteur).
Note
Pour en savoir plus sur ces points de contrôle, on pourra se référer à la documentation du package pgf, partie 2.3 (p. 33).
3.3. Exemple complet#
Un exemple classique avec l’étape de protonation d’un alcool primaire :
\documentclass[french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[a4paper]{geometry}
\usepackage{chemfig}
\usepackage{babel}
\begin{document}
\schemestart
\chemfig{R - C(=[2]@{donneur}\charge{45=\|,135=\|}{O})
- \charge{90=\|, -90=\|}{O} - H}
\hspace{.5cm}
\+
\hspace{.5cm}
\chemfig{@{accepteur}\charge{180=\", 45:3pt=$\oplus$}{H}}
\arrow(.mid east--.mid west)
\chemfig{R - C(=[2]\charge{180=\|,90:3pt=$\oplus$}{O} - H) - \charge{90=\|, -90=\|}{O} - H}
\schemestop
\chemmove{
\draw[shorten <=3pt, shorten >=3pt]
(donneur).. controls +(45:3cm) and +(180:1cm).. (accepteur);
}
\end{document}