L’outil Makefile à la rescousse de la génération de documents LaTeX.

L’outil Makefile à la rescousse de la génération de documents LaTeX.

L’outil Makefile à la rescousse de la génération de documents LaTeX.
Vous avez une bibliographie, un glossaire, une table des matières, ... bref votre document LaTeX est complet, la génération en fonction des outils que vous utilisez peut vite devenir un calvaire.

11-07-28-LaTeX

J’ai jamais été un fan des logiciels de type TexShop et autres éditeurs LaTeX, le plus souvent ils sont peu personnalisables, compliqué à utiliser avec plein de fonction, lent et pas beau ! J’y ai donc assez rapidement préféré l’utilisation de Visual Studio Code, avec son interface sympa, ses plug-in de la communauté, ... Et si vous êtes un grand malade une visualisation et un pilotage de votre git dans l’interface.

Création du PDF “à la main” avec pdflatex

Maintenant si vous ne voulez pas vous casser la tête et générer votre code vous pourrez utiliser la commande terminal pdflatex. Vous pourrez l’installer en installant classiquement les outils de MacTex ou équivalent Linux. C’est problématique au final, car vous devez installer un ensemble d’outils graphique que je viens de déconseiller précédemment.

J’sais utiliser un terminal pas besoin d’un Makefile

Ça peut vite devenir lourd de générer un PDF en ligne de commande comportant un glossaire, une table des matières.

Par exemple pour la génération d’un fichier avec une table des matières vous devez exécuter deux fois cette commande :
pdflatex --file-line-error --synctex=1 MonFichier

Bref on va automatiser tout ça avec un makefile.

GENERATOR = pdflatex --file-line-error --synctex=1
DRAFT = pdflatex -draftmode
CIBLE = MonFichier
GLOSS = makeglossaries
GO = $(GENERATOR) $(CIBLE)
MAKEGLOSS = $(GLOSS) $(CIBLE)

all :
    make clean
    $(DRAFT) $(CIBLE)
    $(MAKEGLOSS)
    $(DRAFT) $(CIBLE)
    bibtex $(CIBLE)
    $(MAKEGLOSS)
    $(GO)

double : #Le double permet surtout de générer la table des matiéres et le sommaire en une ligne.
    $(GO)
    $(GO)

glossaire :
    $(DRAFT) $(CIBLE)
    $(MAKEGLOSS)
    $(DRAFT) $(CIBLE)
    $(MAKEGLOSS)
    $(GO)

bibli :
    $(DRAFT) $(CIBLE)
    $(DRAFT) $(CIBLE)
    bibtex $(CIBLE)
    $(GO)
    $(GO)

clean :
    rm -f *.aux
    rm -f *.bbl
    rm -f *.blg
    rm -f *.idx
    rm -f *.ind
    rm -f *.lof
    rm -f *.lot
    rm -f *.log
    rm -f *.out
    rm -f *.gz
    rm -f *.toc
    rm -f *.fdb_latexmk
    rm -f *.fls
    rm -f *.acn
    rm -f *.acr
    rm -f *.alg
    rm -f *.glg
    rm -f *.glo
    rm -f *.gls
    rm -f *.ist
    rm -f *.xdy
    rm -f *.glsdefs
    rm -f *.dvi
Afficher les commentaires