Accueil   Semaine   Mois   Occaz'   Compte   Forum   Bas
Mardi 21 octobre 2008
Nouveautés de MacTeX-2008 : SyncTeX et TeX Live Manager

Lorsque j'avais commencé la mise à jour des cours sur LaTeX de Fabien Conus, la distribution TeX/LaTeX que j'avais prise pour base était TeX Live 2007, fournie par le projet MacTeX. Pendant la parution de la série des six articles, MacTeX a été mise à jour pour s'appeler MacTeX-2008 et fournir maintenant la distribution TeX Live 2008, qui était sortie entre-temps. Et avec TeX Live 2008 deux nouveautés essentielles sont apparues : SyncTeX et TeX Live Manager.

J'avais imaginé au départ d'inclure la description de ces deux nouvelles fonctionnalités dans la sixième leçon de la série, mais cela rendait cette leçon bien trop longue. J'ai donc pris le parti d'en faire un article à part, que voici.

Bonne lecture !

La synchronisation source-PDF : SyncTeX

Il existe un problème auquel tous les utilisateurs de LaTeX sont fatalement confrontés à un moment ou à un autre : on bâtit un document LaTeX, on le compile, tout semble bien se passer, et puis, paf ! on s'aperçoit à la lecture de telle page du PDF produit qu'il y a une erreur, une faute de frappe ou un truc du même genre.

On doit alors retourner à la partie du code LaTeX concernée, dans le document source, et rectifier. Seulement voilà, si le document est long, on risque de devoir « scroller » des lignes et des lignes de code avant de trouver le bon endroit.

Mais TeXShop propose heureusement des solutions, qui diffèrent cependant selon ses versions et la distribution TeX utilisée.

Depuis la sortie de MacTeX-2008, la version de TeXShop livrée avec (la 2.18) intègre un mécanisme de synchronisation source-PDF appelé SyncTeX.

Attention, si vous utilisiez auparavant une version de TeXShop antérieure à la 2.18, il sera sans doute nécessaire de supprimer le fichier de préférences « TeXShop.plist », situé dans le dossier « Préférences » de votre dossier « Bibliothèque » personnel, avant de (re)démarrer TeXShop 2.18. Ce fichier « TeXShop.plist » sera alors recréé, avec cette fois-ci tout ce qu'il faut pour faire tourner SyncTeX.

Comment ça marche, ce SyncTeX ? Très simplement ! Vous « commande-cliquez » à un endroit du document PDF que vous avez produit avec LaTeX, et TeXShop vous amène (à peu de chose près) sur la partie concernée du document source LaTeX. Cette partie sera surlignée de jaune, comme ici :

image

Réciproquement, si vous « commande-cliquez » à un endroit de votre document LaTeX, TeXShop va repérer dans la fenêtre de lecture du document PDF, en l'entourant de rouge, la partie du texte (approximativement) correspondante :

image

Rassurez-vous, ces effets visuels ne sont que superficiels : ils disparaissent à la compilation suivante et n'affectent en aucune manière les documents à l'impression.

D'après ma propre expérience, le procédé « SyncTeX » marche parfaitement, je ne l'ai jamais vu faire d'erreurs. Que du bonheur, comme dirait l'autre :-) Mais ça n'a pas toujours été le cas.

En effet, du temps de MacTeX-2007 et autres distributions antérieures, la synchronisation source-PDF existait déjà, mais sous une autre forme. Elle utilisait un procédé appelé bizarrement « Search » qui lui-même faisait appel à des propriétés du « PDF Kit » interne à Mac OS X lui-même. Mais « Search » coinçait dans un cas très gênant, (pour moi du moins) : les formules mathématiques. Si on « commande-cliquait » sur un paragraphe de formules matheuses, que ce fut dans le document source ou dans le document PDF, la synchronisation échouait lamentablement.

Pour remédier à cela, il y avait heureusement le paquet pdfsync. Ce paquet de commandes, développé à l'origine par le créateur d'iTeXMac, Jérôme Laurens, et maintenant parvenu à maturité après une longue période de « beta-test », permettait une synchronisation plus efficace du source vers le PDF, et vice versa, dans toutes les circonstances (y compris donc les formules mathématiques). Il fonctionnait suivant le même principe, le « commande-clic ».

Pour utiliser pdfsync dans son document LaTeX, on devait charger le paquet de commandes du même nom :

\usepackage{pdfsync}

Mais on devait également aller dans les préférences de TeXShop, onglet « Divers », section « Sync Method », et là cochez soit la case « Pdfsync », soit la case « Both » qui active à la fois « Search » et « pdfsync ». C'était alors le meilleur choix.

image

Vérifiez bien que vous avez la bonne option cochée : « SyncTeX » si vous utilisez MacTeX-2008 et TeXShop 2.18, « Both » (pdfsync + Search) sinon. Dans les versions de TeXShop antérieures à 2.18, l'option « SyncTeX » n'apparait pas.

Seulement voilà, depuis MacTeX-2008 le paquet pdfsync est carrément incorporé à pdfTeX, le moteur de pdfLaTeX, et c'est justement cette incorporation qui porte le nom SyncTeX. TeXShop 2.18 intègre cette nouvelle fonctionnalité. Ce qui fait que nous avons droit à une synchronisation source-PDF quasi parfaite, sans avoir à charger le moindre paquet de commandes :-) En particulier, plus aucun problème avec les formules mathématiques.

Cependant, si jamais il arrivait que SyncTeX cale, les options précédentes de synchronisation restent disponibles dans la fenêtre « Sync Method » des préférences TeXShop, ainsi qu'on vient de le voir.

Les utilisateurs de LaTeX par la voie de compilation « TeX + Ghostscript » (celle qui permet d'incorporer les figures en PostScript) et les adeptes de XeLaTeX peuvent également bénéficier de SyncTeX. Mais il y a alors un brin de bidouille à faire.

  • Si vous utilisez « TeX + Ghostscript », allez dans les préférences, onglet « Moteur », section « TeX + dvips + distiller » :
    image

    et remplacez la ligne qui se trouve sous l'intitulé « LaTeX » (par défaut : simpdftex latex) par cette ligne-là :

    simpdftex latex --maxpfb --extratexopts --synctex=1

    Cliquez alors sur « OK », et SyncTeX devrait alors fonctionner aussi sans problème pour cette voie de compilation.

  • Si vous utilisez XeLaTeX, ouvrez le dossier « TeXShop » de votre Bibliothèque maison, et là ouvrez le sous-dossier « Engines ». Vous y trouverez normalement le fichier « XeLaTeX.engine » :

    Ouvrez ce fichier, et remplacez la ligne

    xelatex "$1"

    par la ligne

    xelatex --synctex=1 "$1"

    À partir du redémarrage suivant de TeXShop, la synchronisation fonctionnera alors également pour XeLaTeX.

Il est temps de passer maintenant à l'autre grande nouveauté de TeX Live 2008 : le TeX Live Manager.


Mettre à jour TeX Live avec TeX Live Manager

LaTeX et plus généralement tout ce qui gravite autour de TeX évolue très très vite. Mais TeX Live 2008, tel que MacTeX l'installe initialement, restera figé jusqu'à la sortie de la prochaine version de TeX Live, probablement en 2010. Et entre-temps, bien des paquets ou classes que vous utilisez seront passés à de nouvelles versions, avec des nouvelles propriétés ou des corrections de bugs dont vous aimeriez peut-être bien bénéficier tout de suite.

Comment faire alors ? Jusqu'à présent, la seule solution sur Mac était de télécharger soi-même la nouvelle version du paquet ou de la classe, sur le site du CTAN (Comprehensive TeX Archive Network, qu'on peut voir comme un entrepôt où on peut télécharger presque tout ce qui concerne TeX). Puis d'installer ce paquet/cette classe tout seul comme un grand dans l'arborescence de votre distribution TeX. Cet arborescence a un nom en langage TeXien, la TeX Directory Structure (TDS). Cette méthode « à la main » est très fiable et efficace, et dans certains cas particuliers, elle garde tout son intérêt.

Mais depuis la sortie de TeX Live 2008, les choses ont changé, avec le TeX Live Manager qui l'accompagne. Il s'agit d'un outil dont l'équivalent existait déjà depuis plusieurs années sur Windows avec la distribution MikTeX, concurrente de TeX Live sur cette plate-forme. C'est-à-dire une application permettant de prendre en charge, de façon simple, le téléchargement, l'installation et/ou la mise à jour des paquets (La)TeX dans votre distribution.

Dans la suite de cette section, pour simplifier, j'utiliserai le terme « paquet » afin de désigner les entités que le TeX Live Manager installe. Mais il pourra s'agir d'une classe de documents, d'un ensemble de classes, de sous-programmes LaTeX, etc.

Sur Unix, le TeX Live Manager (appelé brièvement TLMGR) est disponible pour l'instant sous deux formes seulement : un outil en ligne de commande, et une application graphique X11.

Je vous vois déjà faire la grimace : n'avais-je pas dit en première partie du cours LaTeX que le Terminal ou X11 n'étaient absolument pas nécessaires pour faire tourner LaTeX ?

Mea culpa, j'ai eu tort, c'est encore nécessaire pour le TLMGR, qui est sorti entre-temps avec TeX Live 2008. Mais les développeurs de MacTeX ont bon espoir d'en sortir une version Aqua dans l'année qui vient.

Comme j'ai peur de me faire lyncher si je vous parle de la version du TLMGR en ligne de commande, je vais me contenter de décrire brièvement la version X11. Bien entendu, cela suppose que ce dernier est installé sur votre système. Les adeptes du Terminal pourront se documenter sur la version en ligne de commande avec son manuel Unix (en entrant

tlmgr --help

au Terminal lorsque TLMGR sera installé) ou lire cette page.

Rendez-vous dans le dossier /Applications/TeX/Utilities. S'y trouve un mode d'emploi (en anglais) de l'outil en ligne de commande et de son interface, « TeX Live Manager.pdf », très clair. On y trouve également un package Mac OS X d'installation « Tk-804.028.pkg ». Il faut actionner ce package pour installer les librairies (Perl) nécessaires au fonctionnement de l'interface. Une fois ceci effectué, on ouvre X11 et on entre la commande

sudo tlmgr --gui

dans le Terminal (attention, chez moi entrer cette commande directement dans la fenêtre « xterm » de X11 ne marche pas, il faut que je passe par le Terminal d'Apple). « Gui » est l'acronyme de graphical user interface. On peut éventuellement ne pas utiliser la commande sudo dans la ligne de code précédente si on compte juste parcourir des listes de paquets sans rien installer, mettre à jour ou supprimer.

Survient un temps de chargement (qui peut être assez long) pendant lequel l'appli scanne notre installation de TeX Live. On en est gentiment averti par ce message qui s'affiche sur l'écran :

image

On voit ensuite s'afficher la « splendide » fenêtre ci-dessous :

image

Notez que l'interface du TLMGR a déjà été francisée. Le mode d'emploi le sera sans doute bientôt lui aussi.

En haut, au centre, l'adresse du miroir de CTAN qui servira de base pour les futures mises à jour et installations. On vous demandera de cliquer sur le bouton « Charger » en haut de la fenêtre sitôt après l'ouverture de l'application : c'est pour retirer les descriptifs des différents fichiers contenus dans ce miroir, qui lui contient toutes les dernières versions des paquets (La)TeX. Là aussi, cela prendra du temps, et un message analogue au précédent va s'afficher pour vous demander de prendre patience ;-) Une fois le chargement effectué, l'interface ressemblera à ça :

image

Ceci fait, passons à la description de l'application elle-même et de sa fenêtre d'interface.

Sur la gauche, l'onglet « Installation », celui choisi dans notre figure, liste tous les paquets de ce miroir, et fait précéder d'un « (i) » ceux qui sont déjà sur votre machine, que ce soit une version ancienne ou non. Attention, la liste est TRÈS longue, n'hésitez pas à scroller ou à user de la zone de dialogue « Rechercher » si vous chercher un paquet particulier.

Le cas échéant, vous sélectionnerez le ou les paquets qui vous manque(nt) et que vous souhaitez installer, dans le menu « Installer ». de l'onglet « Installation ». Si vous avez sélectionné un seul paquet, une description de celui-ci s'affichera alors à droite, en anglais. Si vous souhaitez en sélectionner plusieurs, cliquez simultanément sur la touche « control » ou « shift » et les noms des paquets supplémentaires. Dans ce cas, seul le descriptif du premier paquet sélectionné s'affichera.

Puis vous cliquerez sur le bouton « Installer les paquets sélectionnés ». Le TLMGR procèdera alors à l'installation de ce(s) paquet(s). Surtout, ne cochez pas l'option intitulée « Sans les dépendances », à moins de savoir vraiment ce que vous faites. Un paquet à installer a souvent besoin lui-même d'autres paquets, et il faut que ceux-ci soient également installés.

L'onglet « Mettre à jour » liste les paquets contenus dans votre miroir qui sont plus récents que ceux correspondants dans votre installation courante. Là aussi la liste peut être longue, s'il s'est écoulé beaucoup de temps depuis votre installation, ou votre dernière mise à jour générale (voir plus bas).

image

La procédure de mise à jour est parfaitement analogue à celle d'installation : sélectionner le ou les paquets que vous voulez mettre à jour et cliquez sur « Mettre à jour les paquets sélectionnés ». La nouvelle version du paquet remplacera l'ancienne dans l'arborescence du système. De plus, dans cet onglet, un bouton vous offre la possibilité de « Tout mettre à jour », ce qui peut prendre du temps. De façon générale, d'ailleurs, évitez d'utiliser cette option si vous êtes globalement satisfait de votre installation : le mieux est l'ennemi du bien, dit-on.

Mise à jour (c'est le cas de le dire ;-)), ou une bonne occasion de tester le procédé de mise à jour du TLMGR : mettez à jour les paquet "texlive.infra" et "bin-texlive" pour disposer de la nouvelle version du TLMGR lui-même, sortie le 12 octobre. En effet, cette nouvelle version corrige un bug important : avant, si un téléchargement échouait, le paquet déjà existant pouvait être purement et simplement supprimé. Résultat, on se retrouvait sans aucune version de ce paquet, ni l'ancienne, ni la nouvelle ! Ce ne serait plus le cas avec cette mise à jour, il est donc fortement recommandé de la faire !

L'onglet « Supprimer » fournit aussi une immense liste, celle de tous les paquets installés sur votre machine (pas ceux du miroir), en vue d'une suppression éventuelle. Mais pourquoi diable voudriez-vous faire un truc pareil ?

image

Pour les kamikazes ou les TeXniciens confirmés qui veulent s'y lancer, le procédé de suppression est lui analogue à celui de l'installation, à ceci près qu'on y fait tout le contraire, évidemment ! :-)

Noter l'onglet « Désinstallation » pour ceux qui veulent supprimer toute leur installation de TeX Live 2008. À fuir comme la peste, sauf lors de la sortie de la prochaine version de TeX Live. Et encore, même dans ce cas, c'est toujours mieux d'avoir une « roue de secours » en cas de problème.

image

On aura été prévenus :-)

Vous ne devriez guère avoir à faire avec l'onglet « Architecture », qui comme son nom l'indique liste les architectures potentiellement prises en charge par TeX Live 2008, et signale la vôtre, en l'occurence « Universal binaries for MacOSX/Darwin », en cochant la case correspondante en rouge.

image

Enfin, l'onglet « Configuration » se charge, comme son nom l'indique, de quelques tâches de configuration de TeX Live. En particulier, la section « Réglages du papier » devrait montrer « a4 » comme papier par défaut dans tous les cas listés :

image

Si ce n'est pas le cas et que vous voyez « letter » inscrit quelque part, vous devez absolument cliquer le bouton « A4 » sur la ligne « Papier par défaut pour tous ». Sauf si bien sûr vous travaillez dans le monde anglo-saxon ! Le reste du contenu de cet onglet est au-dessus du niveau de l'utilisateur moyen.

Certaines listes de diffusion et forums de discussion sur LaTeX, comme le newsgroup Usenet anglophone comp.text.tex (voir ici ses archives sur Google), signalent régulièrement la sortie d'un nouveau paquet sur CTAN ou la mise à jour de l'un deux. Un bon moyen de se tenir au courant des dernières évolutions !

Il faut cependant être prudent vis-à-vis du TeX Live Manager. Son principal inconvénient est que lorsqu'on procède sans précautions à une mise à jour d'un paquet, la version ancienne est purement et simplement supprimée. Il est donc impossible de revenir en arrière. Et si le nouveau paquet présente des bugs que l'ancien n'avait pas, on n'est pas très heureux d'avoir procédé à cette mise à jour ! Si on souhaite procéder à une sauvegarde tout en installant la nouvelle version, on est obligé de passer par le Terminal (je précise que je n'ai pas testé en profondeur les deux procédures qui vont suivre). On y entre :

sudo tlmgr update --backupdir chemin_vers_dossier nom_du_paquet

où « chemin_vers_dossier » est comme son nom l'indique le chemin Unix vers un dossier qu'on aura préalablement créé pour recevoir l'ancienne version du paquet en sauvegarde.

Si on souhaite réinstaller l'ancienne version, on entrera

sudo tlmgr restore --backupdir chemin_vers_dossier nom_du_paquet rev

où « rev » est le numéro de votre sauvegarde. Ce numéro se trouve au bout du nom du paquet compressé. Par exemple, dans « paquet.r7340.tar.Izma », le numéro de sauvegarde est 7340).

Autre limitation du TLMGR : vous pouvez avoir besoin d'extensions qui ne sont pas répertoriées sur CTAN, et dans ce cas il ne peut pas vous aider.

Si l'on souhaite installer une nouvelle version d'un paquet sans supprimer l'ancienne, ou installer un paquet ne se trouvant pas sur CTAN, le meilleur moyen est d'utiliser la bonne vieille méthode « manuelle ». D'autant qu'elle n'est pas si compliquée en général, comme on va le voir tout de suite.

Il y a quand même quelques cas où l'installation manuelle dépasse les capacités d'un profane, comme par exemple l'installation de nouvelles polices, toujours très compliquée avec (pdf)LaTeX. Alors l'utilisation du TeX Live Manager simplifie grandement les choses.

Installer des paquets manuellement

Nous allons prendre l'exemple de l'ensemble de classes et paquets KOMA-Script dont la dernière version stable, qui corrige quelques bugs, ne se trouve hélas pas sur TeX Live 2008 qui a une version antérieure (2.98), ni sur CTAN. Télécharger cette version 2.98b sur la page du site-dépôt de KOMA-Script, ou directement en cliquant ici. (Si vous avez une âme de testeur, téléchargez la version la plus récente, la 3.00 RC2, en sachant que celle-ci est encore en développement)

Un dossier « koma-script-2008-01-30-bin » est arrivé sur votre ordi. Vous y trouverez, entre autres, le fichier « komascript.tds.zip », qui est celui qui nous intéresse. Dézippez-le. Placez alors le dossier « tex », que vous y trouverez, dans un dossier « texmf » que vous créerez vous-même dans votre « Bibliothèque » personnelle (celle qui se trouve dans votre dossier maison), comme ceci :

image

Ça y est, le nouveau KOMA-Script est installé. Il sera automatiquement reconnu à la prochaine utilisation de LaTeX.

Un paquet de commandes se présente en général sous la forme d'un fichier avec l'extension « .sty » (style). Pour une classe de document, c'est un fichier « .cls ». Si vous jetez un œil au dossier

texmf/tex/latex/latex/koma-script

que vous venez d'installer dans votre Bibliothèque, vous y verrez plein de fichiers de ce genre, et quelques autres encore. Normal, puisque KOMA-Script est un bundle un ensemble de paquets et de classes, comme on le savait déjà.

Vous pouvez faire ce que vous souhaitez des autres dossiers (« doc » et « source ») qui se trouvent dans « komascript.tds », ils ne sont pas nécessaires au fonctionnement de KOMA-Script. Le mieux est cependant de les installer aussi dans le répertoire « texmf » de votre Bibliothèque. Vous aurez ainsi reproduit une installation complète de KOMA-Script selon les principes de la TeX Directory Structure (TDS), ce qui vous servira peut-être plus tard.

N'hésitez pas à jeter un œil à la doc PDF en anglais, « scrguien.pdf », dans le sous-dossier « doc/latex/koma-script ». Pour les germanistes, on y trouve également la documentation originale en allemand, « scrguide.pdf ». Puisque vous venez d'installer ces documentations selon la TDS, vous pouvez même y accéder par le Terminal, en y entrant par exemple

texdoc scrguien

si le Terminal ne vous donne pas des boutons, bien sûr ;-)

Quant à l'ancienne version de KOMA-Script, on n'y a pas touché, elle est toujours là, précisément dans le répertoire

/usr/local/texlive/2008/texmf-dist/tex/latex/koma-script

Mais cette ancienne version ne risque-t-elle pas d'interférer avec la nouvelle ?

La réponse est non. En effet TeX Live, lorsqu'il recherche un paquet de commandes, commence toujours par le chercher dans le dossier « texmf » de votre Bibliothèque personnelle, si ce dossier a été créé. S'il le trouve là, alors il arrête sa recherche, et ignore les autres parties de son arborescence. Donc, dans notre cas, l'ancienne version de KOMA-Script ne sera plus du tout utilisée.

Si la nouvelle version de KOMA-Script ne vous convient pas, pour une raison ou pour une autre, vous pouvez revenir à l'ancienne en enlevant la nouvelle version de votre dossier « texmf ».

Sachez tout de même qu'en général les paquets se présentent d'une autre façon que KOMA-script. Un exemple plus typique est le paquet caption, dont on a parlé dans la partie 4. Téléchargez sur CTAN la nouvelle version du paquet caption, qui se trouve sur cette page. Aterrira alors sur votre ordi un dossier « caption ». Vous constaterez cependant qu'il n'y pas de fichier « .sty » dedans !

En fait, pas de problème, les deux fichiers qui sont importants pour nous sont les fichier « caption.ins » et « caption.dtx ». Il suffit de compiler avec (pdf)LaTeX le fichier « caption.ins », après l'avoir ouvert avec TeXShop. Cette compilation utilise alors le fichier « caption.dtx » pour produire toute une série de fichier « .sty ». Il ne vous reste plus qu'à introduire ces fichiers « .sty » dans un sous-dossier « caption » du dossier « texmf/tex/latex » que vous avez déjà créé dans votre Bibliothèque lors de l'installation du nouveau KOMA-Script, et c'est terminé :

image

À vrai dire, on aurait pu nommer ce dossier « caption » autrement. Et on n'était même pas obligé de le placer dans un dossier « latex ». L'essentiel est que les fichiers « .sty » se trouvent dans le sous-dossier « tex » du dossier « texmf ». Mais pour mieux nous y retrouver nous-même, il est important d'être un tant soit peu ordonné. Cette extension-ci s'appelle caption, et elle concerne LaTeX, d'où notre arborescence.

Au passage, vous pouvez mettre les fichiers PDF de documentation du paquet dans un sous-dossier « caption » du dossier texmf/doc/latex. On pourra comme pour KOMA-Script les consulter en entrant

texdoc nom_de_la_doc

au Terminal.

Là aussi, si cette nouvelle version ne vous convient pas, il suffira de la déplacer ailleurs pour que TeX Live retrouve l'ancienne version.


Pour conclure, je renouvelle mon conseil de privilégier cette méthode d'installation « à la main » à celle du TeX Live Manager, du moins pour le moment. À moins que ces manipulations ne vous paraissent décidément trop fastidieuses. Le fait que la version graphique du TLMGR écrase vos paquets avant de les mettre à jour, sans possibilité de les récupérer, est selon moi un défaut quasi rédhibitoire. Il faudrait qu'il propose, comme sa version en ligne de commande, un processus de sauvegarde préalable (à un endroit à préciser par l'utilisateur) du paquet concerné. Mais comme le TLMGR vient juste de naître, comme SyncTeX d'ailleurs, on peut encore voir venir, et ses mises à jour vont sûrement nous apporter de bonnes surprises !

Mise à jour 22 janvier 2009 : une version Aqua du TeX Live Manager est sortie. Elle s'appelle « TeX Live Utility ». Vous trouverez les infos nécessaires dans ce sujet du forum. Attention, elle ne fonctionne qu'à partir de Leopard.

Icon_print