Hyperliens (hyperref)

hyperref transforme les renvois, citations, entrées de table des matières et URL en liens cliquables dans le PDF, et configure même les signets (le plan du PDF) ainsi que les métadonnées comme le titre. Le charger tient en une ligne — \usepackage{hyperref} — mais avec une règle stricte : le charger presque en dernier. Cette page parcourt cette règle, les couleurs et cadres de liens, la création de liens avec \href et \url, et le bon traitement des signets japonais.

Chargement et ordre

Son utilisation est vraiment simple : mettez simplement \usepackage{hyperref} dans le préambule. Dès lors, les renvois (\ref), citations (\cite), entrées de table des matières, notes de bas de page, etc. deviennent automatiquement des liens ; un clic dans un lecteur PDF vous mène à la cible. Sans aucune configuration, chaque référence du document est déjà un lien fonctionnel.

Le point à surveiller est l’endroit où vous le chargez. hyperref redéfinit en interne de nombreuses commandes — \ref, \cite, \section, entre autres — pour les transformer en liens. S’il n’est pas chargé après les autres paquets qui touchent ces mêmes commandes, ses redéfinitions sont écrasées. La règle pratique est claire : placer hyperref presque à la fin du préambule, après la plupart des autres paquets.

Mais « en dernier » a quelques exceptions. La plus notable est cleveref, qui fonctionne en détectant les définitions de hyperref et doit donc venir après hyperref. Si vous utilisez aussi varioref, l’ordre est variorefhyperrefcleveref. Un mauvais ordre peut casser les références sans avertissement dans le journal (voir la page sur les renvois pour les détails de cleveref).

latex
% プリアンブルのほぼ最後で読み込む / load almost last
\usepackage{graphicx}
\usepackage{amsmath}
% ... 他のパッケージ ... / ... other packages ...
\usepackage{hyperref}   % ほぼ最後 / almost last
\usepackage{cleveref}   % hyperref の後(数少ない例外)/ after hyperref (an exception)

Par défaut, un lien est signalé par un cadre coloré autour du texte. C’est facile à repérer à l’écran, mais à l’impression le cadre s’imprime alors que le lien n’a plus de fonction visible, ce qui donne souvent un mauvais rendu. Vous contrôlez l’apparence soit par les options au chargement, soit plus souplement avec \hypersetup{...}, en listant des paires key=value séparées par des virgules. \hypersetup peut apparaître n’importe où dans le préambule.

L’option la plus utilisée est colorlinks=true : elle supprime le cadre et colore le texte du lien lui-même (le rendu reste correct à l’impression et lisible à l’écran). Les couleurs se règlent par type : linkcolor (liens internes comme \ref), citecolor (citations bibliographiques), urlcolor (URL venant de \url/\href) et filecolor (liens vers des fichiers locaux). Les valeurs par défaut sont respectivement rouge, vert, magenta et cyan.

Pour l’impression, hidelinks est pratique : il n’applique ni couleur ni cadre, si bien que les liens deviennent visuellement invisibles tout en restant cliquables. À l’inverse, si vous gardez l’affichage encadré (colorlinks=false) et voulez recolorer tous les cadres d’un coup, allbordercolors définit toutes les couleurs de cadre ensemble.

OptionEffet
colorlinks=trueSupprimer le cadre ; colorer le texte du lien à la place
hidelinksNi couleur ni cadre ; toujours cliquable (pour l’impression)
linkcolorCouleur des liens internes comme \ref (par défaut : rouge)
citecolorCouleur des citations bibliographiques (par défaut : vert)
urlcolorCouleur des liens URL (par défaut : magenta)
filecolorCouleur des liens vers des fichiers locaux (par défaut : cyan)
allbordercolorsDéfinir toutes les couleurs de cadre en une fois

Les liens vers des URL externes se créent avec deux commandes. \href{URL}{display text} attache un lien au texte de votre choix (avec \href{https://www.ctan.org/}{CTAN}, le mot « CTAN » devient le lien). \url{URL}, au contraire, compose l’URL elle-même en police à chasse fixe et en fait un lien en même temps. Utilisez \url quand l’URL doit être visible dans le texte, \href quand vous voulez la cacher derrière d’autres mots.

Les URL contiennent souvent des caractères spéciaux LaTeX comme %, #, ~ et _. L’avantage de \url et \href est que vous pouvez les écrire tels quels dans la partie URL (pas besoin d’échappement, même si l’argument de \url a quelques contraintes). Si vous voulez l’apparence à chasse fixe d’une URL sans créer de lien, utilisez \nolinkurl{URL} (même composition que \url, sans hyperlien).

latex
詳しくは\href{https://www.ctan.org/pkg/hyperref}{hyperref のページ}を参照。
% 「hyperref のページ」がリンクになる / the words become the link

ダウンロードは \url{https://www.ctan.org/} から。
% URL がそのまま組版され、かつリンクになる / URL is typeset and linked

リンクなしで URL を見せる: \nolinkurl{https://example.com/a_b#c}
% 等幅で表示、リンクは張らない / monospaced, no link

Métadonnées PDF

hyperref définit aussi les informations de document (métadonnées) du PDF — les champs affichés dans les « Propriétés du document » d’un lecteur PDF et utilisés par les outils de recherche ou de bibliothèque. Vous les donnez avec \hypersetup au moyen des clés suivantes : pdftitle (titre), pdfauthor (auteur), pdfsubject (sujet) et pdfkeywords (mots-clés).

Si une valeur contient une virgule ou un signe égal, elle entre en conflit avec les séparateurs de clés ; il est donc plus sûr d’entourer chaque valeur d’accolades {} (par ex. pdftitle={Foundations of Linear Algebra}). Notez que cela est distinct du \title du document, qui n’est pas copié dans les métadonnées ; pour les synchroniser, écrivez la même chaîne à la main ou utilisez un mécanisme comme pdfusetitle.

Signets (le plan du PDF)

Les signets (le plan) sont la liste repliable de titres qu’un lecteur PDF affiche à côté de la page ; ils sont indispensables pour naviguer dans un long document. hyperref les génère automatiquement à partir des titres du document (chapitres, sections, etc. ; bookmarks=true est la valeur par défaut). Pour inclure les numéros de section dans les signets, utilisez bookmarksnumbered=true ; pour afficher l’arborescence ouverte dès le départ, utilisez bookmarksopen=true.

Pour une gestion plus robuste, on peut ajouter le paquet bookmark (chargé après hyperref). Il remplace l’ancien code de génération de signets de hyperref, permet de définir le style et la couleur des signets, et stabilise le traitement du fichier auxiliaire .out. Vous pouvez affiner le comportement avec \bookmarksetup{...}. C’est la solution classique lorsque les signets se dérèglent dans un document complexe.

Signets japonais et prévention du texte illisible

Comme les signets et les métadonnées sont écrits comme des chaînes dans le PDF, inclure du japonais (CJK) peut produire du texte illisible. La clé est de les écrire en Unicode. Avec les moteurs modernes (LuaLaTeX / XeLaTeX), unicode est activé par défaut ; les signets japonais sortent donc généralement correctement sans réglage supplémentaire. Pour l’indiquer explicitement, chargez \usepackage[unicode]{hyperref} ou définissez \hypersetup{unicode}.

Dans la configuration traditionnelle pLaTeX / upLaTeX + dvipdfmx, la recette standard consiste à charger hyperref avec \usepackage[dvipdfmx]{hyperref} puis à ajouter le paquet pxjahyper. pxjahyper existe précisément pour produire des signets japonais sans texte illisible dans l’environnement (u)pLaTeX, et il est inclus dans TeX Live. Selon le moteur, il aide à convertir la sortie en Unicode d’après le code kanji interne (le type de travail effectué par pdfencoding=auto).

pdfencoding=auto est l’option qui décide automatiquement : conserver les chaînes telles quelles si elles tiennent en ASCII (dans la plage ASCII avec un moteur Unicode), sinon passer en Unicode (surtout pour la famille pdfTeX ; sur les moteurs Unicode, Unicode est déjà la valeur par défaut et l’option est généralement inutile). En cas de doute, retenez : avec LuaLaTeX, pas de réglage supplémentaire ; avec (u)pLaTeX, ajouter pxjahyper.

document.tex
% --- pLaTeX / upLaTeX + dvipdfmx の場合 / for pLaTeX-upLaTeX + dvipdfmx ---
\usepackage[dvipdfmx]{hyperref}
\usepackage{pxjahyper}   % 日本語しおりの文字化けを防ぐ / fix Japanese bookmarks

% --- LuaLaTeX の場合は unicode が既定 / on LuaLaTeX, unicode is the default ---
% \usepackage{hyperref}

Commandes de renvoi ajoutées par hyperref — \autoref et \nameref

Charger hyperref fournit aussi deux commandes utiles aux renvois. \autoref{key} s’utilise à la place de \ref : il préfixe automatiquement le mot correspondant au type de cible — « section 3.4 », « Figure 3 », etc. — et transforme l’ensemble en lien. Vous pouvez changer ce mot en redéfinissant \figureautorefname, \sectionautorefname, etc. ; c’est aussi ainsi qu’on le localise en japonais.

L’autre commande, \nameref{key}, insère non pas un numéro mais le texte du titre de la cible (si vous référencez l’étiquette de \section{Introduction}, elle imprime « Introduction »). Utilisez-la quand vous voulez renvoyer par titre plutôt que par numéro. La vue d’ensemble des commandes de renvoi (\ref, \eqref, \cref, etc.) est détaillée sur la page des renvois.

Une configuration complète

Une configuration couramment utilisée en pratique ressemble à ceci. Elle supprime les cadres et colore le texte avec colorlinks=true, définit des couleurs distinctes par type, crée des signets numérotés avec bookmarksnumbered et renseigne les métadonnées. Pour des documents destinés d’abord à l’impression, remplacez la ligne colorlinks=true par hidelinks : les liens deviennent invisibles tout en restant cliquables.

latex
\usepackage{hyperref}
\hypersetup{
  colorlinks=true,        % 枠ではなく文字に色 / color text, not boxes
  linkcolor=blue,         % 内部リンク / internal links
  citecolor=teal,         % 文献引用 / citations
  urlcolor=magenta,       % URL
  bookmarksnumbered=true, % しおりに節番号 / numbered bookmarks
  pdftitle={線形代数の基礎},
  pdfauthor={山田 太郎},
  pdfsubject={講義ノート},
  pdfkeywords={LaTeX, 線形代数, ベクトル空間},
}
% 印刷向けなら colorlinks の行を hidelinks に置き換える
% for print, swap the colorlinks line for: hidelinks