Mon document est composé de plusieurs parties puis d'une bibliographie, d'annexes et d'une table des matières. Chaque partie commence par une table des matières partielle, reprenant le contenu de la partie en question, créée avec minitoc (seul package de génération de table des matières à priori compatible avec la classe yathesis utilisée ici).

Mon problème se situe au niveau de la table des matières de la dernière partie : la bibliographie et tout ce qui suit est répertorié dedans, comme si tout cela appartenait à la même partie.

Avec l'ECM ci-dessous (ne faisant pas appel à yathesis pour simplifier le code), l'annexe est ainsi listée dans la table des matières de la partie 1.

Ouvrir dans l'éditeur
\documentclass{book}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\usepackage{lipsum}
\usepackage{minitoc}

\begin{document}

    \doparttoc
    \tableofcontents

    \chapter*{Introduction}
        \lipsum

    \part{Titre partie 1}
        \parttoc
        \chapter{Titre chapitre 1}
            \section{Titre section 1.1}
                \lipsum

\appendix

    \chapter{Titre annexe}
        \lipsum

\end{document}

Pour indiquer que ce qui suit la partie 1 constitue une autre partie, j'ai ajouté une partie fantôme avant \appendix :

Ouvrir dans l'éditeur
\documentclass{book}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{hyperref}
\usepackage{lipsum}
\usepackage{minitoc}

\begin{document}

    \doparttoc
    \tableofcontents

    \chapter*{Introduction}
        \lipsum

    \part{Titre partie 1}
        \parttoc
        \chapter{Titre chapitre 1}
            \section{Titre section 1.1}
                \lipsum

\part*{}
\appendix

    \chapter{Titre annexe}
        \lipsum

\end{document}

L'annexe n'est plus listée mais cela rajoute une page blanche entre la fin de la partie 1 et l'annexe :

  • comment puis-je la supprimer ?
  • y a-t-il une autre solution ?

Posée 03 Nov '15, 16:57

pirouette's gravatar image

pirouette
53125
Taux d'acceptation : 0%

Modifiée 09 Nov '15, 16:11

@pirouette Pourquoi les ECM ne font-ils pas appel à la classe yathesis ?

(03 Nov '15, 18:35) denis ♦♦ denis's gravatar image

@denis J'ai raccourci au minimum le code en supposant que l'utilisation de yathesis n'avait pas d'influence.

(03 Nov '15, 18:52) pirouette pirouette's gravatar image

@pirouette OK mais, dans ce cas, mieux vaut ne pas mentionner yathesis dans la question car cela brouille un peu les pistes (il t'est possible d'éditer ta question pour la peaufiner).

(03 Nov '15, 19:05) denis ♦♦ denis's gravatar image

@pirouette Je vous conseille d'utiliser le package etoc qui est bien plus pratique que minitoc et qui permet, entre autres, de faire ce que vous souhaitez.

(09 Nov '15, 14:26) Paul Gaborit Paul%20Gaborit's gravatar image

@Paul Gaborit Le problème est que, sauf erreur de ma part, pirouette veut /in fine/ appliquer cela à la classe yathesis qui, pour l'instant, n'est pas compatible avec etoc.

(09 Nov '15, 15:07) denis ♦♦ denis's gravatar image

@Paul Gaborit Je confirme que j'utilise la classe yathesis, non compatible avec etoc tant qu'une mise à jour n'est pas faite (@denis dans quel délai peut-on espérer l'avoir ?). J'ai remodifié ma question pour mentionner yathesis.

(09 Nov '15, 16:15) pirouette pirouette's gravatar image
1

@pirouette Je compte me pencher à nouveau dessus à partir de début janvier.

(09 Nov '15, 16:26) denis ♦♦ denis's gravatar image
Affichage de 5 parmi 7 Afficher 2 commentaire(s) en plus

Bonjour, l'idée et d'ajuter une partie (vide) à la table des matière puis ajuster les mini-tables, ici \addvspace{-3.6em plus 1pt} pour supprimer l'espace vertical inséré par l'entrée partie ce n'est pas une valeur exact j'ai tester.

Edit comme il y a appelle au package hyperref, la command prend la forme

Ouvrir dans l'éditeur
\newcommand{\mtendptc}{%
\addtocontents{toc}{\protect\contentsline {part}{\addvspace{-3.6em plus 1pt}}{}{}}
\adjustptc}

code compler

Ouvrir dans l'éditeur
\documentclass{book}
\usepackage{minitoc}

\newcommand{\mtendptc}{%
\addtocontents{toc}{\protect\contentsline {part}{\addvspace{-3.6em plus 1pt}}{}{}}
\adjustptc}

\begin{document}
\doparttoc
\tableofcontents
\part{One}
\parttoc
\chapter{Foo}
\chapter{Bar}
\chapter{Baz}
\part{two}
\parttoc
\chapter{Foo two}

\mtendptc

\chapter{Bar two}
\chapter{Baz two}

\part{End}
\parttoc
\chapter{End}
\end{document}
Lien permanent

Publiée 14 Nov '15, 23:07

touhami's gravatar image

touhami
9.7k410
Taux d'acceptation : 51%

Modifiée 14 Nov '15, 23:17

Les parties, comme les chapitres, sections, etc., sont réputées se poursuivre jusqu'à ce qu'une nouvelle partie ou la fin du document soient rencontrées et ce, quels que soient les chapitres rencontrés en chemin.

Donc, ici, je pense que le mieux est de créer une nouvelle partie intitulée « Annexes », ce qui est d'ailleurs cohérent avec le fait que ces annexes ne sont pas un chapitre de, et donc pas propres à la dernière partie.

Lien permanent

Publiée 03 Nov '15, 19:08

denis's gravatar image

denis ♦♦
7.0k1510
Taux d'acceptation : 52%

Cela pourrait à la rigueur convenir si cela ne concernait que des annexes, mais il y a également la bibliographie et la table des matières, je ne veux pas ajouter une partie pour chacun (ni les contenir dans une même partie, ce n'est pas cohérent).

(03 Nov '15, 19:19) pirouette pirouette's gravatar image

@pirouette Je crois que Denis a raison. Si votre document est organisé par partie, vous pourriez en avoir une à la fin qui contient tous les éléments non contenus ailleurs, je ne vois pas le problème et en quoi c'est incohérent.

(04 Nov '15, 16:00) pluton pluton's gravatar image

@pluton Avec comme titre de partie "tous les éléments non contenus ailleurs" ? Je vois une partie comme un ensemble de chapitres traitant du même sujet, pas un fourre-tout. Ma solution actuelle (\part*{}) revient au final à cela au niveau du code latex, mais ce n'est pas visible pour le lecteur.

(04 Nov '15, 18:19) pirouette pirouette's gravatar image

Pourquoi n'aurait-on pas le droit de placer des chapitres après la dernière partie alors qu'on peut en placer avant la première partie ?

(08 Nov '15, 20:01) Paul Gaborit Paul%20Gaborit's gravatar image

@denis Par défaut, le commentaire s'adresse au rédacteur de la question ou de la réponse sous laquelle est placé ce commentaire, non ?

(09 Nov '15, 10:30) Paul Gaborit Paul%20Gaborit's gravatar image

@Paul Gaborit Si le commentaire s'adressait à moi, je ne le comprends pas.

Je voudrais justement que le contenu placé après la dernière partie ait le même statut que ceux placés avant le début de la première partie : par exemple, le chapitre d'introduction n'est pas dans une partie.

(09 Nov '15, 12:34) pirouette pirouette's gravatar image

@pirouette Mon commentaire étant sous la réponse de @denis, il s'adressait donc à lui puisque je n'indiquais rien d'autre...

(09 Nov '15, 13:26) Paul Gaborit Paul%20Gaborit's gravatar image

@Paul Gaborit Ah, désolé, j'avais cru que le commentaire s'adressait @pirouette.

(09 Nov '15, 15:04) denis ♦♦ denis's gravatar image

@Paul Gaborit On a tout à fait le droit de placer des chapitres après la dernière partie mais la situation n'est pas symétrique vis à vis de ceux qui se trouvent avant la première partie : ceux-ci n'appartiennent à aucune partie, tandis que ceux après la dernière partie appartiennent conceptuellement à cette dernière partie, celle-ci ne s'arrêtant qu'à la fin du document.

(09 Nov '15, 15:15) denis ♦♦ denis's gravatar image

@denis Les chapitres avant la première partie ne sont dans aucune partie alors que ceux qui sont après la dernière partie sont donc obligatoirement dans cette dernière partie.

Dans une classe bien faite (et avec des packages corrects), tous les chapitres placés après un appel à \backmatter ne devraient pas être dans une partie commencée avant l'appel à \backmatter.

Tant qu'on n'utilise pas minitoc et/ou les bookmarks PDF (heureusement pour eux, on peut utiliser \bookmarksetup{startatroot} qui vient avec le package bookmark), cela ne se voit pas... mais c'est quand même mal fait.

(09 Nov '15, 15:26) Paul Gaborit Paul%20Gaborit's gravatar image

@denis D'où ma suggestion d'utiliser etoc qui permet de gérer cela beaucoup plus finement et intelligemment que minitoc... et, qui plus est, avec un seul fichier externe (le seul fichier .toc).

(09 Nov '15, 15:28) Paul Gaborit Paul%20Gaborit's gravatar image
1

@Paul Gaborit À ce titre, même la classe book est mal faite : si \backmatter précède \appendix dans le 1er code donné par pirouette, la minitoc de la partie I contient néanmoins le chapitre inséré après \appendix. Il s'agit donc plutôt d'un défaut du package minitoc. Plus généralement, si les fins des éléments (parties, chapitres, sections, etc.) n'étaient pas implicites (début d'un élément de niveau supérieur ou égal à celui en cours) mais explicites (sous la forme d'environnement : \begin{part}...\end{part} par exemple), les choses seraient plus claires.

(09 Nov '15, 15:46) denis ♦♦ denis's gravatar image

@denis Oui, les classes LaTeX sont mal pensées sur ce point : puisqu'elles autorisent des chapitres ou des sections en dehors d'une partie, elle devrait fournir un moyen de stopper une partie (via une commande \endpart par exemple). De là, tous les packages qui gèrent des tables des matières pourraient s'en servir (minitoc, etoc, hyperref, bookmark, etc.).

(11 Nov '15, 17:59) Paul Gaborit Paul%20Gaborit's gravatar image

@Paul Gaborit Les classes koma-script sont peut-être recommandées alors. Sinon, est-il envisageable de mettre à jour la classe book pour apporter cette amélioration ?

(11 Nov '15, 20:44) pluton pluton's gravatar image
Affichage de 5 parmi 15 Afficher 10 commentaire(s) en plus

Pour sortir les derniers chapitres d'un document de la dernière partie dans les marque-pages PDF (une table des matières affichée par le viewer PDF), vous pouvez utiliser le package bookmark et faire appel à sa commande \bookmarksetup.

Exemple :

Ouvrir dans l'éditeur
\documentclass{book}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lipsum}
\usepackage{hyperref}
\usepackage{bookmark}
\usepackage{minitoc}
\begin{document}

\doparttoc
\tableofcontents

\chapter*{Introduction}
\lipsum

\part{Titre partie 1}
\parttoc
\chapter{Titre chapitre 1}
\section{Titre section 1.1}
\lipsum

\bookmarksetup{startatroot}
\appendix

\chapter{Titre annexe}
\lipsum

\end{document}
Lien permanent

Publiée 08 Nov '15, 19:59

Paul%20Gaborit's gravatar image

Paul Gaborit
2.0k16
Taux d'acceptation : 32%

Modifiée 08 Nov '15, 20:02

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.