Programmation LaTeX/Dessiner avec LaTeX/Dessiner des molécules
Un livre de Wikibooks.
|
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.
Sections |
[modifier] Avec ppchtex
- 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=smalloubig: taille des caractères ;character=\bf: caractères gras ;option=test: trace un cadre autour du texte, pour vérifier l'alignement.
[modifier] Structure ONE
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
-
SB1357indique qu'il y a quatre liaisons situées en 1, 3, 5 et 7 ;Z01357indique 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 dottted), 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,Z01357][C,H,H,H,H]
\stopchemical
(7)
H
|
C···H (1)
/ \
H H
(4) (2)
[modifier] Structure SIX
Si l'on utilise SIX, cela crée un hexagone. Les positions et les liaisons sont numérotées dans le sens trigonométrique, 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 notation :
- la notation explicite, pour laquelle on indique les atomes de carbone du cyles : les liaisons
SB,DBetTBdé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 metttre 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 / \ \___/
[modifier] Autres structures
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.
[modifier] Mise en forme des groupements
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.
[modifier] Chaîne de structures
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.
[modifier] Représentation de Lewis
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 \ /
[modifier] Documentation
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 succinte dans Bitouzé et Charpentier[1] p. 210.
[modifier] Avec le mode mathématiques
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
pictureet placer les éléments avec des instructions\put.
[modifier] Avec chemtex
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.
[modifier] Notes
- ↑ D. Bitouzé et J.-C. Charpentier, LaTeX, synthèse et cours, éd. Pearson Education, 2006, ISBN 2-7440-7187-0