Mauvais lien hypertarget hyperlink avec paramètre dépendant d'un compteur
Je cherche à créer un document de TD sous la forme de 3 parties: énoncés, indications, corrigés.
Chaque exercice est composé d'une commande \exocor `\exocor` avec 3 paramètres qui sont l'énoncé, les indications et le corrigé.
Je souhaite pouvoir faire des liens entre l'énoncé, les indications et le corrigé d'un exercice.
J'ai réussi à créer ceci pour un ou deux exercices en complétant les paramètres des \hypertarget `\hypertarget` et \hyperlink `\hyperlink` à la main, voici l'ECM:
\documentclass[a4paper,11pt]{article}
\usepackage{hyperref}
\usepackage{ifthen}
\newboolean{enonce}
\newboolean{indication}
\newboolean{corrige}
\newcommand{\exocor}[3]{ %énoncé + indications + corrigé :
\ifthenelse{\boolean{enonce}}{#1}{}
\ifthenelse{\boolean{indication}}{#2}{}
\ifthenelse{\boolean{corrige}}{#3}{}
}
\begin{document}
\begin{center}
\exocor{Enoncés}{Indications}{Corrigés}
\end{center}
% inclusion des exercices de mon td
\def\TD{
% début du fichier exercice-01.tex
\exocor{
\hypertarget{eno1}{\textbf{Énoncé}}
\hyperlink{ind1}{\textbf{Lien vers les indications}} -
\hyperlink{cor1}{\textbf{Lien vers les solutions}}
Mon énoncé de l'exercice 1.
}{
\hypertarget{ind1}{\textbf{Indications}}
\hyperlink{eno1}{\textbf{Lien vers l'énoncé}} - \hyperlink{cor1}{\textbf{Lien vers les solutions}}
Mes indications de l'exercice 1.
}{
\hypertarget{cor1}{\textbf{Solutions}}
\hyperlink{eno1}{\textbf{Lien vers l'énoncé}} - \hyperlink{ind1}{\textbf{Lien vers les indications}}
Mon corrigé de l'exercice 1.
}
% Fin du fichier exercice-01.tex
\newpage
% début du fichier exercice-02.tex
\exocor{
\hypertarget{eno2}{\textbf{Énoncé}}
\hyperlink{ind2}{\textbf{Lien vers les indications}} -
\hyperlink{cor2}{\textbf{Lien vers les solutions}}
Mon énoncé de l'exercice 2.
}{
\hypertarget{ind2}{\textbf{Indications}}
\hyperlink{eno2}{\textbf{Lien vers l'énoncé}} -
\hyperlink{cor2}{\textbf{Lien vers les solutions}}
Mes indications de l'exercice 2.
}{
\hypertarget{cor2}{\textbf{Solutions}}
\hyperlink{eno2}{\textbf{Lien vers l'énoncé}} - \hyperlink{ind2}{\textbf{Lien vers les indications}}
Mon corrigé de l'exercice 2.
}
% Fin du fichier exercice-02.tex
}
\setboolean{enonce}{true}
\setboolean{indication}{false}
\setboolean{corrige}{false}
\TD
\newpage
\setboolean{enonce}{false}
\setboolean{indication}{true}
\TD
\newpage
\setboolean{indication}{false}
\setboolean{corrige}{true}
\TD
\end{document}
L'objectif est d'automatiser ceci en faisant appel à un nombre plus conséquent d'exercices et surtout sur beaucoup de TD, ce qui fait que compléter les paramètres pour \hypertarget `\hypertarget` et \hyperlink `\hyperlink` est trop lourd.
J'ai tenté ceci, mais sans succès, les liens sont fantaisistes. Voici un ECM avec 2 exercices (définis à l'aide de \def):
`\def`) :
\documentclass[a4paper,11pt]{article}
\usepackage{hyperref}
\usepackage{ifthen}
\newboolean{enonce}
\newboolean{indication}
\newboolean{corrige}
\newcommand{\exocor}[3]{ %énoncé + indications + corrigé :
\ifthenelse{\boolean{enonce}}{#1}{}
\ifthenelse{\boolean{indication}}{#2}{}
\ifthenelse{\boolean{corrige}}{#3}{}
}
\begin{document}
\begin{center}
\exocor{Enoncés}{Indications}{Corrigés}
\end{center}
\newcounter{en} % 3 compteurs distincts pour les énoncés, indications et corrigés, 1 seul compteur est indenté trop de fois
\newcounter{in}
\newcounter{co}
\def\exercice{
\exocor{% Enoncé
\hypertarget{eno\theen{}}{\textbf{Énoncé}}
\hyperlink{ind\thein{}}{\textbf{Lien vers les indications}} - \hyperlink{cor\theco{}}{\textbf{Lien vers les solutions}}
Mon énoncé de l'exercice \theen{}.
}{ %Indications
\hypertarget{ind\thein{}}{\textbf{Indications}}
\hyperlink{eno\theen{}}{\textbf{Lien vers l'énoncé}} -
\hyperlink{cor\theco{}}{\textbf{Lien vers les solutions}}
Mes indications de l'exercice \thein{}.
}{% Corrigé
\hypertarget{cor\theco{}}{\textbf{Solutions}}
\hyperlink{eno\theen{}}{\textbf{Lien vers l'énoncé}} -
\hyperlink{ind\thein{}}{\textbf{Lien vers les indications}}
Mon corrigé de l'exercice \theco{}.
}
}
\def\TD{
\exocor{
\refstepcounter{en}
}{
\refstepcounter{in}
}{
\refstepcounter{co}
}
\exercice
\newpage
\exocor{
\refstepcounter{en}
}{
\refstepcounter{in}
}{
\refstepcounter{co}
}
\exercice
}
\setboolean{enonce}{true}
\setboolean{indication}{false}
\setboolean{corrige}{false}
\TD
\newpage
\setboolean{enonce}{false}
\setboolean{indication}{true}
\TD
\newpage
\setboolean{indication}{false}
\setboolean{corrige}{true}
\TD
\end{document}