Compilation LaTeX avec Rubber et TeXlipse

Rubber est un programme qui se propose de simplifier la compilation de documents LaTeX. Il permet au moyen d\’une seule commande d\’appeler les programmes nécessaires à la création d\’un document final. De plus, et c\’est ce qui m\’a convaincu de l\’essayer, il se charge de la double compilation nécessaire pour mettre à jour les références dans un document.

Suite à un article précédent où je présentais Eclipse comme éditeur de document LaTeX, je vais tenter de vous détailler la procédure d\’installation de Rubber et la configuration de TeXlipse pour qu\’il l\’utilise pour compiler un projet.

Installation de Rubber et première utilisation

Rubber est présent dans les dépôts d\’Ubuntu. Son installation sur cette distribution est donc aussi simple que :

$ sudo apt-get install rubber

Pour compiler ensuite un document .tex depuis le terminal et en PDF, il suffit d\’exécuter la commande suivante :

$ rubber --pdf document.tex

De base, Rubber compilera le document en DVI. Il faut donc lui spécifier grâce à –pdf qu\’on souhaite un document PDF en sortie.

Nous allons voir maintenant comment intégrer ceci dans Eclipse muni du plugin TeXlipse.

Utilisation de Rubber dans Eclipse + TeXlipse

La solution que je vous propose n\’est pas vraiment optimale puisqu\’on va plus ou moins court-circuiter TeXlipse mais c\’est pour le moment le moyen le plus propre que j\’ai pu trouver. En effet, bien que ce plugin soit assez complet, il ne permet pas de spécifier le programme qui compilera le document LaTeX. TeXlipse dispose, de base, d\’une liste prédéfinie de compilateurs qu\’on ne peut pas modifier. En revanche, on peut éditer les propriétés de chacun d\’entre eux et en particulier le chemin de l\’exécutable et les arguments qui lui sont passés. L\’astuce que je vais vous détailler consiste donc à modifier ces propriétés pour le compilateur que vous utilisez. Vous allez comprendre!

Dans un premier temps, nous allons donc tenter de voir quelle compilateur vous avez choisi lors de la création de votre projet LaTeX. Si vous avez choisi le PDF en sortie, il y a de grandes chances pour que vous utilisiez PdfLatex. Pour en être convaincu, faites un clic droit sur votre projet dans Eclipse puis ouvrez la fenêtre properties. Dans le menu LaTeX Project Properties vous pouvez voir l\’exécutable utilisé pour compiler votre document. Dans l\’exemple suivant, il s\’agit de pdflatex.

\"Project

Ceci signifie qu\’à chaque fois que vous modifiez votre fichier .tex, la commande suivante sera exécutée :

$ /usr/bin/pdflatex -interaction=nonstopmode --src-specials document.tex

Or, nous voulons maintenant que Rubber prenne la place de PdfLatex. Pour ce faire, dans Eclipse faites Window > Preferences > TeXlipse > Builder Settings. Dans la liste proposée, séléctionnez votre compilateur (dans notre cas PdfLatex program) puis cliquez sur le bouton Edit… Dans la fenêtre qui s\’est ouverte, nous allons changer le chemin de l\’exécutable par celui de Rubber (fourni par la commande which rubber dans un terminal) puis nous allons adapter les arguments en conséquence :

\"Edit

La mention Program file ok indique que l\’executable /usr/bin/rubber existe bien. Il ne reste plus qu\’à valider et sauvegarder tout ça. Si vous faites maintenant une modification de votre fichier LaTeX dans votre projet, vous remarquerez que la commande de compilation devient alors

$ /usr/bin/rubber --pdf document.tex

Juste au cas où vous soyez contraint de remettre les paramètres d\’origine de PdfLatex, je vous les remets ici :

  • Program file : /usr/bin/pdflatex
  • Arguments : -interaction=nonstopmode –src-specials %input

Si quelqu\’un a une autre solution, je suis preneur… J\’ai eu beau fouiller, je n\’ai pas trouvé mieux.

NB : Merci à Charly pour l\’info sur Rubber!

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>