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}