Sublime Text (LaTeXTools)

Sublime Text est le seul éditeur de cette section qu’il faut payer, et le seul qui, sans rien installer, ne sache de LaTeX qu’une définition de syntaxe. Il n’y a jamais eu d’édition gratuite, seulement une évaluation sans limite de durée imposée — et une licence personnelle coûte toujours 99 dollars sur un marché dont le concurrent évident est gratuit. Ce qui transforme l’éditeur en environnement LaTeX, c’est LaTeXTools. Cette page traite de ce que LaTeXTools ajoute, de la raison pour laquelle Ctrl+B finit par lancer latexmk, du panneau rapide \ref et \cite qui est le meilleur atout du paquet, de la voie .latexmkrc pour upLaTeX et — puisque c’est la vraie question du lecteur — de ce que signifie choisir Sublime Text aujourd’hui.

Qui a écrit LaTeXTools, et qui le maintient aujourd’hui

À l’idée que LaTeXTools serait mort, la réponse est un non net. Le dépôt a été créé en mars 2011 ; le README crédite Ian Bacher, Marciano Siniscalchi et Richard Stein comme auteurs et désigne DeathAxe comme mainteneur actuel. La version stable 4.5.14 est parue le 30 juillet 2026, et l’on n’y trouve nulle part d’avis d’abandon ni d’appel à mainteneurs. Un détail mérite attention : l’endroit où il réside. Il se trouve dans une organisation GitHub nommée SublimeText, mais il s’agit d’une organisation communautaire et non de Sublime HQ — sa propre description parle d’une collection de paquets entretenus par la communauté. L’éditeur et le paquet appartiennent donc à des gens tout à fait différents.

L’installation passe par Package Control. Package Control n’est pas du code livré avec l’éditeur mais un installateur d’amorçage ; l’entrée de menu et l’entrée de palette de commandes qui vont le chercher sont présentes depuis le build 3124 de Sublime Text 3, en septembre 2016. On ouvre la palette de commandes (Ctrl+Shift+P sous Windows et Linux, Cmd+Shift+P sous macOS), on lance Install Package Control, puis Package Control: Install Package et l’on choisit LaTeXTools. Aucun redémarrage : on ouvre un fichier .tex, la syntaxe bascule sur LaTeX et les fonctions s’activent.

Deux choses suivent immédiatement. D’abord préparer un fichier de réglages : Preferences → Package Settings → LaTeXTools → Settings – User crée un LaTeXTools.sublime-settings modifiable dans le répertoire User. Ne touchez jamais au fichier par défaut du dossier du greffon : il est écrasé à chaque mise à jour. Ensuite vérifier l’installation : LaTeXTools: Check system, lancé depuis la palette de commandes, indique si les commandes TeX, la visionneuse PDF et l’exécutable subl sont visibles pour LaTeXTools. Cette commande n’a pas de raccourci et n’est accessible que par la palette. C’est la première à lancer quand quelque chose ne marche pas.

Ce que Ctrl+B lance vraiment : le builder traditional et latexmk

La compilation utilise la touche propre de Sublime Text, Ctrl+B (Cmd+B sous macOS). LaTeXTools n’ajoute pas de raccourci : il remplace le système de compilation lui-même. Le builder par défaut est traditional ; une seule compilation enregistre le fichier courant, lance la commande de compilation TeX, analyse le journal et liste erreurs, avertissements et — si on les active — les boîtes débordantes dans un panneau en bas, puis ouvre la visionneuse PDF et fait une recherche avant vers le curseur. Un clic sur une erreur du panneau saute à la ligne ; Shift+Échap rappelle le panneau après fermeture.

Le fait essentiel est que le builder traditional, c’est latexmk en dessous. Il appelle latexmk sous TeX Live et MacTeX, et texify sous MiKTeX. Sa ligne de commande par défaut se lit ainsi : -cd se place dans le répertoire de la source avant traitement, -f poursuit aussi loin que possible après une erreur, -interaction=nonstopmode évite les arrêts interactifs, et -synctex=1 produit les données de synchronisation dont ont besoin les recherches avant et inverse décrites plus bas. %E est un substituant qui devient -pdf (pdfLaTeX), -lualatex ou -xelatex selon le moteur choisi. Choisir un moteur ne consiste donc qu’à changer ce en quoi %E se développe.

terminal
latexmk -cd -f -%E -interaction=nonstopmode -synctex=1

Une mise en garde en découle, car elle frappe précisément ceux qui installent le strict minimum : LaTeXTools dépend de latexmk, et latexmk n’est pas toujours là. BasicTeX sous macOS ne l’inclut pas : lancez sudo tlmgr install latexmk, ajoutez-le via TeX Live Utility, ou pointez builder vers un builder qui s’en passe. Même chose sous Ubuntu : apt-get install texlive ne l’apporte pas, il faut aussi apt-get install latexmk. Sous MiKTeX, le builder appelle texify, lequel ne gère ni output_directory, ni aux_directory, ni jobname ; si vous en avez besoin, passez au builder basic, qui les gère mais ignore makeindex. builder_settings accepte par ailleurs une clé env, dictionnaire de variables d’environnement définies pour la seule compilation.

Le moyen le plus simple de choisir un moteur est un commentaire magique en tête de fichier. Placé sur la première ligne du .tex, il détermine le moteur employé ; sans lui, le défaut est pdfLaTeX. Dans un projet à plusieurs fichiers, cette ligne va dans le fichier racine (maître). Par compatibilité avec TeXShop, TS-program a le même sens. Seules trois valeurs sont acceptées : pdflatex, lualatex et xelatex. La famille compte d’autres membres : %!TEX options = ... transmet des options supplémentaires au moteur (par exemple --shell-escape), %!TEX root = <master> désigne le fichier racine, et %!TEX output_directory et %!TEX jobname fixent l’emplacement et le nom des fichiers produits. L’ordre de priorité mérite d’être retenu : une directive l’emporte sur le fichier de réglages, et une variante de compilation choisie par Ctrl+Shift+B l’emporte sur la directive. D’où le moteur qui refuse parfois de changer tant qu’une variante est sélectionnée.

latex
%!TEX program = lualatex
%!TEX root = main.tex
%!TEX options = --shell-escape

L’autre point crucial est texpath — le PATH servant à trouver les commandes TeX lors du lancement de latexmk et consorts. Sous macOS en particulier, un Sublime Text lancé depuis l’interface graphique a un PATH différent de celui du shell : une valeur erronée se solde par « command not found ». La règle : texpath doit contenir $PATH, vos chemins d’abord, puis $PATH. Sous macOS, "/Library/TeX/texbin:$PATH" est typique ; sous Windows, cela ressemble à "C:\\texlive\\2026\\bin\\windows;$PATH", ajusté à votre installation. Sous Windows, réglez aussi distro sur "texlive" ou "miktex". Pour changer de builder, mettez builder à basic (minimal : le moteur plus bibtex ou biber) ou script (on y écrit soi-même la séquence dans script_commands).

terminal
{
  // LaTeXTools.sublime-settings (User)
  "texpath": "/Library/TeX/texbin:$PATH",
  "builder": "traditional",
  "builder_settings": {
    "program": "lualatex",
    "options": ["--shell-escape"]
  }
}

Le panneau rapide qui surgit dès que l’on tape \ref{ ou \cite{

C’est ici que LaTeXTools est le plus agréable. À peine \ref{ ou \cite{ tapé, un panneau rapide — la liste filtrante propre à Sublime Text — descend en haut de l’écran. Pour \ref{, il contient tous les \label du document ; pour \cite{, toutes les entrées des bibliographies référencées par \bibliography{} ou \addbibresource{} de biblatex. Quelques caractères filtrent de façon approximative ; on choisit, on appuie sur Entrée, et la commande entière est insérée, par exemple \ref{my-label}. Une virgule juste avant l’accolade fermante, comme dans \cite{paper1,, permet de choisir de la même manière la deuxième clé et les suivantes d’une citation multiple.

Deux pièges. D’abord, LaTeXTools recueille ses candidats dans le fichier enregistré : si une étiquette ou une clé que vous venez d’ajouter n’apparaît pas, enregistrez. Ensuite, seuls les fichiers .bib externes sont pris en charge ; les \bibitem écrits directement dans le document ne le sont pas. Si le panneau automatique gêne, on le désactive dans les réglages ; pour l’appeler à la main, on presse Ctrl+l, x (Cmd+l, x sous macOS) ou Ctrl+l, Ctrl+f juste après \ref{ et consorts. Les commandes de référence et de citation de cleveref, fancyref, varioref, natbib et biblatex sont également reconnues.

Deux autres familles de complétion. La complétion des commandes embarque les listes de mots issues de TeXStudio (CWL) et propose des candidats dès qu’une commande commence par \ : tapez \te et \textit et ses parents apparaissent. Son comportement dépend du réglage command_completionprefixed (défaut : seulement après un \), always ou never. Les candidats des packages chargés par le document sont ajoutés automatiquement par cwl_autoload, actif par défaut, et env_auto_trigger complète en plus les noms d’environnement après \begin{ et \end{. L’autre famille est le Fill Helper : après \usepackage{, \include{, \input{ ou \includegraphics{, il propose les packages installés ou les fichiers du répertoire courant, filtrés sur les images pour \includegraphics. À la main : Ctrl+l, Ctrl+f. Seule la complétion des packages demande une préparation : lancer une fois LaTeXTools: Build cache for LaTeX packages depuis la palette de commandes.

upLaTeX et dvipdfmx : inscrire la voie dans .latexmkrc

C’est ici que trébuchent les documents en japonais. %!TEX program n’accepte que pdflatex, lualatex et xelatex : impossible donc de nommer directement uplatex ou platex. Avec LuaLaTeX, c’est simple : écrire %!TEX program = lualatex et employer une classe de la famille luatexja / ltjsclasses. Le cas délicat est upLaTeX + dvipdfmx, la voie qui produit un DVI puis le convertit en PDF.

La solution propre : laisser .latexmkrc choisir le moteur. Puisque le builder traditional repose sur latexmk, déposer un .latexmkrc dans le répertoire du projet (ou dans le répertoire personnel) fait basculer la chaîne d’outils sur la voie japonaise presque sans toucher aux réglages de LaTeXTools. Les points clés : affecter uplatex à $latex et dvipdfmx à $dvipdf, puis choisir avec $pdf_mode = 3 la voie « construire un DVI, puis convertir avec dvipdfmx ». En passant aussi -synctex=1 à $latex, les données de synchronisation parviennent au PDF même par le détour du DVI, et la recherche décrite plus bas fonctionne. Du côté de LaTeXTools, le plus sûr est de ne pas écrire de ligne %!TEX program : elle sélectionnerait le %E de pdfLaTeX.

latexmkrc
$latex = 'uplatex -synctex=1 -interaction=nonstopmode -file-line-error %O %S';
$bibtex = 'upbibtex %O %B';
$biber = 'biber --bblencoding=utf8 -u -U --output_safechars %O %S';
$makeindex = 'upmendex %O -o %D %S';
$dvipdf = 'dvipdfmx %O -o %D %S';
$pdf_mode = 3;
$max_repeat = 5;

Pour être plus explicite, la clé command de builder_settings permet de nommer latexmk directement. Écrire "command": "latexmk" — en laissant les options dans .latexmkrc — garantit que c’est bien le latexmk configuré pour le japonais qui s’exécute. Personnaliser command désactive certes la sélection automatique du moteur par %!TEX program, mais dans un montage qui fige la voie dans .latexmkrc, comme le font les flux de travail japonais, on ne perd rien. La configuration de latexmk elle-même relève de la page sur les compilations automatisées.

La recherche avant est Ctrl+l, j ; l’inverse se règle dans la visionneuse

La commande de compilation par défaut de LaTeXTools contient déjà -synctex=1 : un simple Ctrl+B produit donc les données de synchronisation (.synctex.gz). Ensuite, une seule frappe : en éditant un .tex, Ctrl+l, j (Cmd+l, j sous macOS) affiche la page du PDF correspondant au curseur. Une recherche avant se déclenche aussi automatiquement juste après une compilation, si bien que Ctrl+B seul ouvre déjà le bon endroit. Pour ouvrir le PDF sans synchroniser, Ctrl+l, v. Notez que Ctrl+l signifie d’ordinaire « étendre la sélection à la ligne » dans Sublime Text, mais devient le préfixe des commandes du paquet dans un .tex où LaTeXTools est actif. Le fonctionnement de SyncTeX lui-même fait l’objet d’une page distincte.

La recherche inverse (PDF → source) repose sur le rappel de Sublime Text par la visionneuse : la configuration se trouve donc du côté de la visionneuse. La visionneuse par défaut est fixée par plate-forme et se change avec le réglage viewer : SumatraPDF sous Windows, Skim sous macOS, Evince sous Linux (XReader sous Linux Mint), avec Okular et Zathura également disponibles sous Linux. Sioyek fonctionne sur les trois plates-formes, et toutes les visionneuses citées jusqu’ici gèrent recherche avant et inverse. L’exception à surveiller est Preview.app sous macOS, qui ne gère ni l’une ni l’autre. Le geste diffère aussi : Cmd+Maj+clic dans Skim, un double-clic dans SumatraPDF, Ctrl+clic gauche dans Evince et Zathura, Maj+clic gauche dans Okular.

Valeur de viewerSystèmeRemarques
skimmacOSLe défaut sous macOS, et de fait la seule visionneuse macOS à gérer recherche avant et inverse
previewmacOSOuvre simplement Preview.app. Ni recherche avant ni recherche inverse
sumatraWindowsLe défaut sous Windows. Évitez la visionneuse PDF d’Adobe : elle verrouille le PDF ouvert et casse la compilation
evinceLinuxLe défaut sous Linux. Le Python du système doit avoir les liaisons dbus
okularLinuxPour la recherche inverse, enregistrez subl "%f:%l" dans Settings → Configure Okular → Editor
zathuraLinuxFonctionne quasiment sans réglage ; wmctrl ou xdotool fiabilise la gestion du focus
xreaderLinuxLe défaut sous Linux Mint ; traité presque comme Evince
sioyekLinux / macOS / WindowsUne visionneuse pensée pour les ouvrages techniques et les articles ; disponible sur les trois plates-formes
commandLinux / macOS / WindowsL’issue de secours pour toute autre visionneuse : écrire soi-même view_command et forward_sync_command

Avec Skim sous macOS, il suffit de choisir le préréglage « Sublime Text » dans l’onglet Sync des préférences. Sur les versions plus anciennes dépourvues de ce préréglage, choisissez Custom, mettez dans Command le chemin absolu de subl (/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl) et dans Arguments "%file":%line. Avec SumatraPDF sous Windows, le champ de réglage de la recherche inverse n’apparaît qu’à l’ouverture d’un PDF muni de données de synchronisation : compilez donc une fois avec Ctrl+B, ouvrez ce PDF dans Sumatra, puis enregistrez la ligne de commande ci-dessous sous Settings → Options. En cas de problème, vérifiez dans cet ordre : la compilation a-t-elle utilisé -synctex=1, le préréglage ou la commande de la visionneuse sont-ils corrects, et — via LaTeXTools: Check systemsublime_executable, l’emplacement de subl, est-il visible.

terminal
"C:\\Program Files\\Sublime Text\\sublime_text.exe" "%f:%l"

Sublime Text vaut-il encore l’achat pour LaTeX ?

Commençons par cerner exactement la forme de la licence. Selon les termes de Sublime HQ, Sublime Text peut être téléchargé et évalué gratuitement, mais une licence doit être achetée pour un usage continu, et aucune limite de durée n’est actuellement imposée à l’évaluation. La licence est par utilisateur : d’après l’EULA elle vaut sur tous les systèmes d’exploitation pris en charge et peut servir sur plusieurs ordinateurs tant que son détenteur en est l’utilisateur principal. Une licence personnelle est un achat unique assorti de trois ans de mises à jour ; au-delà, il faut une mise à niveau. Les licences professionnelles suivent un autre modèle — un abonnement annuel par poste, à partir de 65 dollars par poste et par an pour les dix premiers, avec un tarif dégressif au-delà. (En août 2026, la licence personnelle coûte 99 dollars.)

Cela posé, deux chiffres méritent un regard honnête. D’abord le rythme du développement : le canal stable n’a pas bougé depuis le build 4200 du 21 mai 2025 — plus d’un an en août 2026. (Les versions de développement en sont à 4207, mais elles sont réservées aux détenteurs de licence.) Ensuite la répartition des utilisateurs : dans l’enquête développeurs 2025 de Stack Overflow, 75,9 % des répondants citaient Visual Studio Code parmi les environnements de développement qu’ils utilisent, contre 10,5 % pour Sublime Text — un écart d’environ sept fois.

La décision reste pourtant nette. Si vous possédez déjà Sublime Text et que sa vivacité fait partie de votre façon de travailler, LaTeXTools est un paquet abouti et entretenu : compilation, complétion, panneaux de références — tout le nécessaire s’y trouve. En revanche, si vous choisissez aujourd’hui un éditeur pour le seul LaTeX, les extensions et les réponses déjà écrites sont du côté de VS Code. Vu depuis le manuscrit, vos .tex, .bib et .latexmkrc sont identiques dans les deux cas, et le coût du changement se réduit à quelques fichiers de configuration. On retombe ainsi sur le vrai point : arrimer la compilation au projet compte bien davantage que le choix de l’éditeur.

Premier passage : quatre points à vérifier

  • La première commande à lancer : LaTeXTools: Check system depuis la palette, pour confirmer que les commandes TeX, la visionneuse PDF et l’exécutable subl sont tous visibles.
  • La bifurcation japonaise : pour LuaLaTeX, %!TEX program = lualatex ; pour upLaTeX, n’écrivez aucun %!TEX program et laissez la voie à .latexmkrc.
  • Quand ça échoue : si Ctrl+B signale une commande introuvable, examinez texpath. Si les références ne se mettent pas à jour, enregistrez et recompilez. Si le retour du PDF vers la source ne fait rien, vérifiez le réglage de recherche inverse de la visionneuse.
  • Quand en faire un projet : dès que les figures ou les fichiers de chapitre se multiplient, fixez le fichier maître par un projet Sublime ou %!TEX root, pour que Ctrl+B depuis n’importe quel onglet produise le même PDF.