De la chimie en LaTeX

Avant Propos

Avant toutes choses je tiens à préciser que cet article ne s’adresse pas aux puristes du monde libre. Je veux dire par là que les logiciels utilisés ne sont pas présents sous Linux (exception faite si vous utilisez de Wine). Mais plutôt destiné aux utilisateurs de la fenêtre ou de la pomme.

Tout ce qui est décrit ici peut être utilisés avec MikteX ou TexLive, malheureusement l’utilisation de la police Times peux causer quelques soucis  lors de la numération des molécules utilisant le package psfrag lorsque vous utilisez TexLive. Cela dit vous pouvez toujours utilisez une autre police

Pourquoi LaTeX?

Alors c’est une grande question largement débattue sur de nombreux sites et autres forums, et vais donc vous en faire un bref récapitulatif.

1- Pas besoin de se soucier la mise en page. 

Pour les anciens utilisateurs Word, repondez à cette simple question: Qui n’a jamais trimé pendant des heures pour que tous les titres aient le même format et le même alignement. Et puis une fois de temps en temps un numéro se fait la malle et puis c’est la croix et la bannière pour remettre tout en place.

2- Pas besoin de se soucier de la numérotation des molécules.

Alors là c’est pareil quand tu en arrives à un rapport avec plus de 100 molécules, c’est le moment où il ne faut pas se perdre dans sa numérotation. Et puis surtout ne pas oublier de numéroter une molécule au début du rapport.

3- Facilité pour la bibliographie

Bon d’accord oui, j’entends d’ici les pro word me dire mais tu sais avec EndNote la bibliographie c’est facile. Oui certes mais là c’est encore plus facile.

4- Qualité du rapport 

Donc là par contre,  on ne déconne plus. LaTeX est un logiciel qui a pour but de créer des documents scientifiques de qualité professionnel au format international pdf. Et effectivement, tout le document est justifié avec hyphénation automatique (bon faut faire attention quand même des fois ça déborde). Bien que word 2010 propose maintenant l’hyphénation c’est quand même pas pareil.

5- Facilité de modifications des figures 

Imaginons que vous souhaitez modifier la stéréochimie d’une molécule:

Sous word il faut: retrouver le schéma ChemDraw -> le modifier -> trouver le schéma dans le rapport -> le supprimer -> Et le recopier en format image.

Sous LaTex il faut: retrouver le schéma ChemDraw -> le modifier -> Et l’enregistrer.

6- Facilité pour la numérotation des pages des différentes  des parties du rapport

Voila bien quelque chose de complétement aléatoire sous word. Si tu as de la chance ça marche, sinon tu passes des heures à essayer de faire ce que tu veux.

7-  Table des matières

J’ai même pas besoins d’en parler parce que c’est toujours la merde avec Word.

Et encore beaucoup d’avantages mais on a pas toute la journée non plus. Je vous invite grandement à jeter un coup d’oeil sous les forums et autres sites spécialisés.

Bien-sur je passe sur les inconvénients de  LaTeX, je ne suis pas là pour être objectif (temps d’apprentissage du formalisme, temps à faire chercher les erreurs, marginalité de l’utilisation de LaTeX en chimie ….)

Introduction à LaTeX

Bon effectivement je ne vous cache pas que le passage de Word à LaTeX n’est pas une chose facile. Déjà parce que l’interface et les conventions de LaTeX ne paraissent pas vraiment engageantes à première vu, et puis ensuite parce que l’on bouleverse toutes vos habitudes.
Je veux dire par la que c’est fini la belle vie où tu vois la mise en page au moment où tu écris (le principe du What you see is what you get).

Tout de suite lorsque tu te lances dans LaTeX et que tu vois des “lignes de code” ça peux faire peur surtout pour les personnes peu habitués à la programmation telles que votre serviteur.

Logiciels

Générateur LaTeX – Miktex ou Texlive (Free)

Editeur Latex – TeXnic Center ou tout autre éditeur tels que TexWork ou LatexEditor (Free)

Goshscript (Free)

Editeur Molécule – ChemDraw (Propriétaire) ou tout autres logiciels pouvant enregistrer les dessins des molécules au format .eps

Bibliographie – JabRef (free) ou tout autre logiciels pouvant fournir un fichier au format bibtex.

Voila pour les logiciels, pour ma part je suis sous Windows 7, Miktex, TeXnic Center, ChemDraw et JabRef.

Miktex ->  Lien

TeXnic center ->  Lien 

Jabref -> Lien

Goshtscript ->  Lien

L’installation de ces logiciels se fait facilement, juste n’oubliez pas de cocher Package OnFly lors de l’installation de Miktex et puis l’installation se fait dans l’ordre suivant

Miktex, goshtscript, TeXnic center.

Et puis pour JabRef vous pouvez l’installer quand vous voulez.

Une fois l’installation terminé nous allons pouvoir écrire notre rapport/thèse.

Si vous êtes complétement novice en la matière, je ne saurais que trop vous conseiller d’aller faire un tour sur ce magnifique tutoriel en français –>  Lien

Je n’ai pas envie de paraphraser ce que certaines personnes ont mieux expliqués que moi.

Packages appliqués à la Chimie

\usepackage{graphicx}
\usepackage[bpchem]{chemstyle}

\usepackage[backend=bibtex, style=chem-acs]{biblatex} % Gestion de la bibliographie (style type acs)
\bibliography{Lien vers votre bibliographie} % Défini le chemin d’accès à la bibliographie
\usepackage[runs=2]{auto-pst-pdf} % Passage par postscript Absolument nécessaire

Le package chemstyle avec l’option bpchem est juste formidable pour nous chimistes.

Quelques petites fonctionnalités juste extrêmement utiles.

Environnement Schéma

Un nouvel environnement est disponible, l’environnement schéma qui se trouve être identique à l’environnement figure à l’exception faite que le titre est différent (e.g. schéma)

La définition de l’environnement s’effectue comme suit:

\begin{scheme}

\includegraphics{chemin vers votre ficher.eps}

\caption{Titre de votre Scheme}

\label{Nom de votre figure pour les références internes}

\end{scheme}

Si vous voulez parler de votre schéma il faut utiliser \ref{ Nom de votre figure pour les références internes } et vous verrez s’afficher “schéma” suivi du numéro d’apparition de votre schéma

Écrire les formules des molécules

La commande \BPChem{} qui permet d’écrire le nom des molécules facilement.

Exemple extrait du pdf anglais de BPChem -> Lien

Pour écrire SO42- correctement il suffit d’écrire “\BPChem{SO\_{4}\^{2-}}”

Coupure des noms des molécules

La commande \IUPAC{} qui permet de créer des cassures dans les longs nom de molécules. C’est à dire qui si par exemple vous devais écrire 1,8-diazabicyclo(5.4.0)undéc-7-ène (DBU)

Pour ne pas subir une hyphénation aléatoire au milieu de la molécule ou bien pas d’hyphénation on peut donner à LaTeX des indications sur les endroits où il est possible de couper le mot.

\IUPAC{1,8\-di\|aza\|bicyclo(5.4.0)undéc\-7\-ène}

Bon Ok c’est pas très beau, mais c’est vraiment pratique, pour ne pas subir un débordement latéral due à la non connaissance de latex de l’endroit où il peux couper un mot.

Numérotation des molécules 

Maintenant les commandes les plus importantes.  \CNlabel

Ces commandes sont justes les commandes les plus magiques proposer par chemstyle (BPChem) à destination des chimistes.

Elles permettent la numérotation automatique des composés et les références.

Je m’explique:

“J’ai envie de parler de mon composé le 2,4-dimethoxybenzaldehyde (1)”.

Pour lui donner un numéro j’utilise la commande \CNlabel{benzal}

“J’ai envie de parler de mon composé le 2,4-dimethoxybenzaldehyde (\CNlabel{benzal})”

Lors de la compilation le \CNlabel{benzal} sera remplacé par son numéro d’apparition dans le document et à chaque fois que vous citerez \CNlabel{benzal} le même numéro apparaitra (celui de sa première apparition dans le document).

Mais les choses magiques ne s’arrêtent pas là.

Grâce au package ChemStyle vous pouvez automatiser la numérotation de vos schéma, c’est-à-dire que vous ne donnez pas de numéro à vous molécules sur vos schéma, c’est LaTeX qui le fera pour vous.

Pour réussir ce tour de passe passe, plusieurs choses sont nécessaires.

1- Au lieu d’écrire le numéro de votre molécules vous écrivez TMPX (X=rien, 1, 2, …)

Comme ça:

TMP.png

Si plusieurs molécules, vous écrivez TMP1,TMP2 et ainsi de suite.

2- Sauvegarder votre fichier ChemDraw au format eps.

Fichier -> Sauvegarder sous ->  Type -> Encapsulated PostScrip.

3- On appelle maintenant l’environnement de son choix (figure, scheme, table)

\begin{figure}

\schemeref[TMP]{benzal}

\includegraphics{chemin vers fichier.eps}

\caption{La molécule machin}

\label{fig:machin}

\end{figure}

4- On compile en passant par les étapes suivantes Latex->Ps->Pdf.

Et pour votre plus grand plaisir, le TMP est maintenant devenu le numéro correspondant à \CNlabel{benzal}.

Si plusieurs molécules dans un même schéma, il faut plusieurs occurrences schemeref[]{}.

\schemeref[TMP1]{benzal}

\schemeref[TMP2]{acidbenz}

avec TMP1 et TMP2 sur le schéma comme suit.

TMP.png

Donc un bref résumé en Image.

TMP.png

Mais malheureusement pour vous les choses ne sont pas toujours bien faites et si vous tapez ce qui moi j’ai tapé vous n’obtiendrais pas ça, mais à la place de schéma vous verrez s’afficher Schème. Pourquoi?

Petit problème de traduction des concepteurs de Chemstyle, mais facilement modifiable.

Par cela on va allez fouiller dans les fichiers de configuration de LaTeX, et oui faut bien mettre les mains dans le gamboui de temps en temps surtout sous LaTeX.

Aller, on va chercher le fichier chemscheme.sty

Pour les miktexiens c’est

Local Disk -> Users -> Votre nom d’utilisateur -> Appdata -> Roaming -> Miktex -> 2.9 (pour les dernières version) -> tex -> latex -> chemstyle -> chemscheme.sty

Pour le reste, il suffit de faire une recherche.

ET on ouvre le chemscheme.sty avec texwork

et vers la ligne 228 on change

\addto{\captionsfrench}{%

\def\listschemename{Table des sch\`emes}%

\def\schemename{{\scshape Sch\`eme}}%

par

\addto{\captionsfrench}{%

\def\listschemename{Table des sch\’emas}%

\def\schemename{{\scshape Sch\’ema}}%

Et hop maintenant vous obtiendrez la même chose que moi.

Attention si les numéros ne correspondent ou un point d’interrogation apparait il suffit de relancer la compilation une deuxième fois.

Sous-numérotation des molécules

Vous me direz mais tu n’as jamais écrit de thèse toi, tu sais pas que des fois il faut faire des sous numérotation.

Mais ne vous inquiétez pas comme ça, la magie de LaTeX va encore agir.

Utilisons maintenant la commande \CNlabelsub et \schemerefsub.

Allez hop un petit exemple en image.

TMP.png

Attention les texte TMP doivent être seul, c’est à dire chaque TMP à sa propre zone de texte.

Il y encore beaucoup d’autres subtilités que vous pouvez découvrir en lisant les propriétés du package chemstyle ->  Lien.

Bibliographie 

Pour la bibliographie la aussi c’est tout simple. Ou presque.

Avant toute chose il vous faut un fichier .bib, qui peut être générer par JabRef.

Personnellement j’utilise biblatex, comme décrit en introduction de cette partie.

Biblatex format directement votre bibliographie au format type ACS mais pas seulement.

Je vous invite grandement à lire la doc ->  Lien

Pour résumé brièvement il vous suffit pour cité une publication/livre ou tout autre chose de taper

\autocite{clé bibtex}

Et lors de votre compilation, il faut faire 1 fois la compilation normal Latex->PS->Pdf puis la compilation Bibtex et une autre fois Latex->PS->Pdf.

Et à la fin de votre document n’oubliez pas de rajouter

\printbibliography 

Et normalement vous verrez apparaitre votre bibliographie au format ACS ou RCS ou Angewante en fonction du format que vous aurez choisi.

Pour comprendre et utiliser au mieux ce performant outil qu’est JabRef je vous propose d’aller voir cet article -> Lien

Trucs et astuces

Si vous êtes comme moi, c’est à dire un peu feignant il est possible de vous rendre la vie plus simple en utilisant des macros et des raccourcis

La commande \newcommand{}{} est extrêmement utile pour vous simplifer la vie.

Exemple:

Vous en avez mare de toujours taper \IUPAC{2,4\-di\|methoxy\|benzaldehyde}

Vous pouvez vous créer le raccourci suivant

\newcommand{\benzal}{\IUPAC{2,4\-di\|methoxy\|benzaldehyde}\xspace}

que vous placez en préambule.

Et lorsque que vous voulez l’appeler il suffit juste de placer \benzal.

TMP.png

Petite précision pour ceux qui se demandent. Mais à quoi sert ce \xspace?

Ce \xspace permet de dire à LaTeX que si ce qui suit la commande \benzal est autre chose qu’une marque de ponctuation il faut mettre un espace, sinon non.

Coming soon

Utilisation optimale de JabRef