--> --> --> --> --> --> --> --> --> --> --> --> --> -->
LaTeX-X


Utilisation dans un éditeur LaTeX

Généralités

    Dans un éditeur LaTeX-X permet de compiler le fichier édité en utilisant les menus de l'éditeur. Deux modes de compilation sont utilisables : soit le mode «visualisation», soit le mode «exporter». Le premier compile le fichier et visualise le résultat dans le format que l'on a choisit (soit le PostScript soit le PDF (soit avec «pdflatex» soit avec «xelatex») - la visualisation du DVI est, volontairement, non prévue), et le second compile et propose d'enregistrer le résultat, avec la possibilité de choisir le répertoire et le nom du fichier à enregistrer (en compilation latex, l'enregistrement du DVI est possible). Si LaTeX-X a déjà été lancé une fois (dans une même session), quand on le relance, il teste si le fichier (ou une de ses dépendances telles que le fichiers bibtex ainsi que les inputs) a été modifié et lance alors la compilation minimale pour mettre à jour le résultat final. Autrement dit, LaTeX-X fonctionne en mode «update», aussi bien en «visualisation» qu'en «exporter». De ce fait, lorsque le visualiseur PostScript ou PDF est ouvert et que l'on relance LaTeX-X, le visualiseur n'est pas relancé, et il faut faire un «update» dans ce dernier. Pour la visualisation PostScript, si on utilise «gv», cela peut être mis par défaut dans les options de «gv»; pour la visualisation PDF, il vaut mieux utiliser «acroread» mais on peut en utiliser d'autres (xpdf, evince, ou mettre xdg-open et le système choisit).
    L'utilisation de LaTeX-X dans un éditeur LaTeX a été testée pour Emacs, Nedit, Kile, Texmaker, TeXstudio, LaTeXila (Gnome LaTeX) et LyX. La documentation qui suit indique, pour chaque éditeur, la démarche à suivre. D'une façon générale, la commande à insérer dans l'éditeur est de la forme suivante (i.e. la commande qui doit être lancée, par l'éditeur, sur le fichier édité : cette commande doit être suivie de quelque chose, qui dépend de l'éditeur, pour être effectivement lancée sur le fichier) :

latex-x --1 -view -editeur      pour une visualisation avec choix du format ensuite
latex-x --1 -export -editeur      pour exporter avec choix du format ensuite
latex-x --1 -view -latex -editeur      pour une visualisation du PostScript
latex-x --1 -view -pdflatex -editeur      pour une visualisation du PDF avec pdflatex
latex-x --1 -view -pdflatex_pstpdf -editeur      pour une visualisation du PDF avec pdflatex mode pst-pdf
latex-x --1 -view -latex_ps2pdf -editeur      pour une visualisation du PDF avec latex et ps2pdf
latex-x --1 -view -xelatex -editeur      pour une visualisation du PDF avec xelatex
latex-x --1 -export -latex -editeur      pour exporter en PostScript
latex-x --1 -export -pdflatex -editeur      pour exporter en PDF avec pdflatex
latex-x --1 -export -pdflatex_pstpdf -editeur      pour exporter en PDF avec pdflatex mode pst-pdf
latex-x --1 -export -latex_ps2pdf -editeur      pour exporter en PDF avec latex et ps2pdf
latex-x --1 -export -xelatex -editeur      pour exporter en PDF avec xelatex
    L'option -editeur indique à LaTeX-X d'effectuer les compilations dans un répertoire temporaire attaché à l'éditeur choisit, et doit donc correspondre au nom de l'éditeur.

    Lorsque l'on quitte l'éditeur, il est fortement conseillé de vider les répertoires temporaires de compilation. Cela peut se faire de manière automatique si on lance l'éditeur avec un script (mis, par exemple dans $HOME/bin/) du type suivant (pour emacs) :

#!/bin/bash
(emacs -geometry 115x50+0+0 $@
rm -f -r $HOME/.latex-x/tmp/latex2gv/emacs
rm -f -r $HOME/.latex-x/tmp/latex2pdf/emacs
rm -f -r $HOME/.latex-x/tmp/latex2pdf_pst-pdf/emacs
rm -f -r $HOME/.latex-x/tmp/latex2pdf_ps2pdf/emacs
rm -f -r $HOME/.latex-x/tmp/xelatex2pdf/emacs) exit 0

    Ce script lance emacs (sur un fichier ou non) avec une certaine taille de fenêtre, et, lorsque l'on quitte emacs, il vide les répertoires temporaires de compilation sous emacs (pour un autre éditeur remplacer «emacs» par le nom de l'éditeur : nedit, kile, texmaker, lyx).

    On peut aussi rajouter dans l'éditeur un nenu donnant accès à la configuration de LaTeX-X.

Utilisation dans Emacs

    Pour utiliser LaTeX-X avec Emacs, il faut tout d'abord installer «auctex». On peut alors mettre, dans Emacs, les commandes nécéssaires pour utiliser LaTeX-X, en utilisant l'interface graphique de configuration d'emacs. On va dans le groupe AUC TeX, puis dans le groupe Tex Command, puis dans Tex Command List, et là on rajoute les commandes que l'on désire en cliquant sur INS en début de liste.
    Par exemple, pour rajouter les commandes de «visualisation» et «exporter» avec choix du format ensuite :
Name   LaTeX-X - Visualisation (mise à jour) du PostScript ou du PDF
    Command      latex-x '--1' '-view' '-emacs' %t

Name   LaTeX-X - Exporter en PostScript ou en PDF
Command   latex-x '--1' '-export' '-emacs' %t

Pour une commande de visualisation directe du PostScript, rajouter '-latex' entre '-view' et '-emacs', et de même pour pdflatex, vlatex, elatex et pdfelatex, ou dans exporter.
    Ceci étant fait, lorsque vous ouvrez un fichier LaTeX2e avec emacs, les comandes LaTeX-X se trouvent dans le menu «Command» d'emacs.
    Pour rajouter une commande effaçant les répertoires de compilation, on rajoute un nouveau nenu (en cliquant sur INS, par exemple après ceux que l'on vient de créer) comme suit :

Name   LaTeX-X - Effacer les répertoires temporaires de compilation pour Emacs
Command   rm -f -r $HOME/.latex-x/tmp/latex2gv/emacs $HOME/.latex-x/tmp/latex2pdf/emacs $HOME/.latex-x/tmp/latex2pdf_pst-pdf/emacs $HOME/.latex-x/tmp/latex2pdf_ps2pdf/emacs $HOME/.latex-x/tmp/xelatex2pdf/emacs

    Pour accéder aux préférences de LaTeX-X par un menu d'emacs on rajoute le menu suivant :

Name   LaTeX-X Préférences
Command   latex-x '--config'

Utilisation dans Nedit

    La documentation donnée ici se réfère à une version 5.4 ou supérieure de nedit. Si ce n'est pas celle-ci qui est installée sur votre machine, il vaut mieux aller chercher cette version sur le site de nedit et l'installer dans son HOME (on trouve, sur le site, un binaire qui est suffisament petit (environ 1Mo) pour être installé). Il peut aussi être utille d'installer le pack «latex-pack» fort bien conçu pour nedit que l'on peut trouver sur le site de nedit.
    L'installation des commandes LaTeX-X dans nedit est alors très simple : elle se fait dans le menu Preferences -> Defaults Settings -> Customise Menus -> Shell Menu... Ceci ouvre une fenêtre dans laquelle on rajoute les commandes shell pour LaTeX-X. Comme on  a la possibilité de faire des sous-menus, il est plus simple de choisir les commandes les plus complètes.
    Par exemple, pour créer un menu LaTeX-X > Affichage (mise à jour) du > PostScript, après avoir cliqué sur New, on rentre ce qui suit :

Dans Menu Entry on tape (par exemple) :
LaTeX-X > Affichage (Mise à jour) du > PostScript @LaTeX
puis on coche «window» dans Command Input, on coche «dialog» dans Command Output, on coche «Save file before executing command», et, dans Shell Command to Execute, on tape
latex-x --1 -view -latex -nedit % >& /dev/null &
    Attention, la commande est tapée en csh car nedit exécute les commandes shell avec cet interpréteur (ceci peut théoriquement être changé, mais les tests que j'ai fait ne marchait pas...). @LaTeX signifie que les nenus n'apparaîtront que lorsque l'on ouvrira un fichier LaTeX.
    Pour les autres commandes, on procède de la même manière (en faisant attention de concerver les même noms pour les menus et sous-menus i.e. remplacer «PostScript» par «PDF pdflatex» et (ou) «PDF pdflatex mode pst-pdf» et (ou) «PDF vlatex» et (ou) «PostScript elatex» et (ou) par «PDF pdfelatex», et remplacer «Affichage (Mise à Jour) du» par «Exporter en»). Les commandes LaTeX-X apparaissent alors dans des sous-menus du menu «Shell» de Nedit lorsque que l'on édite un fichier LaTeX.
    Pour rajouter une commande effaçant le répertoire temporaire de compilation, on va  dans Preferences -> Defaults Settings -> Customise Menus -> Shell Menu... comme précédemment, et on rajoute (en cliquant sur New) un nouveau menu :

Dans Menu Entry on tape :
LaTeX-X > Effacer le répertoire temporaire de compilation
puis on coche «none» dans Command Input, on coche «same window» dans Command Output, et, dans Shell Command to Execute, on tape
rm -f -r $HOME/.latex-x/tmp/latex2gv/nedit $HOME/.latex-x/tmp/latex2pdf/nedit $HOME/.latex-x/tmp/vlatex2pdf_pst-pdf/nedit $HOME/.latex-x/tmp/latex2pdf_ps2pdf/nedit $HOME/.latex-x/tmp/xelatex2pdf/nedit

    Pour accéder aux préférences de LaTeX-X, on procède comme ci-dessus pour rajouter un autre nenu :

Dans Menu Entry on tape :
LaTeX-X > LaTeX-X Préférences
puis on coche «none» dans Command Input, on coche «dialog» dans Command Output, et, dans Shell Command to Execute, on tape
latex-x --config >& /dev/null &

Utilisation dans Kile,ou Texmaker ou TeXstudio...

    Pour ces deux éditeurs, il suffit de définir des commandes utilisateur convenables. Ces commandes dépendent de la version de Kile utilisée. Par exemple, avec la version 1.6 de Kile, pour créer une commande de visualisation de PostScript, dans l'éditeur des outils utilisateur, on tape :

Élément du menu :
LaTeX-X - Visualisation du PostScript
Valeur :
latex-x --1 -view -latex -kile %S.tex

    Pour des versions inférieurs, il faut remplacer %S.tex par %.tex (voir la documentation de Kile à ce sujet).

Utilisation dans LyX

    A priori, l'utilisation de LaTeX-X dans LyX peut sembler superflue, puisque LyX gère parfaitement la compilation dans un répertoire temporaire avec une fonction de mise à jour. Il y a toutefois trois raisons qui peuvent jouer en faveur d'une utilisation de LaTeX-X dans LyX :
- Si l'on insère un fichier tex (avec un \input) dans un fichier LyX et que ce fichier tex comporte lui-même des \inputs, lorsque un des «inputs» du fichier tex est modifié, LyX ne peut pas le savoir, et aucune mise à jour de la compilation n'est faite, alors que LaTeX-X voit les modifications à tous les niveaux (même au niveau du système pour les imputs de fichiers modifiables par l'utilisateur);
- On ne peut pas simplement compiler avec LyX un fichier utilisant le package pst-pdf : en effet, la seule façon de faire serait d'utiliser le script ps4pdf (fourni avec pst-pdf), mais, si le fichier à compiler utilise, par exemple hyperref, la compilation multiple avec ps4pdf ne peut pas produire le résultat final (il faut, après la précompilation latex, faire au moins trois compilations pdflatex SANS relancer latex).
    Pour ce faire, le plus simple est d'éditer le fichier preferences du répertoire $HOME/.lyx et d'y rajouter, a la main les lignes suivantes :

Dans la section :
#
# FORMATS SECTION ##########################
#
on rajoute les ligne suivantes (où user est votre nom d'utilisateur i.e. $HOME=/home/user) :

\format "latexxview" "tex" "LaTeX-X - Afficher (Mise à jour) le PostScript ou le PDF" ""
\format "latexxexport" "tex" "LaTeX-X - Exporter en PostScript ou en PDF" ""
\format "latexxclean" "tex" "LaTeX-X - Éffacer les répertoires temporaires de compilation pour LyX" ""
\format "latexx" "tex" "LaTeX-X - Prérérences" ""
\viewer "latexxview" "latex-x --1 -view -lyx"
\viewer "latexxexport" "latex-x --1 -export -lyx"
\viewer "latexxclean" "rm -f -r /home/user/.latex-x/tmp/latex2gv/lyx /home/user/.latex-x/tmp/latex2pdf/lyx /home/user/.latex-x/tmp/latex2pdf_pst-pdf/lyx /home/user/.latex-x/tmp/latex2pdf_ps2pdf/lyx /home/user/.latex-x/tmp/xelatex2pdf/lyx"
\viewer "latexx" "latex-x --config"

Dans la section :
#
# CONVERTERS SECTION ##########################
#
on rajoute les lignes suivantes (où user est votre nom d'utilisateur i.e. $HOME=/home/user) :

\converter "latex" "latexxview" "latex-x --1 -view -lyx $$i" ""
\converter "latex" "latexxexport" "latex-x --1 -export -lyx $$i" ""
\converter "latex" "latexxclean" "rm -f -r /home/user/.latex-x/tmp/latex2gv/lyx /home/user/.latex-x/tmp/latex2pdf/lyx /home/user/.latex-x/tmp/latex2pdf_pst-pdf/lyx /home/user/.latex-x/tmp/latex2pdf_ps2pdf/lyx" "/home/user/.latex-x/tmp/xelatex2pdf/lyx" ""
\converter "latex" "latexx" "latex-x --config" ""

    Dans le menu «Visualiser» de LyX, les commandes LaTeX-X apparaissent alors. Si on le désire, on peut aussi rajouter un bouton pour accéder à ces commandes. Voir la doc LyX à ce sujet  (fichier  .ui du répertoire $HOME/.lyx/ui).