Comment utiliser des étiquettes comme des valeurs de compteur?

Les étiquettes sont des sources alléchantes de « nombres » : leur utilisation la plus courante, après tout, est simplement de composer un nombre. Cependant, leur simplicité apparente est trompeuse. Ainsi, par exemple, les extensions babel et hyperref modifient la définition de \ref et \pageref, ce qui empêche le bon fonctionnement de la commande suivante :

\setcounter{compte}{\ref{truc}}

Aussi, cette technique ne devrait pas être utilisée. D'autant qu'il existe une solution.

Avec l'extension refcount

L'extension refcount (écrite par l'auteur de hyperref) fournit quatre commandes, dont l'utilisation est assez intuitive pour qui connaît les commandes usuelles de manipulation des compteurs. Par exemple :

\usepackage{refcount}
...
\label{truc}
...
\setcounterref{compte}{truc}

Les trois autres commandes sont \addtocounterref, \setcounterpageref et \addtocounterpageref.

L'extension fournit également une commande \getrefnumber{⟨étiquette⟩} qui peut être utilisée là où une valeur numérique est nécessaire. Par example :

... \footnote{blabla...\label{unenote}}
...
\footnotemark[\getrefnumber{unenote}]

Cela vous permet de faire apparaître plusieurs fois un même renvoi à une note de bas de page. Bien entendu, l'extension met également à disposition une commande \getpagerefnumber.

Accesoirement, ces commandes pourraient être utilisées par une personne déterminée à ne pas utiliser changepage pour déterminer si une page est paire ou impaire. Toutefois, il semble peu intéressant de ne pas recourir à une solution clé en main.


Source : Using labels as counter values

2_programmation/syntaxe/compteurs/utiliser_des_labels_comme_compteurs2.txt · Dernière modification : 2022/10/10 15:30 de dbitouze
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0