LaTeX/Dessiner avec LaTeX/Dessiner des molécules
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
oubig
: 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
etTB
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 ajouteEB
(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
\startchemical \chemical[SIX,B,C] \stopchemical
le B
tout seul indique que toutes les liaisons internes sont simples. Pour la 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
- PPCHTEX, a macropackage for typesetting chemical structure formulas du site officiel Pragma ADE
- le document PDF (756 ko) à la page teTeX Documentation Guide,
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]- ↑ 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).