J'aime beaucoup l'option linktocpage du package hyperref qui permet de rendre clickable, depuis la table des matières, le numéro de page correspondant à une section. Depuis peu, ma table des matières ainsi que les localtocs sont incorrectes (migration de la v0.99o à la v0.99p de yathesis).

Voici un ECM, qui reproduit le problème chez moi, mais pas sur Overleaf dont la version de yathesis est trop ancienne pour reproduire le problème.

J'ai reporté le problème sur la page github de yathesis, mais j'aurais bien aimé avoir une solution temporaire.

Ouvrir dans l'éditeur Overleaf
% Document de classe yathesis, en 12 points, interligne un et demi, et version finale
\documentclass[12pt,space=onehalf,version=final]{yathesis}
%
% Chargement manuel de packages (pas déjà chargés par la classe yathesis)
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lipsum} % À proscrire dans un vrai mémoire de thèse !
\usepackage{kpfonts}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{pgfplots}
\usepackage{floatrow}
\usepackage{caption}
\usepackage{listings}
\usepackage{microtype}
\usepackage{varioref}
\usepackage[xindy,quiet]{imakeidx}
\usepackage[autostyle]{csquotes}
\usepackage[backend=biber,safeinputenc]{biblatex}
\usepackage[linktocpage]{hyperref}
\usepackage[xindy,acronyms,symbols]{glossaries}
\usepackage{mwe}
%
% Spécification de la ou des ressources bibliographiques :
%\addbibresource{bibliographie.bib}
\addbibresource{biblatex-examples.bib} % Fournie par biblatex.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Début du document
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Caractéristiques du document
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Préparation des pages de couverture et de titre
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Auteur de la thèse : prénom (1er argument obligatoire), nom (2e argument
% obligatoire) et éventuel courriel (argument optionnel). Les éventuels accents
% devront figurer et le nom /ne/ doit /pas/ être saisi en capitales :
\author[aa@zygo.fr]{Alphonse}{Allais}
\title[Laugh's Chaos]{Le chaos du rire}
\subtitle[Chaos' laugh]{Le rire du chaos}
\academicfield[Mathematics]{Mathématiques}
\speciality[Dynamical systems]{Systèmes dynamiques}
\date{1}{1}{2015}
\submissiondate{1}{10}{2014}
% (Facultatif) Nom (argument obligatoire) du PRES :
\pres[logo=example-image-b]{Université Lille Nord de France}
%
% Nom (argument obligatoire) de l'institut (principal en cas de cotutelle) :
\institute[logo=image,url=http://www.univ-littoral.fr/]{ULCO}
%
%
% (Facultatif) Nom (argument obligatoire) de l'école doctorale :
\doctoralschool[url=http://edspi.univ-lille1.fr/]{ED Régionale SPI 72}
%
% Nom (1er argument obligatoire) et adresse (2e argument obligatoire) du
% laboratoire (ou de l'unité) où la thèse a été préparée, à utiliser /autant de
% fois que nécessaire/ :
\laboratory[
logo=labo,
logoheight=1.25cm,
telephone=(33)(0)3 21 46 55 86,
fax=(33)(0)3 21 46 55 75,
email=secretariat@lmpa.univ-littoral.fr,
url=http://www-lmpa.univ-littoral.fr/
]{LMPA Joseph Liouville}{%
  Maison de la Recherche Blaise Pascal \\
  50, rue Ferdinand Buisson            \\
  CS 80699                             \\
  62228 Calais Cedex                   \\
  France}
%
\supervisor[professor,affiliation=ULCO]{Michel}{de Montaigne}
\cosupervisor[mcf*,affiliation=ULCO]{Charles}{Baudelaire}
\comonitor[mcf,affiliation=ULCO]{Étienne}{de la Boétie}
\referee[professor,affiliation=IHP]{René}{Descartes}
\referee[seniorresearcher,affiliation=CNRS]{Denis}{Diderot}
\committeepresident[professor,affiliation=ENS Lyon]{Victor}{Hugo}
\examiner[mcf,affiliation=Université de Paris~13]{Sophie}{Germain}
\examiner[juniorresearcher,affiliation=INRIA]{Joseph}{Fourier}
\examiner[juniorresearcher*,affiliation=CNRS]{Paul}{Verlaine}
\guest{George}{Sand}
%
% (Facultatif) Mention du numéro d'ordre de la thèse (s'il est connu, ce numéro
% est à spécifier en argument optionnel) :
%\ordernumber[42]
%
% Préparation des mots clés dans la langue principale (1er argument) et dans la
% langue secondaire (2e argument)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\keywords{chaos, rire}{chaos, laugh}
%
% Production des pages de couverture et de titre
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\maketitle
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Début de la partie liminaire de la thèse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{abstract}
  \lipsum[1]
\end{abstract}
\begin{abstract}
  \lipsum[3]
\end{abstract}
%
% Production de la page de résumés :
\makeabstract
%
% Sommaire
\tableofcontents[depth=chapter,name=Sommaire]
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Début de la partie principale (du « corps ») de la thèse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\mainmatter
%
% Premier chapitre
\chapter{Contexte du chaos du rire}
\epigraphhead[30]{\selectlanguage{english}\epigraph{I have not failed. I've
    just found 10.000 ways that won't work.}{Thomas A. Edison}}
Chapitre un.

% Deuxième chapitre
\chapter{Développement}
\label{chap-developpement}

%
\section{Méthode de travail}
\label{sec-methode}
\lipsum[23]
%
\section[Discussion]{Discussion et interprétation des résultats}
\label{sec-discussion}
%
On constate que le titre de cette section est différent de ce qui
apparaît en entête et dans la table des matières : c'est l'argument
optionnel de la commande de sectionnement qui a permis cela.

\lipsum[43-52]
% Troisième chapitre
\chapter{Conclusion}
Dans ce chapitre, nous concluons l'étude du chaos du rire.

\lipsum[26-27]
\section{Une section}
\lipsum[28-29]
\subsection{Une sous-section}
\lipsum[29-31]
\subsubsection{Une sous-sous-section}
\lipsum[31-35]
\paragraph{Un paragraphe}
\lipsum[36-38]
\paragraph{Un sous-paragraphe}
\lipsum[39-41]
\paragraph{Un autre sous-paragraphe}
\lipsum[39-41]
\paragraph{Un autre paragraphe}
\lipsum[36-38]
\subsubsection{Une autre sous-sous-section}
\lipsum[31-35]
\subsection{Une autre sous-section}
\lipsum[29-31]
\section{Une autre section}
\lipsum[28-29]
%
%
% Liste des références bibliographiques
\printbibliography
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Début de la partie finale
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\backmatter
%
% Table des matières
\tableofcontents%[depth=subsection]
%
% (Facultatif) Production de la 4e de couverture :
\makebackcover
%
\end{document}

Posée 28 Jui '18, 18:35

jerome%20dequeker's gravatar image

jerome dequeker
836714
Taux d'acceptation : 65%

Modifiée 28 Jui '18, 18:52

La dernière version de yathesis est 0.99s.

(29 Jui '18, 16:46) touhami touhami's gravatar image
1

À titre de contournement temporaire, cf. https://github.com/dbitouze/yathesis/issues/61.

(04 Jul '18, 13:49) denis ♦♦ denis's gravatar image
1

Problème réglé avec la nouvelle version de etoc disponible par mise à jour de la TeX Live (et, j'imagine, de la MiKTeX).

(05 Jul '18, 11:40) denis ♦♦ denis's gravatar image

Il y a quelque chose qui ne va pas entre l'option linktocpage de l'extension hyperref et la commande \etocsetstyle de etoc. Cette commande est essentielle pour la configuration de la table des matières, mais pour quelqu'un qui n'est pas très exigeant le style de la classe book n'est pas mal.

L'idée de la solution est de redéfinir les commandes \YAD@globalstyle et \YAD@localstyle sans faire appel à la commande \etocsetstyle.

Ouvrir dans l'éditeur Overleaf
\documentclass[localtocs]{yathesis}

\usepackage[T1]{fontenc}
\usepackage{kpfonts}
\usepackage[linktocpage]{hyperref}

\usepackage{mwe}

\makeatletter 
\renewcommand\YAD@globalstyle {% encapsule le style pour les global TOCs
  \etocsettocstyle {\if@twocolumn \@restonecoltrue \onecolumn \else
    \@restonecolfalse \fi
    \parindent\z@ \leftskip\z@skip \rightskip \z@skip
    \setbox\YAD@leaderbox\hbox to \YAD@leaderboxwidth{\hss.\hss}%
    \chapter *[\cmdKV@YAD@name]{\noindent\kern\YAD@leftmargin\relax % uses "pt"...
      \cmdKV@YAD@name%
    }%
    \rightskip \YAD@rightmargin\relax
    \parfillskip -\rightskip % or a smaller value if desired
    \leftskip \YAD@leftmargin \relax } {\if@restonecol \twocolumn
    \fi\cleardoublepage}%
}
\renewcommand\YAD@localstyle {%
  \etocsettocstyle {%
    \if@twocolumn
    \@restonecoltrue
    \onecolumn
    \else
    \@restonecolfalse
    \fi%
    \setbox\YAD@leaderbox\hbox to \YAD@leaderboxwidth{\hss.\hss}%
    \parindent\z@
    \dimen@ 2.25em % soon to be \leftskip
    \renewcommand\addcontentsline[3]{}%
    \section *{\kern\dimen@ % \dimen@ works here by sheer luck
      % \contentsname%
      % \@mkboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}%
      \large\textbf{\translate{lbl-localtocname}}%
    }%
    \let\addcontentsline\YAD@addcontentsline
    \parskip \z@skip \vspace{-1.25\baselineskip}% somewhat ad hoc
    \leftskip 2.25em \rightskip 4.5em \advance\rightskip-\YAD@rightmargin\relax
    \leavevmode\leaders\hrule\@height\p@\hfill\kern\z@\par
    \rightskip 4.5em
    \parfillskip -\YAD@rightmargin\relax%
  }{%
    \nobreak\vskip-.5\baselineskip
    \leavevmode\leaders\hrule\@height\p@\hfill\kern\z@\par
    \bigskip \if@restonecol \twocolumn \fi
  }}
\makeatother

\begin{document}

\maketitle
%
% Sommaire
\tableofcontents[depth=chapter,name=Sommaire]

\mainmatter
\blinddocument
\blinddocument
\blinddocument

\backmatter
%
% Table des matières
\tableofcontents%[depth=subsection]

\end{document}
Lien permanent

Publiée 29 Jui '18, 16:45

touhami's gravatar image

touhami
9.6k410
Taux d'acceptation : 51%

Modifiée 03 Jul '18, 16:22

Lorsque je compile cet ECM, j'ai les localtocs qui apparaissent deux fois, l'une à la suite de l'autre, au début de chaque chapitre.

(01 Jul '18, 15:05) jerome dequeker jerome%20dequeker's gravatar image

@jerome dequeker je suis désolé, réponse modifiée :-) à noter que ce problème ne se pose pas avec la version v1.08l (08ell) de l'extension etoc.

(01 Jul '18, 21:22) touhami touhami's gravatar image

Avec la nouvelle version de la réponse, il n'y a plus de soucis. Super !!

(02 Jul '18, 12:17) jerome dequeker jerome%20dequeker's gravatar image

Avec cette (intéressante) solution, attention au fait que (1) la mise en page des tables des matières est modifiée, légèrement pour celles qui sont globales, moins légèrement pour celles qui sont locales (absence de gras, numéros de page dépassant les filets horizontaux) ; (2) un problème de chevauchement peut se produire, par exemple s'il y a un chapitre 10 contenant une section 10.

(02 Jul '18, 13:59) denis ♦♦ denis's gravatar image

@denis Je ne suis pas confronté à un éventuel problème de chevauchement. Oui, la table des matières et les tables des matières locales sont modifiées, et le problème esthétique qui m'empêche d'utiliser la solution de @touhami (qui répond tout de même à la question) est la taille des filets horizontaux que j'aurais préféré plus longs.

(02 Jul '18, 14:18) jerome dequeker jerome%20dequeker's gravatar image
1

@jerome dequeker et @denis pour le problème des filets, je pense qu'il suffit de remplacer les 2.25em par 1.5em et les 4.5em par 2.5em. Les autres problème sont plus compliqués.

(02 Jul '18, 16:51) touhami touhami's gravatar image
Affichage de 5 parmi 6 Afficher 1 commentaire(s) en plus
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.