Pourquoi mettre des % en fin de ligne à la fin des commandes ?
En TeX, les fins de lignes sont considérés comme des simples espaces. Ce qui pose problème si on fait tenir un commande sur plusieurs lignes.
Prenons par exemple la commande suivante, relativement simple :
\newcommand{\nom}[1]{
\index{#1}
\textbf{#1}
}
Si on l’appelle ainsi,
La pensée de \nom{Tertullien} a changé au cours des temps.
On constate des espaces indésirables avant et après « Tertullien » (souligné pour les besoins de la démonstration) :
La pensée de _Tertullien_ a changé au cours des temps.
Pour éviter cela, il faut insérer un % à la fin de chaque ligne :
\newcommand{\nom}[1]{%
\index{#1}%
\textbf{#1}%
}
Ce qui éviter d’avoir des espaces indésirables
La pensée de Tertullien a changé au cours des temps.
Un hook de pre-commit
Un « hook », au sens Git, est un script, écrit dans un language quelconque (perl, python, bash) qui est exécuté lorsque certains actions git ont lieu, dans le cas qui nous intéresse, juste avant un commit.
Le script peut envoyer des informations sur le Terminal, il peut modifier des fichers, il peut aussi faire échouer une action de Git, par exemple le commit.
J’ai donc créé un hook qui vérifie, sur les fichiers de .cls
(définition de classe), .sty
(définition de package), .dtx
(documentation de package et de classe, .bbx
, .lbx
, .cbx
(styles biblatex), qu’il n’y a pas, lors d’un commit, de lignes modifiés finissant sans %, à l’exception des lignes vides.
Le hook ne fonctionne pas sur les .tex
car les fonctions devraient être définies dans des .sty
, et qu’il ne faudrait pas forcer les % en fin de ligne dans les .tex
, comme le prouve l’exemple suivant :
Ce serait une mauvaise%
idée.
Pour faire fonctionner le hook :
-* le télécharger
- Le déplacer dans le dossier invisible
.git/hooks
dans le dépôt git local. - Le renommer
pre-commit
. - Lui donner les droits d’éxecutions (
chmod +x
).
C’est tout !
Désormais, il vous sera impossible de commiter par erreur une ligne ne finissant pas par %
.