LaTeX sur Mac : TextMate

mercredi 10 octobre 2007

LaTeX est un puissant outil de formatage de texte et de mise en page. Il permet une configuration sans limite, contrairement aux différents traitements de texte présents sur le marché. Il n’utilise aucun format de fichier propriétaire : un document LaTeX est un fichier de texte brut contenant des “instruction”, à la manière du code source d’un logiciel, qui seront interprétées par le moteur LaTeX pour générer un fichier prêt à être imprimé (PostScript, PDF, etc.). Cependant, l’immense potentiel de Latex ne va pas sans un inconvénient de taille : la complexité du système. Ce deuxième article a pour but de présenter les fonctions spécifiques à LaTeX de l'éditeur de texte pour Mac TextMate.

LaTeX est un puissant outil de formatage de texte et de mise en page. Il permet une configuration sans limite, contrairement aux différents traitements de texte présents sur le marché. Il n’utilise aucun format de fichier propriétaire : un document LaTeX est un fichier de texte brut contenant des “instruction”, à la manière du code source d’un logiciel, qui seront interprétées par le moteur LaTeX pour générer un fichier prêt à être imprimé (PostScript, PDF, etc.). Cependant, l’immense potentiel de Latex ne va pas sans un inconvénient de taille : la complexité du système. Ce deuxième article a pour but de présenter les fonctions spécifiques à LaTeX de l’éditeur de texte pour Mac TextMate.

Sommaire
- #1 : TextMate et LaTeX
- #2 : Coloration syntaxique
- #3 : Compiler un document LaTeX
- #4 : Utiliser les fonctions spécifiques à LaTeX
- #5 : Créer des fonctions spécifiques à LaTeX

Dans (le premier article de cette série sur LaTeX, j’ai présenté rapidement le logiciel gratuit TeXShop, conçu spécifiquement pour rédiger du contenu LaTeX. Si TeXShop est une bonne solution pour rédiger des documents LaTeX ponctuellement. Ceux d’entre vous qui prévoient d’utiliser LaTeX de manière intensive se tourneront plutôt vers TextMate, qui offre des fonctions bien plus puissantes. Quelques unes d’entre elles sont ici passées en revue.

#1 : TextMate et LaTeX

TextMate est un éditeur de texte. Il est destiné à être utilisé par les programmeurs (et, parmi eux, principalement par les programmeurs Web) pour créer du code source. LaTeX reposant sur un système de compilation de code source, TextMate est particulièrement adapté à la rédaction de documents LaTeX.

La fenêtre principale de TextMate se présente ainsi :

TextMate+LaTex 1

Plusieurs éléments sont importants dans cette fenêtre :
1) La zone d'édition du texte. C’est à cet endroit que vous rédigerez vos documents LaTeX. La zone d’édition de texte de TextMate est très avancée : elle possède toutes les fonctions dignes d’un bon éditeur de texte, telles que l’indentation automatique, la fermeture automatique des tags, la création de groupes, etc.
2) La goutière de TextMate affiche, entre autres, le numéro de chaque ligne. Ceci est particulièrement utile lorsqu’il s’agit de corriger une erreur de syntaxe dans un fichier LaTeX et que le compilateur indique le numéro de la ligne où l’erreur s’est produite. Une combinaison de touche suffit pour se rendre à la ligne désirée : Commande + L.
3) Le menu de sélection du type de document vous permet de choisir entre différents langages de programmation. LaTeX est ici conçu comme un langage de programmation. Vous pourrez grâce à cette fonction définir des règles de coloration du code source (v. plus bas).
4) Les outils sont des petits scripts très pratiques, qui aident à réaliser des opérations courantes dans de nombreux langages de programmation. LaTeX étant considéré comme un langage de programmation, vous pourrez utiliser ce menu pour vous faciliter la vie ou gagner du temps lors de la rédaction de vos documents.

#2 : Coloration syntaxique

La coloration syntaxique est une fonction particulièrement utile. Elle permet de distinguer d’un coup d’oeil les mots-clés LaTeX du corps du texte. Pour mettre en place un système de coloration syntaxique, il faut réaliser les opérations suivantes:
- Aller dans le menu TextMate > Preferences > Fonts & Colors
- Choisir un thème de couleurs (celui que vous voulez)
- Ajouter des éléments

TextMate+LaTex 2

Pour ajouter un élément, il suffit de cliquer sur le bouton «+» (plus) en bas de la fenêtre des préférences. Cela a pour effet de créer une nouvelle ligne, qu’il reste à remplir. La ligne doit être remplie de cette manière:
- Dans la partie gauche, le nom de l’élément. Par exemple : Latex italique, Latex gras ou Latex note en bas de page.
- Dans la partie droite, la couleur du texte (FG), la couleur du fond (BG) et le style de police : gras, italique ou souligné.
- En dessous des différentes lignes, le Scope selector (sélecteur de portée).

Les scope selectors suivants peuvent vous être utiles :
- comment : les commentaires (%)
- support.function : les fonctions (p. ex. /textit ou \footnote)
- meta.footnote.latex : les notes en bas de page (le contenu de \footnote{})
- markup.italic.textit.latex : le texte en italique (le contenu de \italic{})
- markup.bold.textbf.latex : le texte en gras (le contenu de textbf{})
- meta.function.section.latex : la fonction \section{}
- entity.name.section : les sections (le contenu de \section{})
- meta.preamble.latex : le préambule du document
- meta.include.latex : les fichiers inclus dans un document parent
- meta.function.environment.math.latex : les fonctions de l’environnement Math
- meta.function.environment.list.latex : Les listes (énumérations)
- meta.function.environment.tabular.latex : Les tableaux
- meta.citation.latex : Les citations
- etc. A vous de construire les autres lignes…

TextMate est très puissant, puisqu’il peut être reconfiguré à souhait, et ce de fond en comble. Vous pouvez changer toutes ces propriétés dans le Bundle Editor (éditeur de paquets).

TextMate+LaTex 3

#3 : Compiler un document LaTeX

TextMate permet de compiler le code source LaTeX de manière très simple : il suffit de taper Commande + R. Ou de sélectionner l’option Typeset & View dans le menu des fonctions LaTeX (v. plus bas).

Assurez-vous cependant que votre fichier est bien considéré par TextMate comme un fichier LaTeX (v. plus haut) : ce réglage peut être opéré dans le menu de sélection du langage, en bas de la fenêtre de TextMate.

Le résultat apparaît dans une petite fenêtre :

TextMate+LaTex 4

Si le plug-in Adobe Acrobat est installé sur votre système et si TeX génère des PDF (configuration par défaut avec la distribution MacTex), il suffira de cliquer sur Click here to Preview pour avoir un aperçu de votre fichier prêt à imprimer (fichier PDF).

Notez que le plug-in PDF est chargé tant que vous ne redémarrez pas votre système : vous n’aurez donc à cliquer sur Click here to preview qu’une seule fois : toutes les compilations suivantes déboucheront directement sur un aperçu du fichier PDF généré. Vous pouvez redimentionner la fenêtre d’affichage pour avoir une meilleure vue de l’ensemble.

TextMate+LaTex 5

Il est possible, à ce stade, que les caractères accentués n’apparaissent pas correctement dans le fichier PDF. Si c’est le cas, c’est dû au fait que l’encodage du fichier est, par défaut, UTF-8 alors que vous avez indiqué un autre encodage dans l’en-tête du fichier LaTeX. Pour résoudre le problème, vous pouvez :
- soit changer l’encodage indiqué dans l’en-tête du fichier LaTeX, en remplaçant par exemple \usepackage[latin1]{inputenc} par \usepackage[utf8]{inputenc} ;
- soit changer l’encodage réel du fichier, en utilisant la boîte de dialogue File > Save As… de TextMate et en choisissant le charset qui correspond à celui qui a été déclaré dans le code source LaTeX (ici, ce serait ISO Latin 1).

#4 : Utiliser les fonctions spécifiques à LaTeX

Le «menu» spécial de TextMate qui regroupe des fonctions utiles pour différents langages de programmation contient de nombreuses fonctions pour LaTeX :

TextMate+LaTex 3

  1. Typeset & View : fonction décrite ci-dessus qui permet de compiler le fichier et de l'afficher à l'écran dans un logiciel de visulisation PDF.
  2. Project Management : plusieurs fonctions utiles. Notamment, la magnifique fonction Show Outline qui permet d'afficher une table des matières en fonction de vos chapitres, sections et sous-sections (\chapter, \section, \subsection) et la fonction Open Master File qui permet d'afficher le fichier parent si le fichier courant est y est inclus.
  3. Run Makeindex : permet de lancer le moteur Makeindex qui générera un index de votre document LaTeX. Très utile pour les longues monographies : manuels, traités, mémoires, thèses, etc.
  4. Run Bibtex : permet de lancer le moteur Bibtex qui générera une bibliographie des références utilisées dans votre document LaTeX. Notez que le logiciel gratuit BibDesk est fourni avec la distribution MacTex. Vous pouvez aussi utiliser Bookends ou Endnote pour gérer votre bibliographie avec LaTeX.
  5. Trash aux files : mettre à la corbeille les fichiers auxilliaires générés pendant la compilation et qui ne sont plus nécessaires.
  6. Show PDF in viewer : si pdfsync est installé, cette fonction vous permet de vous déplacer en même temps dans votre document source LaTeX et dans le fichier PDF généré par la compilation.
  7. Format : Cette série de fonctions vous permet de formater du texte très rapidement, à la manière d'un logiciel de traitement de texte, grâce à des raccourcis-clavier. Par exemple, sélectionnez un bloc de texte et tapez Commande + B pour le mettre en gras (TextMate se charge d'encapsuler ce bloc de texte à l'intérieur de l'instruction LaTeX appropriée, en l'occurrence \textbf). Le text peut être formaté de différentes manières : en italiques, en gras, en petites majuscules, en monospaced et souligné.
  8. Insert : Permet d'insérer des éléments prédéfinis. Le système d'insertions de TextMate est très puissant : vous pouvez créer des bouts de code LaTeX que vous utiliserez souvent, et les insérer ensuite en un tournemain. Vous remarquerez que TextMate est livré avec certains bouts de code préféfinis, comme celui qui permet d'insérer une référence bibliographique.
  9. Wrap selection in : permet d'encapsuler le code sélectionné dans un bloc défini, par exemple le bloc \begin...\end.
  10. Environments : permet de charger des environnement avancés spécifiques, comme par exemple celui qui permet de rédiger des équations mathématiques.
  11. Sectionning : permet d'insérer les titres standards de votre document : partie, chapitre, section, paragraphe, etc.
  12. Tables : ces fonctions vous permettent de créer et de manipuler des tableaux.
  13. Lists : ces fonctions vous permettent de créer et de manipuler des listes.
  14. Tidy : permet de "nettoyer" le code source LaTeX, notamment en retirant les espaces superflues. Personnellement, je n'aime pas cette fonction qui se permet de reformater mon code source, mais c'est à chacun de voir...
  15. Add word to index : ajouter un mot dans l'index (v. ci-dessus pour la génération d'index).
  16. Help : aide en ligne TextMate.
  17. Documentation for package : aide spécifique au paquet sélectionné (fonctions avancées).
  18. Edit configuration file : modifier le fichier de configuration de LaTeX sous TextMate (basiquement : comment se comporte TextMate avec ce langage).

#5 : Créer des fonctions spécifiques à LaTeX

Vous pouvez créer des raccourcis, qui vous serviront à écrire du code LaTeX plus rapidement. Rendez vous pour cela dans le menu Bundles > Bundle Editor > Show Budle Editor.

Nous allons ici créer un raccourci pour créer des notes en bas de page.
- Pour créer une note en bas de page, il faut écrire le code suivant : \footnote{XX} où XX est le contenu de la note.
- Nous allons paramétrer TextMate pour qu’il suffise de taper fn et d’appuyer sur la touche Tabulation pour créer ce code.

Voici la marche à suivre :
- Ouvrez d’abord l’éditeur de paquets (Bundle Editor).
- Placez-vous ensuite dans la section Latex et cliquez sur le bouton +. Choisissez New Snippet dans le menu déroulant.
- Nommez le nouveau snippet Footnote (ou tout autre nom que vous jugerez bon).
- Dans la partie droite de la fenêtre, entrez le code suivant : \footnote{$0}. L’argument $0 indique là où le curseur doit être placé : il doit ici être placé entre les parenthèses, pour pouvoir immédiatement commencer à rédiger le contenu de la note en bas de page.
- Choisissez Tab Trigger dans le menu Activation et entrez fn dans le champ de texte à droite de ce menu.
- Copiez ceci dans le champ Scope Selector : text.tex.latex.

TextMate+LaTex 6

Il ne vous reste plus qu’à tester. Si vous vous placez dans un document LaTeX et que vous tapez «fn + TAB», vous obtiendrez une note en bas de page !

Vous pouvez aussi créer des templates ou modèles. C’est particulièrement utile si vous envisagez d’écrire de nombreux documents qui avec la même présentation. Pour cela, choisissez New Template dans le Bundle Editor et recopiez simplement le code LaTeX qui sera répété dans tous les documents futurs. Ils vous suffira ensuite d’appeler le modèle créé par le menu File > New From Template > Latex