Texmaker existe parce que son auteur s’est détourné d’un autre éditeur LaTeX. Pascal Brachet avait fondé Kile, l’environnement LaTeX du bureau KDE, dont il a confié la maintenance à un autre développeur en 2003 ; le 29 mai de cette même année paraissait la première version de Texmaker — cette fois un environnement multiplateforme écrit uniquement en Qt et lié à aucun bureau particulier. Cette page parcourt le mécanisme de document maître qui tient ensemble un manuscrit réparti en plusieurs fichiers, la chaîne Quick Build placée derrière F1, la vue de structure qui grandit à mesure qu’on écrit, et ce qui distingue Texmaker de TeXstudio, lui-même issu de Texmaker.
L’auteur de Texmaker avait aussi fondé Kile
Ce lien est consigné du côté de Kile. Le premier nom du fichier AUTHORS de Kile est Pascal Brachet, et la page de manuel kile(1) indique : « Kile was written by Pascal Brachet and Jeroen Wijnhout. » Dans un entretien d’octobre 2003, Wijnhout raconte avoir écrit à Brachet pour ajouter des fonctions : « It turned out that he wanted to stop the development of Kile. So I got more than I bargained for, the project was in my hands now. » Ce que Brachet a lâché, c’est un éditeur soudé à KDE ; ce qu’il a écrit ensuite, c’est Texmaker, qui se passe des bibliothèques KDE et tourne sur Qt seul. La même idée, détachée d’un environnement de bureau.
Le résultat est un éditeur qui loge tout un environnement intégré dans une seule fenêtre : vue de structure à gauche, source au centre, journal et messages en dessous, aperçu PDF à droite. La licence est la GPL v2, la base est Qt, et les paquets pour Windows, macOS et Linux viennent du même auteur. On y trouve l’Unicode et plusieurs encodages, le pliage de code pour \part, \chapter, \section et les blocs \begin{...}…\end{...}, une palette d’environ 370 symboles mathématiques, une visionneuse PDF intégrée à défilement continu, la vérification orthographique, la complétion, la sélection rectangulaire, la recherche à travers des dossiers, les expressions régulières, la prise en charge d’Asymptote et des extraits définis par l’utilisateur — c’est-à-dire à peu près tout ce que TeXworks a délibérément laissé de côté.
Texmaker et TeXstudio : TeXstudio est un fork de Texmaker
Leur ressemblance vient de ce que l’un est né du code source de l’autre. En 2008, un projet s’est détaché de la base de code de Texmaker et a publié sa première version en février 2009 sous le nom de TexMakerX. La confusion entre les noms fut telle que le projet a été rebaptisé TeXstudio en juin 2011. C’est pourquoi la disposition de l’écran et la forme des réglages font encore penser à des frères. Ce que le fork a ajouté depuis relève surtout de l’édition — vérification grammaticale, curseurs miroirs, pliage et complétion renforcés — tandis que Texmaker reste ce qu’était l’original : moins de réglages, plus de franchise. Maîtriser l’un donne aussitôt accès à l’autre ; en pratique, commencer par le plus léger, Texmaker, et passer à TeXstudio lorsqu’il ne suffit plus.
Le document maître : tenir ensemble un manuscrit en plusieurs fichiers
Dès que le manuscrit se répartit en fichiers par chapitre, la première chose à faire est de désigner un document maître depuis le menu « Options ». C’est le pivot du travail multi-fichiers dans Texmaker. En mode maître, la compilation part toujours du document maître, quel que soit le fichier au premier plan : appuyer sur F1 en travaillant sur chapter3.tex compile malgré tout main.tex. On quitte ce mode par le même menu « Options » ; l’entrée et la sortie étant au même endroit, il est difficile de perdre de vue l’état courant.
Le mode maître modifie le sens des jetons employés dans les arguments d’une commande. Le plus utilisé dans les réglages de Texmaker, %, désigne « le nom de fichier sans extension » — mais en mode maître il se développe en le nom du document maître. C’est précisément pour cela qu’existe un second jeton, #, qui donne le fichier actuellement ouvert, y compris dans ce mode. Ignorer la différence entre les deux, c’est trébucher aussitôt qu’on veut exécuter quelque chose chapitre par chapitre. Les mêmes champs acceptent @ pour le numéro de ligne courant et ! pour le répertoire courant.
| Jeton | Ce qu’il produit |
|---|---|
% | le nom de fichier sans extension — le nom du document maître en mode maître |
# | le nom, sans extension, du fichier actuellement ouvert — inchangé même en mode maître |
@ | le numéro de la ligne courante — utile pour transmettre une recherche avant à une visionneuse externe |
! | le répertoire courant |
%% ## @@ !! | la façon d’écrire le caractère lui-même : doublé, un jeton redonne un seul caractère littéral |
Quick Build : décider ce que lance F1
La compilation dans Texmaker se décide dans deux sections d’Options → Configure Texmaker (nommé Preferences sous macOS). Commands retient ce qu’est réellement chaque commande — avec quels arguments pdflatex ou dvipdfmx est lancé — et Quick Build retient l’ordre dans lequel elles s’enchaînent. La séparation étant nette, un changement comme le passage aux moteurs japonais, qui conserve l’ordre et ne remplace que le contenu, ne touche qu’un seul endroit. Ce qui déclenche la chaîne, c’est le bouton de la barre d’outils, ou la touche F1.
La section Quick Build présente les combinaisons courantes sous forme de boutons radio, parmi lesquels on en choisit un. Pour composer la sienne, on utilise le champ User en bas, en reliant les commandes par |.
- PdfLaTeX + View Pdf — aller droit au PDF avec pdfLaTeX et l’afficher. Le réglage d’usine ; suffisant pour un texte surtout occidental.
- LaTeX + dvips + View Ps — passer par un DVI, le convertir en PostScript avec dvips, puis l’afficher.
- LaTeX + dvipdfm + View Pdf — passer par un DVI et le convertir en PDF avec dvipdfm(x). La voie habituelle pour le japonais.
- User — enchaîner dans le champ ci-dessus les commandes voulues avec
|pour bâtir son propre flux.
Le champ PdfLaTeX de la section Commands contient par défaut à peu près ceci. -interaction=nonstopmode empêche LaTeX de s’arrêter sur une invite interactive lorsqu’il rencontre une erreur, et -synctex=1 lui fait produire les informations dont SyncTeX aura besoin. Les deux méritent d’être conservés quelle que soit la voie retenue.
pdflatex -synctex=1 -interaction=nonstopmode %.texPour que la bibliographie, l’index et le nombre de passes soient pris en charge, une possibilité consiste à placer un unique appel à latexmk dans le champ User de Quick Build. latexmk résout les dépendances et répète chaque étape autant de fois qu’il le faut ; il ne reste donc rien à aligner ici. Le réglage de latexmk lui-même fait l’objet d’une autre page.
latexmk -pdf -synctex=1 -interaction=nonstopmode %.texRégler la compilation pour le japonais : upLaTeX et LuaLaTeX
La référence de longue date pour le japonais est upLaTeX + dvipdfmx, et dans Texmaker elle demande des modifications à deux endroits seulement. Dans la section Commands, remplacer le champ LaTeX par uplatex et le champ Dvipdfm par dvipdfmx, puis choisir « LaTeX + dvipdfm + View Pdf » sous Quick Build. Une pression sur F1 enchaîne alors upLaTeX → dvipdfmx et se termine par le PDF à l’écran. -kanji=utf8 fixe l’encodage d’entrée à UTF-8 et -no-guess-input-enc désactive la détection automatique. Omettre -synctex=1 ici produit un symptôme déroutant : tout fonctionne, sauf la recherche inverse.
uplatex -no-guess-input-enc -kanji=utf8 -synctex=1 -interaction=nonstopmode %.texdvipdfmx %.dviL’autre voie est LuaLaTeX : moins d’étapes lorsqu’un document japonais démarre de zéro, et un passage direct au PDF sans DVI. Après avoir vérifié le champ LuaLaTeX sous Commands, il suffit d’écrire lualatex -synctex=1 -interaction=nonstopmode %.tex dans le champ User de Quick Build (la composition japonaise proprement dite revient au package luatexja ou à la classe ltjsarticle). Pour rassembler la configuration en un seul endroit, on décrit le flux upLaTeX ou LuaLaTeX dans un .latexmkrc et Texmaker se contente d’appeler latexmk.
Vue de structure, complétion et assistants
La vue de structure (Structure view), à gauche, est une carte du document qui se rafraîchit à mesure qu’on tape. Les titres (\section et apparentés), les étiquettes (\label) et les fichiers appelés par \input et \include s’y déploient en hiérarchie, et un clic mène à l’endroit voulu. Dans un projet doté d’un document maître, le contenu des fichiers de chapitre rejoint le même arbre, si bien qu’un long manuscrit se parcourt sans perdre la vue d’ensemble. Cette surface du regard global est justement ce qui manque à TeXworks, et c’est l’une des choses qui font de Texmaker un environnement intégré.
La complétion réduit les frappes. Après \ suivi d’une lettre, une liste de commandes candidates apparaît et se resserre à chaque caractère ; les commandes à arguments affichent des emplacements à remplir, si bien que les accolades se comblent l’une après l’autre. Il ne s’agit pas seulement des noms de commandes : après \ref{...} ou \pageref{...}, ce sont les étiquettes présentes dans le document qui sont proposées, et après \cite{...} les clés de la base bibliographique — fini l’arrêt sur un nom à moitié retenu. S’y ajoutent les assistants : Quick Start règle d’un coup \documentclass, le format de papier et l’encodage, tandis que Tabular, Tabbing et Array (qui laisse choisir entre array, matrix et pmatrix) écrivent l’ossature que personne ne retient mot pour mot.
Quoi vérifier, dans l’ordre, quand F1 échoue
Avant de réécrire la chaîne Quick Build, séparer la question en deux : que dit le journal, et la commande externe a-t-elle seulement pu démarrer ? Les causes et les remèdes diffèrent du tout au tout, alors qu’à l’écran les deux cas se ressemblent : « j’ai appuyé sur F1 et aucun PDF n’est apparu ». En particulier, Could not start the command n’est pas une erreur de LaTeX : elle signifie que Texmaker n’a pas trouvé l’exécutable, et relire le journal n’y changera rien. L’ordre vaut aussi bien pour une longue thèse que pour un court rapport.
- Commencer par le panneau Messages / Log file et repérer la première erreur. Si les numéros de ligne sont cliquables, le clic mène droit à l’endroit fautif de la source.
- Devant
Could not start the command, taperpdflatex --versionouuplatex --versiondans un terminal et corriger le PATH ; les réglages de Texmaker n’y sont pour rien. - Si seul le PDF refuse de se rafraîchir, vérifier que la visionneuse intégrée ne retient pas un ancien fichier et que le Quick Build choisi contient bien View Pdf.
- Si seul le japonais échoue, s’assurer que les champs LaTeX et Dvipdfm forment une paire cohérente upLaTeX + dvipdfmx.
Les deux conditions pour que SyncTeX fonctionne
Deux choses seulement sont nécessaires : -synctex=1 dans la commande de compilation, et le PDF ouvert dans la visionneuse intégrée. La première fait produire à LaTeX le fichier de synchronisation (.synctex.gz) ; les commandes montrées plus haut suffisent. La seconde consiste à choisir le built-in viewer comme Pdf Viewer dans la section Commands, et à activer Embed pour l’ancrer dans la fenêtre principale. Ouvert dans une visionneuse externe, le PDF perd les sauts dans les deux sens.
Les gestes sont simples. Comme l’indique le manuel, avec -synctex=1 dans la commande de compilation la visionneuse intégrée se déplace d’elle-même à l’endroit du PDF correspondant à la ligne courante — c’est la recherche avant, et aucun bouton n’est à presser. Dans l’autre sens, la recherche inverse passe par un clic droit sur un mot dans la visionneuse intégrée et un choix dans le menu contextuel ; l’éditeur saute alors à la ligne correspondante. Le mécanisme de synchronisation lui-même fait l’objet d’une page distincte.