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

Clavier QWERTY – Écrire en français la méthode

Aujourd’hui je salue tous les français expatriés aux quatre coins du monde et qui doivent écrire comme moi de magnifiques textes dans la langue de Molière en utilisant le plus international des claviers: j’ai nommé le clavier QWERTY.

Alors nous allons pas débattre sur le pourquoi du comment le clavier français c’est retrouvé dans une disposition si différente du clavier QWERTY (bien que je sois quasiment sur que ça vient d’un placement ergonomique lié à la langue française) mais plutôt comment écrire à nouveau en français sans perdre 15 ans à rechercher les accents sur votre clavier.

Partie 1. AZERTY vs QWERTY

First of all, un léger comparatif visuel de ces deux claviers.

Clavier QWERTY vs AZERTY

Alors bien-sûr j’ai marqué en rouge les points les plus gênants pour l’écriture et les lettres que l’on utilise le plus souvent. L’inversion a-q et toutes les chiffres en shift et tout et tout.

Mais ce n’est pas le propos qui nous intéresse ce *moment de la journée où vous lisez l’article* c’est que vous voulez savoir comment parvenir à écrire français sans avoir à repasser votre clavier en AZERTY toutes les 15 secondes.

Partie2. Les options envisageables

Mais alors rédac’chef quels sont les choix qui s’offre à nous?

En voila une question intéressante! Et je vous réponds qu’il y a plusieurs options.

Option 1 – Laisser son clavier QWERTY en mode AZERTY

Alors bien-sûr là il faut faire confiance à sa mémoire et surtout à celle de ses doigts. Pour la grande majorité des personnes cette option est valable. Surtout pour une durée limitée de séjour.

Personnellement je ne trouve pas cette option la plus intéressante pour plusieurs raisons.

  • Le clavier QWERTY est plus adapté pour certains type de software qui nécessite d’écrire des lignes de commandes, comme par exemple LaTeX ou tout types de programmation en générals.
  • Des fois tu n’as pas les droits administrateur pour changer le layout de ton clavier et du coup t’es obligé de taper sur du QWERTY.

Alors autant s’habituer au QWERTY et trouver une autre solution.

Option 2 – Apprendre les codes ASCII

Alors que sont les codes ASCII (American Standard Code For Information Interechange)?

Un petit tour sur la page WIKI des ASCII et vous aurez une idée plus précise. Mais en gros c’est un système de codage des caractères spéciaux utilisés ou utilisables en informatique.
Pour les obtenir (les caractères pas les codes) il suffit de faire alt+xxxx où x représente un chiffre.

Exemple: é -> alt+0232, è -> alt+0233, ….

Bon, on se rend compte de suite qu’on ne gagne pas vraiment de temps avec cette méthode et je pense même plutôt qu’on en perd au final. Et pour ne rien rajouter de positif, c’est assez difficilement réalisable lorsque tu utilises un ordinateur portable.

Alors plutôt que de se casser la tête à apprendre quelques dizaines de codes ASCII étendus on passe à l’option 3.

Option 3 –  Passage du clavier en mode US-International. 

C’est l’option la plus répandue sur le net. Et pour cause elle est très efficace.

1. Layout US vs US-international 

Quelle est la différence entre le clavier US et US-International?

La réponse en image.

US vs US-Intl

Alors on s’aperçoit tout de suite que l’US international est un petit peu plus complet que le US classique qui est vraiment light. On remarque en bleu les touches qui nécessite l’appui sur la touche Alt-Gr pour être accessible (et Alt-gr + Shift  pour les majuscules).

2. US-international et la notion de dead key 

L’US-Intl introduit la notion de dead_key (en rouge) ou touche morte pour les non-anglophones.

Mais qu’est ce que ça veux bien vouloir dire?

C’est plutôt simple en fait, ça veut juste dire que tu appuies sur la touche et que rien de n’affiche jusqu’à la prochaine touche sur laquelle tu vas appuyer.

Tu comprends pas?

Exemple:

Avec le clavier US normal quand tu appuies sur ‘ ça affiche ‘

Alors que l’US-Intl quand tu appuies sur ‘ ça affiche *rien* jusque ce que tu appuies sur le e par exemple et ça t’affichera é. Miracle…..

Oui mais alors pour afficher juste ‘ comment je fais. Il faut faire ‘ suivie par espace.

Et ça fonctionne avec ‘ ” ~ ` et c’est formidable.

Petit astuce -> pour le ç – 2 possibilités: Alt-gr + , ou ‘ + c …

3. Les limitations de l’US-international. 

Bon c’est une des meilleurs solutions disponibles (disponible Fenêtre, Pomme  et Linux) jusqu’à maintenant mais il reste encore quelques petits soucis.

Vous ne voyez pas?

  •   Quand tu écris en anglais tu utilise souvent les ‘ (apostrophes) et c’est légèrement fatiguant à la longue d’avoir à taper continuellement sur la barre d’espace à chaque fois que tu veux faire un apostrophe ou quand tu veux ouvrir les guillemets, ou pour les linuxiens quand tu veux mettre un tildé.
  • Je trouve pas ça vraiment facile d’aller chercher l’accent grave avec mon petit doigt à l’autre bout du clavier et tout en haut. C’est sur c’est pas vraiment l’accent le plus utilisé de la langue française mais bon je trouve ça pénible.

Pour ces deux raisons (je sens que vous allez dire que je suis tatillon), je vais vous présenter l’option 4.

Option 4 – Créer son propre clavier à partir du clavier US-Intl 

Vous pensez sûrement là on est dans du geekisme de niveau bac+22 en informatique appliqué (le vrai geekisme serait de passer au Colmak, Dvorak …). Et bien non pas du tout.

Déjà, si j’ai réussi à le faire c’est que c’est facile et qu’il y a pleins d’utilitaires qui permettent de le faire et même sous linux c’est facile. Pour les personnes à la pomme, je suis désolé mais j’ai pas de pomme à proximité pour vous aider.

1. Les modifications.

Alors pour commencer voici mon clavier dit “tunning”

Clavier US-Intl-Fr


Alors pour les changements par rapport à l’US-Intl….

1/ La disparition des dead_keys pour efficacité accrue lors de l’écriture en Anglais et en Français.

2/ Mais on garde les dead_keys avec l’utilisation de la touche Alt-Gr pour les touches en rouge, mais aussi en normale.

3/ On remet les accents dans le bon sens. Oui parce que avec l’US intl ils ont eu la bonne idée de mettre tous les accents à l’envers.

Genre Alt-gr + A -> Á  alors que nous on utilise le À. On fait pareille avec le u, i, et le ç.

4/ Alors je me suis placé mes accents en haut à gauche genre pseudo français, mais c’est un choix perso.

Et puis quelques autres petits ajustements.

2. La méthode

Alors comment j’ai fait ça.

1/ Pour la partie Windows, j’ai utilisé le programme fourni par microsoft pour changer et modifier les claviers.

The microsoft Layout Creator -> Link

J’ai utilisé la base US-Intl pour pouvoir avoir une bonne base.

Si vous voulez une base avec les dead_keys avec la touche Alt-gr appuyer vous pouvez utiliser le clavier proposé ici -> Link

Et puis après on se laisse porter par la vague et on suit aussi quelques petits tutoriaux pour une utilisation performante de microsoft Layout Creator.

2/ Pour la partie Linux, il suffit de modifier le fichier /usr/share/X11/xkb/symbols/us.

  • Choix 1. Modifier directement la partie US-Intl ou US-Intl-Alt_gr
  • Choix 2. Créer son propre variant et le lancer depuis le fichier configuration.

Bref, plein de choix différents et une variétés de possibilités pour changer votre clavier comme vous êtes.

Voila maintenant vous connaissez les différentes options pour pouvoir être à même d’écrire en anglais et en français avec votre clavier QWERTY.

Je vous laisse faire votre choix et peut être créer votre propre clavier un petit peu plus ergonomique que le mien.

Bien entendu comme je l’ai précisé, il est possible d’utiliser une foultitude de différents layouts que ce soit pour les programmateurs ou juste ceux qui veulent se différentier des autres.

Sur ce mes amis, si vous voulez pas vous cassez la tête à faire un tout nouveau clavier, je peux vous fournir mon install pour Windows (via Microsoft Layout Creator) et ou mon fichier  US pour les linuxiens.

A bientôt pour de nouvelles aventures….

Update:

Vous pouvez trouver le fichier ici linux ici: altgr-intl-fr.

 

Coming soon

La chimie en LaTeX