Page perso
EN FR

latex_updates

Transformez deux versions d'un manuscrit LaTeX en PDF avec suivi des modifications, en une seule commande. Ajouts en bleu · suppressions en orange barré.

Python ≥ 3.10 latexdiff A&A · AASTeX · MNRAS Licence MIT
le texte ajouté apparaît ainsi le texte supprimé apparaît ainsi

Quel problème cet outil résout-il ?

Lors de la resoumission d'un article après les commentaires du rapporteur, la plupart des revues exigent une version avec suivi des modifications pour que le lecteur puisse identifier immédiatement ce qui a changé. Produire ce document manuellement est fastidieux et source d'erreurs.

latex_updates automatise l'ensemble du processus : nettoyage des fichiers sources, exécution de latexdiff avec les réglages adaptés à la revue, injection des définitions de couleurs, et compilation du PDF — le tout en une seule commande. Le résultat est un document professionnel où chaque ajout est mis en évidence en bleu et chaque suppression apparaît en orange barré d'une vague.

Une bascule en une ligne dans le fichier généré permet de passer de la version annotée (pour le rapporteur) à une copie propre (pour la resoumission) sans relancer la commande.

Installation

Après l'installation, la commande latex_updates est disponible partout dans votre terminal — inutile d'être dans le répertoire du script ou d'activer un environnement particulier.

1 — Installer le paquet Python

# Recommandé : installer directement depuis GitHub
$ pip install git+https://github.com/eartigau/latex-updates.git

# Alternative : cloner et installer localement
$ git clone https://github.com/eartigau/latex-updates.git
$ pip install ./latex-updates

2 — Installer latexdiff

latexdiff est le moteur de comparaison mot à mot utilisé en interne. Installez-le une fois pour votre système :

# macOS
$ brew install latexdiff

# Debian / Ubuntu
$ sudo apt install latexdiff

# TeX Live (toutes plateformes)
$ tlmgr install latexdiff

3 — pdflatex (facultatif)

pdflatex est nécessaire uniquement pour la compilation automatique du PDF. En son absence, latex_updates produit quand même le fichier .tex et affiche la commande pour le compiler manuellement. pdflatex fait partie de toute distribution TeX standard (TeX Live, MiKTeX, MacTeX).

Si votre manuscrit utilise le style A&A (\documentclass{aa}), latex_updates cherche automatiquement aa.cls sur votre système. S'il n'est pas dans le chemin TeX, installez-le avec tlmgr install aa (TeX Live) ou sudo apt install texlive-publishers (Debian/Ubuntu).

Démarrage rapide

Le dépôt inclut deux manuscrits de démonstration pour tester l'outil immédiatement après le clonage :

$ git clone https://github.com/eartigau/latex-updates.git
$ latex_updates latex-updates/demo/demo_old.tex \
               latex-updates/demo/demo_new.tex

latex_updates: generating diff between
  old: demo/demo_old.tex
  new: demo/demo_new.tex

  Cleaning demo_old.tex ...
  Cleaning demo_new.tex ...
  Running latexdiff...
  Inserting colour definitions and toggle...

  Diff source → demo/diff_demo_new.tex
  Compiling PDF (2 passes)...
  Diff PDF    → demo/diff_demo_new.pdf

Done.

Ouvrez demo/diff_demo_new.pdf pour voir le résultat.

Utilisation

latex_updates ANCIEN.tex NOUVEAU.tex [options]
Argument / optionDescription
ANCIEN.tex Version précédente du manuscrit (version soumise)
NOUVEAU.tex Version révisée du manuscrit (après les commentaires du rapporteur)
-o FICHIER / --output FICHIER Nom personnalisé pour le fichier de sortie.
Par défaut : diff_<NOUVEAU>.tex dans le même répertoire.
--no-compile Produire uniquement le fichier .tex ; ne pas lancer pdflatex.

Exemples

# Usage courant — produit diff_v2_papier.tex + diff_v2_papier.pdf
$ latex_updates v1_papier.tex v2_papier.tex

# Nom de sortie personnalisé (pour envoyer au rapporteur)
$ latex_updates ancien.tex nouveau.tex -o modifications_rapporteur.tex

# Générer le .tex uniquement, compiler manuellement ensuite
$ latex_updates ancien.tex nouveau.tex --no-compile
$ pdflatex diff_nouveau.tex

Afficher ou masquer le texte supprimé

Chaque fichier .tex généré contient une bascule près du début. Modifiez un mot et recompilez — aucune autre modification n'est nécessaire :

Afficher le texte supprimé — par défaut, pour la lettre de réponse au rapporteur

\newif\ifshowdel
\showdeltrue   % texte supprimé en orange avec barre ondulée

Masquer le texte supprimé — copie propre pour la resoumission elle-même

\newif\ifshowdel
\showdelfalse  % texte supprimé complètement invisible

Le même fichier .tex produit ainsi deux documents distincts selon ce seul indicateur — pratique lorsqu'on a besoin à la fois de la version annotée pour le rapporteur et d'une version propre pour le système de soumission de la revue.

Support des revues scientifiques

latex_updates lit la ligne \documentclass de votre manuscrit et applique automatiquement les bonnes options latexdiff pour cette revue. Aucun argument supplémentaire, aucun fichier de configuration.

RevueClasse détectéeCe qui est géré automatiquement
Astronomy & Astrophysics (A&A) \documentclass{aa} La commande \abstract d'A&A prend cinq arguments (contexte · objectifs · méthodes · résultats · conclusions). latexdiff standard échoue sur cette syntaxe ; latex_updates la traite comme un bloc entier pour que les résumés supprimés compilent correctement. \subtitle et les titres de sections sont exclus de la comparaison mot à mot.
AASTeX (ApJ, AJ, ApJL, PASP) \documentclass{aastex63} etc. Les commandes de métadonnées d'auteur (\affiliation, \correspondingauthor, \email, \received, …) sont exclues de la comparaison mot à mot ; leurs arguments structurés ne peuvent pas être découpés sans risque par latexdiff.
Monthly Notices of the RAS (MNRAS) \documentclass{mnras} Utilise un environnement abstract standard — aucun traitement particulier nécessaire.
Toute autre classe Mode générique : latexdiff standard avec protection des environnements mathématiques.

Votre revue n'est pas dans la liste ? Ouvrez une issue — ajouter un profil ne demande que quelques lignes de Python.

Fonctionnement

1

Nettoyer l'ancien fichier

Supprimer les balises {\bf …} et \textbf{…} ajoutées manuellement lors des rondes de révision précédentes.

2

Nettoyer le nouveau fichier

Éliminer les groupes { } nus résiduels et normaliser les commandes d'espacement qui perturbent l'analyseur de latexdiff.

3

Lancer latexdiff

Comparaison mot à mot avec protection des environnements mathématiques et options adaptées à la revue appliquées automatiquement.

4

Injecter les couleurs

Ajouts en bleu, suppressions en orange barré d'une vague, et l'indicateur \showdel — insérés avant \begin{document}.

5

Compiler le PDF

Deux passes pdflatex résolvent les références croisées et génèrent le PDF final automatiquement.

Référence des couleurs

Les commentaires du rapporteur étaient hors sujet et témoignaient d'une incompréhension totale du domaine d'une perspicacité remarquable et reflétaient une expertise rare. Nous avons à contrecœur avec enthousiasme répondu à cette collection d'absurdités chacune de ces suggestions éclairées, et le manuscrit en est pratiquement inchangé profondément transformé et sublimé.

Bleu = texte ajouté  ·  Orange barré = texte supprimé

Manuscrits de démonstration

Le dossier demo/ contient deux versions d'un court article fictif (On the Statistically Suspicious Helpfulness of Artificial Minds) rédigé pour couvrir un maximum de scénarios de différence dans un document compact.

FichierContenu
demo/demo_old.tex Soumission initiale : 3 auteurs · titre · résumé avec math en ligne · 4 sections · liste numérotée (3 items) · tableau à 4 lignes · bibliographie
demo/demo_new.tex Version révisée : 4e auteur ajouté · titre reformulé · chiffres du résumé mis à jour · 4e item dans la liste · ligne supplémentaire dans le tableau · nouvelle sous-section · section Discussion entièrement nouvelle · bibliographie étendue

Ensemble, les deux fichiers couvrent les scénarios de révision les plus courants : modifications de texte en ligne, changements de valeurs mathématiques, ajouts structurels (nouvel auteur, item, ligne de tableau, section entière) — constituant un test complet pour tout flux de travail de diff LaTeX.

Comparaison en quatre panneaux montrant le manuscrit original, le manuscrit révisé, la sortie avec suivi des modifications (ajouts en bleu, suppressions en orange barré ondulé) et la copie propre pour la resoumission
Voir sur GitHub →