Mettre \hypertarget dans la table des matières

Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex.
[participation réservée aux utilisateurs inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
toth
Utilisateur confirmé
Utilisateur confirmé
Messages : 19
Inscription : mardi 17 août 2010, 12:07
Statut actuel : Enseignant

Mettre \hypertarget dans la table des matières

Message non lu par toth »

bonjour à tous,
je souhaiterais intégrer une ancre de type \hypertarget{tablematieres} au début de ma table des matières (générée avec \tableofcontents) de manière à ce que je puisse y référer tout le long de mon document grâce à \hyperlink{tablematieres}.
J'ai bien regardé le manuel de hyperref et je n'ai pas réussi à intégrer le moindre hyperlien dans cette table des matières.
Quelqu'un aurait-il une solution à me proposer ?
Bien cordialement,
toth
version latex : Texlive2018 / compilation : lualatex / éditeur : texstudio
pg
Modérateur spécialisé
Modérateur spécialisé
Messages : 2613
Inscription : vendredi 15 juin 2007, 00:31

Re: mettre \hypertarget dans la table des matières

Message non lu par pg »

\hypertarget et \hyperlink prennent *deux* arguments : un nom interne et le texte affiché. Par exemple, on met \hypertarget{toc}{} avant la table des matières puis on y fait référence avec \hyperlink{toc}{Table des matières} :

Code : Tout sélectionner

\documentclass{book}

\usepackage{blindtext}% pour du texte bidon

\usepackage{hyperref}

\title{Titre}
\author{moi}

\begin{document}

\maketitle

\cleardoublepage
\hypertarget{toc}{}
\tableofcontents

\Blinddocument

Voir la \hyperlink{toc}{Table des mati\`eres}.

\end{document}
toth
Utilisateur confirmé
Utilisateur confirmé
Messages : 19
Inscription : mardi 17 août 2010, 12:07
Statut actuel : Enseignant

Re: mettre \hypertarget dans la table des matières

Message non lu par toth »

bonjour,
effectivement \hypertarget et \hyperlink prennent *deux* arguments je ne l'avais pas précisé dans mon post mais dans mon code j'en mets bien deux.
J'ai essayé de compiler le code que tu m'as donné et j'ai eu exactement le même pb que dans mon document à savoir que le \hypertarget crée une page avant la table des matières juste pour créer l'ancre de la cible et que c'est vers cette page que renvoie le \hyperlink.
J'ai également essayé : \addtocontents{toc}{\hypertarget{toc}{~}} sans plus de succès, le code refuse de compiler.
version latex : Texlive2018 / compilation : lualatex / éditeur : texstudio
pg
Modérateur spécialisé
Modérateur spécialisé
Messages : 2613
Inscription : vendredi 15 juin 2007, 00:31

Re: mettre \hypertarget dans la table des matières

Message non lu par pg »

?????

Le code que j'ai donné ne crée aucune page blanche indésirable avant la table des matières (en mode book, c'est normal qu'il y ait une page blanche avant la table des matières) et renvoie au bon endroit. Voici le PDF pour preuve :
link_to_toc.pdf
(127.93 Kio) Téléchargé 241 fois
\addtocontents{toc}{\hypertarget{toc}{~}} ne peut pas marcher. Avec un \protect devant \hypertarget, c'est mieux (mais il y a toujours une erreur de missing item).
toth
Utilisateur confirmé
Utilisateur confirmé
Messages : 19
Inscription : mardi 17 août 2010, 12:07
Statut actuel : Enseignant

Re: mettre \hypertarget dans la table des matières

Message non lu par toth »

ce que tu dis est assez intéressant, ca signifie que l'origine du pb n'est pas tout à fait où je le pensais. Pour pouvoir compiler ton exemple j'ai dû rajouter dans l'entête \usepackage[francais]{babel}, pourquoi ça je ne sais pas...
Quoi qu'il en soit, le document .pdf alors généré est alors un document avec deux pages blanches en plus de celle crée par le mode book. (je ne peux pas joindre de fichier à mon post pour illustrer mon propos). D'où ma remarque.

Ceci étant dit, j'ai trouvé une autre solution, rajouter une section et un label juste avant ma table des matières :

Code : Tout sélectionner

\phantomsection\label{toc}
\tableofcontents
et le lien à utiliser est alors :

Code : Tout sélectionner

 \hyperref[toc]{text}
Merci pour les explications et la rapidité !
toth
version latex : Texlive2018 / compilation : lualatex / éditeur : texstudio