Comme LaTeX est du texte brut, il convient très bien au contrôle de version et à l’écriture collaborative. Ce chapitre met en place une méthode pour faire avancer un manuscrit à plusieurs sans le casser : ne gérer que les sources dans Git, transformer les différences entre versions en PDF avec latexdiff, et traiter les notes de travail ou le balisage de revue avec todonotes / changes.
Gérer avec Git
Comme la source est du texte, les diffs ligne par ligne, branches, fusions et historiques de Git s’appliquent directement (rien à voir avec des fichiers de document binaires). Ne validez que les sources (.tex, .bib, figures, .latexmkrc, etc.) et excluez via .gitignore tout ce qui est régénéré par compilation. Astuce de collaboration : écrire une phrase par ligne ; des lignes courtes rendent les diffs lisibles et les fusions moins conflictuelles.
# .gitignore — 生成物を無視 / ignore generated files
*.aux
*.log
*.out
*.toc
*.fls
*.fdb_latexmk
*.synctex.gz
*.bbl
*.blg
*.bcf
*.run.xml
*.idx
*.ilg
*.indValider ou non les PDF dépend de votre mode de distribution. Si vous devez figer une copie soumise ou publiée, il est acceptable de la gérer explicitement dans un dossier comme releases/. En revanche, valider un main.pdf régénéré à chaque modification rend les diffs illisibles et alourdit l’historique. En pratique, ignorez les PDF générés au quotidien, puis joignez les builds jalons à des tags ou Releases.
En collaboration, créez des branches par chapitre ou par tâche, et limitez chaque commit à un changement significatif. Mélanger le remplacement d’une grande figure, le nettoyage de la bibliographie et une réécriture du texte dans un même commit rend les PDF de diff comme les diffs Git plus difficiles à relire. L’avantage de LaTeX est de pouvoir traiter la prose comme du code ; gardez donc aussi l’historique à une granularité de code.
latexdiff — baliser les différences
latexdiff (par F. Tilmann) compare deux versions et produit un nouveau .tex où les changements sont mis en évidence. Une fois compilé, le PDF souligne le texte ajouté (en couleur) et barre le texte supprimé, comme l’affichage de suivi des modifications d’un traitement de texte. Toutes les commandes de balisage qu’il insère commencent par \DIF.
latexdiff --flatten old.tex new.tex > diff.tex # diff.tex をコンパイル / then compile diff.tex
latexdiff-vc --git -r HEAD~3 main.tex # Git の版と比較 / compare against a Git revisionPour les documents divisés avec \input/\include, ajoutez --flatten afin de les fusionner avant comparaison. Avec latexdiff-vc et --git (ou --svn, --hg), vous pouvez produire un diff directement contre une révision précise du contrôle de version.
todonotes — laisser des notes et TODO
Le package todonotes sert à laisser des notes de travail dans le manuscrit. \todo{...} place un encadré coloré dans la marge (\todo[inline]{...} le place dans le texte), \missingfigure{...} insère un espace réservé pour une figure non encore dessinée, et \listoftodos rassemble tous les TODO dans une liste. Pour la version finale, \usepackage[disable]{todonotes} les masque tous.
\usepackage{todonotes}
...
\todo{ここは要出典}
\missingfigure{回路図を後で追加}
\listoftodoschanges — modifications attribuées aux auteurs
Pour la relecture et le balisage de coauteurs, le package changes est pratique. Utilisez \added{...}, \deleted{...}, \replaced{new}{old} et \comment{...} pour marquer explicitement les modifications, avec une couleur par auteur. L’option draft affiche le balisage, le mode final le masque, et \listofchanges récapitule chaque modification, comme un suivi des modifications intégré directement dans la source.
\usepackage[draft]{changes}
...
\added[id=AB]{新しく加えた一文。}
\replaced[id=AB]{改訂後}{改訂前}Avant de passer à la version finale
- Passez
todonotesàdisableetchangesàfinal, puis vérifiez qu’aucun TODO ni balisage ne reste dans le PDF. - Gardez le
.texgénéré parlatexdiffsous un nom séparé ; ne le fusionnez pas dans la source principale du manuscrit. - Avant de produire le PDF de soumission, nettoyez les fichiers générés avec quelque chose comme
latexmk -Cet vérifiez un clean rebuild. - Lors d’un envoi aux coauteurs, séparez le lot de sources, le PDF de diff et le PDF final, et indiquez lequel doit être relu.
Comment les combiner
- Historique, répartition du travail, fusion →
Git(ignorer les fichiers générés ; une phrase par ligne). - Montrer ce qui a changé depuis la version précédente →
latexdiff(--flattenpour les documents divisés). - Vos TODO et parties inachevées →
todonotes(disablepour la version finale). - Balisage des coauteurs et acceptation/rejet →
changes(draftou final).