LaTeX/Dessiner avec LaTeX/Dessiner des molécules

Un livre de Wikilivres.
Table des matières - Dessiner avec LaTeX - Dessiner en LaTeX pur - Dessiner avec PSTricks - Dessiner avec PGF/TikZ - Dessiner des molécules - Réalisation de graphiques mathématiques - Index - Commandes - Liens externes

Vous êtes invité à consulter d'abord la section Écrire des formules chimiques.

Nous présentons quelques solutions ici. La plus ancienne est ChemTeX; la plus performante est PPCHTeX; la plus récente qui combine souplesse, facilité d'utilisation et puissance est ChemFig.

Avec chemfig[modifier | modifier le wikicode]

Pour utiliser cette extension, il faut commencer par placer dans le préambule le code suivant :

\usepackage{chemfig}

On décrit le dessin selon une syntaxe simple, souple et intuitive. Le dessin est fait avec l'extension tikz qui se charge automatiquement. ChemFig fonctionne donc en mode dvi ou pdf.

La commande principale permettant de dessiner les molécules est

\chemfig{<code>}

L’argument code est la suite de caractères décrivant le dessin de la molécule selon les règles qui sont exposées dans le manuel de chemfig. Tout a été fait pour qu’il soit possible de dessiner le plus grand nombre de configurations de molécules chimiques, tout en privilégiant une syntaxe simple, souple et intuitive. Malgré tout, le code qui décrit le dessin en 2D de la molécule voit sa complexité augmenter proportionnellement à celle de la molécule à dessiner.

Avec ppchtex[modifier | modifier le wikicode]

Rappel
L'utilisation de l'extension nécessite la déclaration, dans le préambule, de \usepackage{m-pictex,m-ch-en}, éventuellement précédé de \usepackage{etex}.

L'extension PPCHTeX extension permet également de dessiner des molécules développées en deux dimensions, et de représenter les orientations des liaisons (liaisons tétraédriques du carbone, projection de Newman, voir aussi Représentation des molécules).

La forme générale est :

\startchemical
   \chemical[liaisons][groupements]
\stopchemical

La liste liaisons commence par la description du groupement au point de création, par exemple ONE pour des liaisons en étoile autour d'un groupement, et SIX pour un cycle hexagonal. Suivent ensuite les liaisons à tracer.

On peut ajouter des options :

\startchemical[options]
   \chemical[liaisons][groupements]
\stopchemical

ou encore

\setupchemical[option]
\startchemical
   \chemical[liaisons][groupements]
\stopchemical

Les options possibles sont :

  • frame=on : trace un cadre autour du dessin ;
  • axis=on : trace des axes gradués se coupant au centre ;
  • scale=small : dessin plus petit ;
  • alternative=2 : traits plus fins ;
  • size=small ou big : taille des caractères ;
  • character=\bf : caractères gras ;
  • option=test : trace un cadre autour du texte, pour vérifier l'alignement.

Structure ONE[modifier | modifier le wikicode]

Dans le cas de ONE, il s'agit des liaisons partant du groupement central ; on peut en mettre 8, la n°1 étant à droite, la numérotation se faisant dans le sens anti-trigonométrique.

6 7 8
 \|/
5-0-1
 /|\
4 3 2

On utilise la lettre SB pour une liaison simple, DB pour une double et TB pour une triple. Par exemple

ONE,SB1,SB3,SB5,SB7

va placer quatre liaisons simples en croix +. On pourrait également écrire

ONE,SB1357

Suit la liste des positions des groupements ou atomes, introduite par Z, la position 0 étant le centre.

Puis, le second crochet contient la liste des groupements en eux-mêmes, dans le même ordre, écrits avec la syntaxe chimique classique.

Par exemple, pour la formule développée du méthane :

\startchemical
   \chemical[ONE,SB1357,Z01357][C,H,H,H,H]
\stopchemical
  • SB1357 indique qu'il y a quatre liaisons situées en 1, 3, 5 et 7 ;
  • Z01357 indique qu'il y a cinq groupements situées en 0 (centre), 1, 3, 5 et 7 ;
  • [C,H,H,H,H] est la liste des groupements : un atome de carbone à la position 0, et un atome d'hydrogène aux positions suivantes.
     (7)
      H
      |
(5) H-C-H (1)
      |
      H
     (3)

On peut aussi faire des liaisons en pointillé avec SD (D comme dotted), et des liaisons en trait épais avec BB (bold bond). Par exemple, pour la projection de Newmann du méthane :

\startchemical
   \chemical[ONE,SD1,SB4,BB2,SB7,Z01247][C,H,H,H,H]
\stopchemical
     (7)
      H
      |
      C···H (1)
     / \ 
    H   H
   (4) (2)

Structure SIX[modifier | modifier le wikicode]

Si l'on utilise SIX, cela crée un hexagone. Les positions et les liaisons sont numérotées dans le sens horaire, la position 1 est en haut à droite, la liaison 1 est la liaison verticale à droite.

       6
 (L5) / \ (L6)
     5   1
(L4) |   | (L1)
     4   2
 (L3) \ / (L2)
       3

On a deux notations :

  • la notation explicite, pour laquelle on indique les atomes de carbone du cyles : les liaisons SB, DB et TB désignent les liaisons respectivement simple, double et triple entre les atomes de l'hexagone
  • la notation simplifiée, pour laquelle on n'indique pas ces atomes (les traits sont plus longs et se rejoignent) : on utilise B (bond), et on ajoute EB (extra bond) si l'on veut une liaison double.

La lettre C désigne la liaison délocalisée (circle). On met le ou les numéros des liaisons concernés après la nature de la liaison, et si l'on n'utilise pas de numéro, cela désigne toutes les liaisons. Par exemple, pour le benzène en notation simplifiée

liaison délocalisée
\startchemical
   \chemical[SIX,B,C]
\stopchemical

le B tout seul indique que toutes les liaisons internes sont simples. Pour la forme de Kékulé :

forme de Kékulé
\startchemical
   \chemical[SIX,B,EB246]
\stopchemical

les liaisons 1, 3 et 5 sont simples, des 2, 4 et 6 sont doubles. On aurait aussi pû mettre B1,B2,EB2,B3,B4,EB4,B5,B6,EB6.

Pour mettre des atomes dans l'hexagone, on utilise Z ; il faut alors utiliser SB et DB (et non pas B et EB) :

\startchemical
   \chemical[SIX,SB,C,Z][C,C,C,C,C,C]
\stopchemical
\startchemical
   \chemical[SIX,SB135,DB246,Z][C,C,C,C,C,C]
\stopchemical

Z0 désigne le centre, par exemple si l'on veut mettre une charge partielle positive \oplus ou \delta +.

Pour mettre des liaisons partant des atomes du cycle et allant vers des groupements extérieurs, on utilise R (radical) pour une liaison simple et ER (extra radical) pour une liaison double ; pour la projection de Newmann, on peut utiliser RD pour une liaison en pointillés (radical dashed) et RB pour une liaison en trait gras (radical bold). Là encore, on met le ou les numéros des sites concernés après, et si l'on n'utilise pas de numéro, cela désigne toutes les liaisons. Si l'on a des atomes placés dans l'hexagone, il faut utiliser SR (single radical) ou DR (doube radical) pour que le trait ne se superpose pas au symbole.

Si l'on veut placer des groupements au bout des liaisons extérieures, on utilise RZ. Le ou les groupements sont indiqués dans le crochet après, dans l'ordre des RZ.

Par exemple, pour la structure explicite du benzène :

\startchemical
   \chemical[SIX,SB,C,Z,SR,RZ][C,C,C,C,C,C,H,H,H,H,H,H]
\stopchemical

pour la forme simplifiée du phénol

\startchemical
   \chemical[SIX,B,R6,RZ6][OH]
\stopchemical

L'option FRONT permet de tourner d'un sixième de tour.

      (4)
     4___5
(3) /     \ (5)
   3       6
(2) \ ___ / (6)
     2   1
      (1)

Cette forme ne peut pas être utilisée pour les cycles aromatiques (la liaison C ne fonctionne pas), mais pour le cyclohexane.

Alors, +R et -R désignent des liaisons respectivement vers le haut et vers le bas, +RZ et -RZ désignent des groupements respectivement vers le haut et vers le bas. On peut séparer les parties de la molécules en plusieurs commandes \chemical pour simplifier, par exemple

\startchemical
   \chemical[SIX,FRONT,B] % structure de base
   \chemical[SIX,FRONT,+R,+RZ][liste de groupements] % groupements en haut
   \chemical[SIX,FRONT,-R,-RZ][liste de groupements] % groupements en bas
\stopchemical

On peut utiliser des liaisons raccourcies vers la gauche, -SB, ou vers la droite, +SB. En raccourcissant une liaison vers la gauche et une autre vers la droite, cela laisse la place de mettre un atome dans l'hexagone, par exemple

\startchemical
   \chemical[SIX,FRONT,B1236,+SB4,-SB5,Z5][O]
\stopchemical

laisse de la place en position 5 pour placer un atome (ici d'oxygène).

  __O
 /   \
 \___/

Autres structures[modifier | modifier le wikicode]

Les autres structures sont :

  • THREE : triangle ;
  • FOUR : carré ;
  • FIVE : pentagone ;
  • FIVE,FRONT : pentagone avec des liaisons vers le haut et le bas ;
  • EIGHT : octogone ;
  • CARBON : carbone tétraédrique (hybridation sp3) en perspective ;
  • NEWMAN : représentation de Newman ;
  • CHAIR : cyclohexane en conformation chaise.

Mise en forme des groupements[modifier | modifier le wikicode]

On peut faire varier l'alignement du texte des groupements, par exemple pour éviter la collision :

  • \SR{groupement} pour aligner le texte à droite par rapport au point d'implantation (le texte se trouve donc à gauche de ce point) ;
  • \SL{groupement} pour aligner le texte à gauche ;
  • \SC{groupement} pour centrer le texte.

On peut rajouter du texte aux groupements, avec la syntaxe

\T{texte}{groupement}

On peut indiquer la charge électrique avec

\-{nombre}{groupement} % charge négative
\+{nombre}{groupement} % charge positive

par exemple

\startchemical
   \chemical[ONE,SB1257,Z01357][\T{1}{C},H,H,H,H]
\stopchemical

ajoute un « 1 » au dessus du carbone.

Chaîne de structures[modifier | modifier le wikicode]

On peut enchaîner les structures en créant une structure dans une autre. La sous-structure est définie dans le premier crochet, avec les position des atomes ; elle commence par PB:position (picture begin) et se termine par PE (picture end). Par exemple, pour représenter une molécule de dioxygène :

\startchemical
   \chemical[ONE,DB1,Z0,PB:Z1,ONE,Z0,PE][O,O]
\stopchemical
O=O

Notez que l'on aurait pu simplement faire \chemical[ONE,DB1,Z01][O,O] ou bien \chemical{0,--,0} (sans \start/stopchemical pour cette dernière solution), c'est juste un exemple simplifié. Cependant, cette solution est utile si l'on veut placer les doublets non-liants (voir ci-après).

Par exemple, pour le phénol :

\startchemical
   \chemical[SIX,B,C,R6,PB:RZ6,ONE,SB7,Z07,PE][O,H]
\stopchemical
  H
  |
  O
  |
 / \
|   |
 \ /

Comme précédemment, il peut être intéressant de séparer la description en plusieurs parties. Par exemple, pour l'éthène :

\startchemical
   \chemical[ONE,DB1,SB46,Z046][C,H,H]
   \chemical[ONE,PB:Z1,ONE,SB28,Z028,PE][C,H,H]
\stopchemical
H       H
 \     /
  C = C
 /     \
H       H

Si les deux sous-structures sont de même type (ONE ou SIX), on peut simplement utiliser MOV avec la direction pour indiquer que l'on décale la structure. Par exemple, toujours pour l'éthène :

\startchemical
   \chemical[ONE,DB1,SB46,Z046][C,H,H]
   \chemical[ONE,MOV1,SB28,Z028,PE][C,H,H]
\stopchemical
Polymères

On dispose d'une liaison OE (open ended), qui indique que la structure continue au-delà de la liaison.

Représentation de Lewis[modifier | modifier le wikicode]

On peut utiliser des liaisons spéciales pour la représentation de Lewis :

  • électron célibataire : ES (extra single) ;
  • deux électrons célibataires : ED (extra double) ;
  • deux électrons célibataires : ET (extra triple) ;
  • doublet non liant : EP (extra pair).

Par exemple, pour le dioxygène

\startchemical
   \chemical[ONE,DB1,EP46,Z0,PB:Z1,ONE,EP82,Z0,PE][O,O]
\stopchemical
/     \
 O = O
\     /

Documentation[modifier | modifier le wikicode]

On pourra se reporter à la documentation de l'extension, par exemple

ainsi qu'à la description succincte dans Bitouzé et Charpentier[1] p. 210.

Avec le mode mathématiques[modifier | modifier le wikicode]

Outre ce qui est écrit dans Écrire des formules chimiques > Avec le mode mathématiques, ajoutons que :

  • les liaisons verticales peuvent être obtenues avec | (ou \vert) pour les liaisons simples, et \| (ou \Vert) pour les doubles ;
  • pour placer des éléments les uns par rapport aux autres, on peut placer le tout dans un environnement picture et placer les éléments avec des instructions \put.

Avec chemtex[modifier | modifier le wikicode]

Les molécules se définissent simplement en mode mathématique, et éventuellement dans un environnement picture, comme évoqué ci-dessus.

Pour dessiner une branche de molécule en Y tourné vers la droite, on utilise :

\cright{G1}{L1}{G0}{L2}{G2}{L3}{G3}
       G2
   L1  / L2
G1 - G0 
       \ L3
       G3

Les différentes parties sont ensuite placées dans un environnement picture avec des instructions \put. ChemTeX est donc une sorte d'aide au dessin avec LaTeX.

Notes[modifier | modifier le wikicode]

  1. D. Bitouzé et J.-C. Charpentier, LaTeX, synthèse et cours, éd. Pearson Education, 2006, ISBN 2-7440-7187-0

Voir aussi[modifier | modifier le wikicode]

Liens externes[modifier | modifier le wikicode]

Le package chemfig semble également très prometteur pour le dessin de molécules chimiques en 2D, autant du point de vue de la syntaxe que des possibilités de dessin qu'il offre. Consulter la documentation en français (pdf, 810kio).

Table des matières - Généralités - Premiers pas - Structure du document - Gestion de la bibliographie - Tableaux - Images - Éléments flottants et figures - Mise en forme du texte - Choix de la police - Mise en page - Mathématiques - Gestion des gros documents - Faire des présentations - Arts et loisirs - Dessiner avec LaTeX - Créer une extension ou une classe - Programmer avec LaTeX - Annexes - Vade mecum - Conversion - Glossaire de typographie - Index - Commandes - Liens externes