Comment obtenir des références intégrant des noms ?#

Le mécanisme de références croisées de est conçu pour le monde assez impersonnel de la publication académique, dans lequel tout a un numéro. Aussi, une extension est nécessaire si nous voulons afficher le nom des choses auxquelles nous faisons référence.

À faire

Ajouter des exemples.

1.  Avec l’extension titleref#

L’extension titleref fournit la commande \titleref. Il convient cependant de ne pas l’utiliser dans un document dans lequel vous devez également utiliser l’extension hyperref.

2.  Avec l’extension byname#

L’extension byname fait partie de l’ensemble smartref et fonctionne d’ailleurs bien avec smartref. Elle fonctionne (dans une certaine mesure) avec hyperref mais les liens qu’elle définit ne sont pas des hyperliens.

3.  Avec la classe memoir#

La classe memoir incorpore la fonctionnalité de titleref mais ne fonctionne pas avec byname (mais des correctifs existent).

À faire

Trouver ces correctifs.

4.  Avec l’extension nameref (et hyperref)#

L’ensemble hyperref comprend une extension nameref, qui fonctionnera seule (c’est-à-dire sans hyperref mais alors, bien sûr, les références ne sont pas hypertextes). Les commandes de l’extension nameref peuvent être utilisées dans un document de classe memoir.

Si vous chargez l’extension hyperref elle-même, alors nameref est automatiquement chargée. La classe memoir nécessite l’extension memhfixc lors de l’exécution avec hyperref, comme suit :

\documentclass[...]{memoir}
...
\usepackage[...]{hyperref}
\usepackage{memhfixc}

5.  Avec l’extension zref#

L’extension zref propose un remplacement complet des mécanismes de références croisées de et offre en particulier une fonctionnalité de référence avec le nom :

\documentclass[french]{article}
  \usepackage[T1]{fontenc}    % Encodage T1 (adapté au français)
  \usepackage{lmodern}        % Caractères plus lisibles
  \usepackage{babel}          % Réglages linguistiques (avec french)
  \pagestyle{empty}           % N'affiche pas de numéro de page

  \usepackage[user,titleref]{zref}

\begin{document}
\section{Un exemple}\zlabel{sec:un}
Le nom de cette section exemplaire est : \og \ztitleref{sec:un} \fg{}.
\end{document}

Chacune des extensions titleref, byname et nameref définit une commande de référence avec le même nom que l’extension : \titleref, \byname et \nameref. L’extension nameref définit également une commande \byshortnameref, qui utilise l’argument optionnel court des commandes de chapitre et de section. Par contre, l’extension zref, du même auteur (Heiko Oberdiek), ne définit pas une telle variante.