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

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}