Page 1 sur 1

Style dans la table des matières

MessagePosté: Samedi 24 Décembre 2016, 11:28
par KT
Bonjour,

1) La numérotation des sections pour la moitié de mes chapitres commencent par "Exercice X" (cf code). Le problème est que dans les tables des matières (toc, minitoc et parttoc), "Exercice X" se superposent au nom de la section. Comment faire pour que la présentation soit correcte pour ces sections (par exemple, que dans les tables des matières s'affichent "Ex. X" et non comme dans le corps du fichier "Exercice X") ?

2) Le titre des minitoc, "Sommaire" est placé juste au-dessus de cette minitoc. Le titre des parttoc est "Table des matières" et placé avec un grand espace avant la parttoc.
- Comment faire pour changer le titre de la parttoc ?
- Comment faire pour enlever ce grand espace ?

Merci d'avance.

Code: Tout sélectionner
\documentclass[twoside,a4paper,openright,titlepage]{book}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
% Le package Latin Modern installe des polices vectorielle Type 1.
\usepackage{lmodern}
\usepackage[francais]{babel}

\makeatletter
\def\@endpart{\vskip50pt}
\makeatother

\usepackage[french]{minitoc}
\setcounter{minitocdepth}{1}
\setcounter{parttocdepth}{1}

\renewcommand{\beforeparttoc}{\empty}

%Pour que les numérotations des sections, sous-sections... ne contiennent pas le n° de chapitre et numérotation spéciale pour les Exercices
\newcommand{\typecours}[0]{
   \renewcommand{\thesection}{\arabic{section}}
   \renewcommand{\thesubsection}{\arabic{section}.\arabic{subsection}}
}
\newcommand{\typeexo}[0]{
   \renewcommand{\thesection}{\textbf{Exercice~\arabic{section}}}
   \renewcommand{\thesubsection}{\arabic{subsection}}
}

\title{Essai}
\author{Testeur}
\date{2016 - 2017}
 
\begin{document}
 
% le titre
\maketitle
 
% preparation des minitocs
\dominitoc

\frontmatter

\mainmatter
% inclusion des chapitres

\doparttoc
\dominitoc

\part[Petit titre]
   {Titre long de la 1e partie}
\parttoc

\chapter{Le cours}
\typecours

\minitoc

\section{Section}
\subsection{Une sous-section}
Nam metus nibh, imperdiet eget gravida sed, consequat eu nulla. Donec massa mauris, luctus vitae auctor non, sagittis non sapien.
Donec interdum pretium venenatis. Pellentesque aliquam convallis convallis.

\chapter{Les exercices}
\typeexo

\minitoc

\section{Section}
\subsection{Une sous-section}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Donec interdum pretium venenatis. Pellentesque aliquam convallis convallis.

\section{Section}
\subsection{Une sous-section}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.

\section{Section}
\subsection{Une sous-section}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.

\part{Titre de la 2e partie}

\chapter{Le cours}
\typecours

\minitoc

\section{Section}
\subsection{Une sous-section}
Nam metus nibh, imperdiet eget gravida sed, consequat eu nulla. Donec massa mauris, luctus vitae auctor non, sagittis non sapien.
Donec interdum pretium venenatis. Pellentesque aliquam convallis convallis.

\chapter{Les exercices}
\typeexo

\minitoc

\section{Section}
\subsection{Une sous-section}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Donec interdum pretium venenatis. Pellentesque aliquam convallis convallis.

\section{Section}
\subsection{Une sous-section}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.

\section{Section}
\subsection{Une sous-section}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.

\appendix

\backmatter

% table des matieres generale
\tableofcontents

\end{document}


Re: Style dans la table des matières

MessagePosté: Samedi 24 Décembre 2016, 21:38
par touhami
Bon jour.
KT a écrit:...
1) La numérotation des sections pour la moitié de mes chapitres commencent par "Exercice X" (cf code). Le problème est que dans les tables des matières (toc, minitoc et parttoc), "Exercice X" se superposent au nom de la section. Comment faire pour que la présentation soit correcte pour ces sections (par exemple, que dans les tables des matières s'affichent "Ex. X" et non comme dans le corps du fichier "Exercice X") ?
...

Ce n'est pas simple, on peut par exemple écrire
Code: Tout sélectionner
\newif\ifexo
\renewcommand{\thesection}{\arabic{section}}
\renewcommand{\thesubsection}{\ifexo\else\arabic{section}.\fi\arabic{subsection}}

\newcommand{\typecours}{\exofalse}
\newcommand{\typeexo}{\exotrue}

\makeatletter
\renewcommand\@seccntformat[1]{%
    \expandafter\ifx\csname c@#1\endcsname\c@section\ifexo Exercice \fi\fi
    \csname the#1\endcsname\quad}
   
\patchcmd\@sect{\csname the#1\endcsname}{\expandafter\ifx\csname c@#1\endcsname\c@section\ifexo Ex. \fi\fi\csname the#1\endcsname}{}{}

\renewcommand*\l@section{\@dottedtocline{1}{1.5em}{2.8em}}
\renewcommand*\l@subsection{\@dottedtocline{2}{4.2em}{3.2em}}
\makeatother


KT a écrit:...
2) Le titre des minitoc, "Sommaire" est placé juste au-dessus de cette minitoc. Le titre des parttoc est "Table des matières" et placé avec un grand espace avant la parttoc.
- Comment faire pour changer le titre de la parttoc ?
...


Code: Tout sélectionner
\renewcommand{\ptctitle}{LE Titre DE Parttoc}

KT a écrit:...
- Comment faire pour enlever ce grand espace ?
...

Code: Tout sélectionner
\makeatletter   
\patchcmd\parttoc@{\\\hline}{\\[-2cm]\hline}{}{}
\makeatother

Remarque Il faut charger le package etoolbox pour pouvoir utiliser la commande
Code: Tout sélectionner
\patchcmd


ECM
Code: Tout sélectionner
\documentclass[twoside,a4paper,openright,titlepage]{book}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[francais]{babel}
\usepackage{etoolbox}

\makeatletter
\def\@endpart{\vskip50pt}
\makeatother

\usepackage[french]{minitoc}
\setcounter{minitocdepth}{1}
\setcounter{parttocdepth}{1}



\renewcommand{\beforeparttoc}{\empty}
\renewcommand{\ptctitle}{LE Titre DE Parttoc}
\makeatletter   
\patchcmd\parttoc@{\\\hline}{\\[-2cm]\hline}{}{}
\makeatother


\newif\ifexo
\renewcommand{\thesection}{\arabic{section}}
\renewcommand{\thesubsection}{\ifexo\else\arabic{section}.\fi\arabic{subsection}}

\newcommand{\typecours}{\exofalse}
\newcommand{\typeexo}{\exotrue}

\makeatletter
\renewcommand\@seccntformat[1]{%
    \expandafter\ifx\csname c@#1\endcsname\c@section\ifexo Exercice \fi\fi
    \csname the#1\endcsname\quad}
   
\patchcmd\@sect{\csname the#1\endcsname}{\expandafter\ifx\csname c@#1\endcsname\c@section\ifexo Ex. \fi\fi\csname the#1\endcsname}{}{}

\renewcommand*\l@section{\@dottedtocline{1}{1.5em}{2.8em}}
\renewcommand*\l@subsection{\@dottedtocline{2}{4.2em}{3.2em}}
\makeatother

\title{Essai}
\author{Testeur}
\date{2016 - 2017}
 
\begin{document}
 
% le titre
\maketitle
 
% preparation des minitocs
\dominitoc

\frontmatter

\mainmatter
% inclusion des chapitres

\doparttoc
\dominitoc

\part[Petit titre]
   {Titre long de la 1e partie}
\parttoc

\chapter{Le cours}
\typecours

\minitoc

\section{Section}
\subsection{Une sous-section}
Nam metus nibh, imperdiet eget gravida sed, consequat eu nulla. Donec massa mauris, luctus vitae auctor non, sagittis non sapien.
Donec interdum pretium venenatis. Pellentesque aliquam convallis convallis.

\chapter{Les exercices}
\typeexo

\minitoc

\section{Section}
\subsection{Une sous-section}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Donec interdum pretium venenatis. Pellentesque aliquam convallis convallis.

\section{Section}
\subsection{Une sous-section}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.

\section{Section}
\subsection{Une sous-section}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.

\part{Titre de la 2e partie}

\chapter{Le cours}
\typecours

\minitoc

\section{Section}
\subsection{Une sous-section}
Nam metus nibh, imperdiet eget gravida sed, consequat eu nulla. Donec massa mauris, luctus vitae auctor non, sagittis non sapien.
Donec interdum pretium venenatis. Pellentesque aliquam convallis convallis.

\chapter{Les exercices}
\typeexo

\minitoc

\section{Section}
\subsection{Une sous-section}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Donec interdum pretium venenatis. Pellentesque aliquam convallis convallis.

\section{Section}
\subsection{Une sous-section}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.

\section{Section}
\subsection{Une sous-section}
Lorem ipsum dolor sit amet, consectetur adipiscing elit.

\appendix

\backmatter

% table des matieres generale
\tableofcontents

\end{document}