Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Personnaliser des tables et sous-tables des matières

1,146 views
Skip to first unread message

Olivier V

unread,
Aug 29, 2017, 5:55:01 AM8/29/17
to
Bonjour,

Je souhaite personnaliser ma table des matières principale et celle qui
doit apparaître à chaque début de chapitre.

Après pas mal de bricolages, inspirés de https://tex.stackexchange.com/,
je suis arrivé à l'ECM ci-dessous qui me convient visuellement mais
présente deux petites choses que je n'arrive pas à corriger :
- si j'utilise "\dottedcontents{chapter}[3em]{}{1.3em}{.6em}", il n'y a
pas de lien sur les numéros "1" et "2" qui apparaissent respectivement
devant "C1" ET "C2" dans la table des matières principale
- si j'utilise
"\renewcommand*{\l@chapter}{\@dottedtocline{0}{0.5in}{0.2in}}", un lien
parasite vers le chapitre suivant apparaît dans la sous-table des
matières en début de chapitre.

Comment rectifier cela ?

Par ailleurs j'ai quelques questions complémentaires, si vous avez un
peu de temps pour y répondre :
1.a. Les longueurs d'indentation et de décalage des étiquettes passés à
\@dottedtocline dans book.cls sont visibles à partir de \l@section et
tous les niveaux inférieurs. Quels sont-ils pour \l@part et \l@chapter ?
1.b. Même question dans article.cls pour \l@part et \@section
2. Dans la table des matières principale, comment pourrais-je faire pour
avoir des pointillés également dans la table des matières principale au
niveau des \part ?
3. Dans la table des matières principale, comment faire pour que "Partie
1" et "Partie 2" soient alignés verticalement en ne dépendant pas de la
longueur de leurs étiquettes I et II, tout en conservant l'indentation
des \chapter sous la lettre P et les sauts de lignes comme ils sont ?

Merci beaucoup !

Olivier V



\documentclass[a4paper,11pt,oneside]{book}

%compilation XeLaTeX
\usepackage[tuenc]{fontspec}
%
%compilation LaTeX
%\usepackage[utf8]{inputenc}
%\usepackage[T1]{fontenc}

\usepackage[french]{babel}

\usepackage{titlesec,titletoc}

\usepackage[bookmarks=true,bookmarksnumbered=true,pdfstartview=FitH,pdfpagelayout=SinglePage,urlcolor=magenta,pdfborder={0
0 0},colorlinks=true,linktoc=all]{hyperref}

\dottedcontents{chapter}[3em]{}{1.3em}{.6em} %BUG pas de lien sur numéro
\makeatletter
%\renewcommand*{\l@chapter}{\@dottedtocline{0}{0.5in}{0.2in}} %BUG en
sous toc
\makeatother

\begin{document}


\tableofcontents
\addtocontents{toc}{\protect\setcounter{tocdepth}{0}}

\titleformat{\chapter}
{\normalfont\Huge\bfseries\boldmath}
{Chapitre \arabic{chapter} :}
{1em}
{}
\titlespacing*{\chapter}{0pt}{0pt}{30pt}

\makeatletter
\renewcommand*\l@section{\@dottedtocline{1}{0em}{1.7em}}%alignement à
gauche des sous-toc
\makeatother

\part{Partie 1}

\chapter{C1}

\startcontents[chapters]
\printcontents[chapters]{}{1}{\addtocontents{ptc}{\protect\setcounter{tocdepth}{1}}}

\section{S1}

\section{S2}

\section{S3}

Blabla

\chapter{C2}

\startcontents[chapters]
\printcontents[chapters]{}{1}{\addtocontents{ptc}{\protect\setcounter{tocdepth}{1}}}

Blabla

\part{Partie 2}

\end{document}

Olivier V

unread,
Sep 2, 2017, 5:28:06 AM9/2/17
to
Personne n'a une idée, svp ?

Merci.

Olivier V

Jean-Yves Baudais

unread,
Sep 13, 2017, 11:41:17 AM9/13/17
to
Bonjour,

Y'aurait pas un problème de compatibilité entre hyperref et titletoc ?

Le 02/09/2017 à 11:28, Olivier V a écrit :
> Le 29/08/2017 à 11:54, Olivier V a écrit :
>> [...]
> Personne n'a une idée, svp ?


Je note le comportement bizarre avec l'ECM suivant

\documentclass[a4paper]{article}
\usepackage[bookmarksnumbered,colorlinks]{hyperref}
\usepackage{titletoc}
\titlecontents{part}[0pt]{}{\thecontentslabel\ }{}{}
\titlecontents{section}[0pt]{}{\thecontentslabel\ }{}{}
\titlecontents{subsection}[0pt]{}{\thecontentslabel\ }{}{}
\begin{document}
\tableofcontents
\part{P1}
\section{S1}
\subsection{Sub1}
\subsection{Sub2}
\section{S2}
\part{P1}
\end{document}

La redéfinition de "section" et "subsection" supprime le lien (et la
couleur) de leur numéro dans la toc. Ce n'est pas le cas avec "part".
Bon, en même temps, "part" n'est pas traité comme une autre commande de
sectionnement. Bref, ça ne change rien si "hyperref" est chargé après
"titletoc".

Jean-Yves

--
Faudrait peut-être leur dire, espèce de vicieux, que tu traînes sur
fctt ! Un de ces quatre, on aura le droit à un message du type.
Scusez, mon prof de math (D.B.) est une sorte de pervers qui nous
oblige à utiliser ses outils moyenâgeux. Ne pouvant plus utiliser
Word, je me tourne vers vous en désespoir de cause et en maudissant ce
%@#& de prof à la @!%£.
-+- Jean-Côme in fr.comp.text.tex -+-

Jean-Yves Baudais

unread,
Sep 13, 2017, 12:06:36 PM9/13/17
to
Autre bizarrerie (enfin, pour moi) : si j'ajoute à la main une ligne
dans la toc et ben ça marche bien. Bigre ! Voici l'ECM

\documentclass[a4paper]{article}
\usepackage{titletoc}
\titlecontents{subsection}[0pt]{}{\thecontentslabel\ }{}{}
\usepackage[bookmarksnumbered,colorlinks]{hyperref}
\begin{document}
\tableofcontents
\part{P1}
\section{S1}
\subsection{Sub1}
\subsection*{1.2 Sub2}
\addcontentsline{toc}{subsection}{\numberline{1.2} Sub2}
\section{S2}
\part{P1}
\end{document}

Au moins, en faisant comme ça, on est sûr que "\numberline{1.2}" et
"Sub2" ne sont pas séparés pour faire le lien, ce qui n'est pas le cas
en passant par "titletoc".

Jean-Yves-qui-n'a-toujours-pas-une-once-d'explication

--
On peut toujours se faire un essai bête : choisir une fonte pas trop
déguelasse, inclure les paroles "c'est la lutt-euuuuh final-euuuh"
et si le "fi" de final a sa ligature, je commencerai à parier de
l'argent sur l'intervention de LaTeX dans l'histoire.

Olivier V

unread,
Sep 14, 2017, 1:53:55 PM9/14/17
to
Le 13/09/2017 à 18:06, Jean-Yves Baudais a écrit :
> Autre bizarrerie (enfin, pour moi) : si j'ajoute à la main une ligne
> dans la toc et ben ça marche bien. Bigre ! Voici l'ECM
>
> \documentclass[a4paper]{article}
> \usepackage{titletoc}
> \titlecontents{subsection}[0pt]{}{\thecontentslabel\ }{}{}
> \usepackage[bookmarksnumbered,colorlinks]{hyperref}
> \begin{document}
> \tableofcontents
> \part{P1}
> \section{S1}
> \subsection{Sub1}
> \subsection*{1.2 Sub2}
> \addcontentsline{toc}{subsection}{\numberline{1.2} Sub2}
> \section{S2}
> \part{P1}
> \end{document}
>
> Au moins, en faisant comme ça, on est sûr que "\numberline{1.2}" et
> "Sub2" ne sont pas séparés pour faire le lien, ce qui n'est pas le cas
> en passant par "titletoc".
>
> Jean-Yves-qui-n'a-toujours-pas-une-once-d'explication
>

Bonjour,

Merci pour ces explications.
Enfin quelqu'un qui s'intéresse à mon problème :)
Je regarde ça dans le week-end sur mon exemple complet et vous tiendrai
informé !

Olivier V

Olivier V

unread,
Sep 14, 2017, 2:06:31 PM9/14/17
to
Le 14/09/2017 à 19:53, Olivier V a écrit :
> Le 13/09/2017 à 18:06, Jean-Yves Baudais a écrit :
>> Autre bizarrerie (enfin, pour moi) : si j'ajoute à la main une ligne
>> dans la toc et ben ça marche bien. Bigre ! Voici l'ECM
>>
>> \documentclass[a4paper]{article}
>> \usepackage{titletoc}
>> \titlecontents{subsection}[0pt]{}{\thecontentslabel\ }{}{}
>> \usepackage[bookmarksnumbered,colorlinks]{hyperref}
>> \begin{document}
>> \tableofcontents
>> \part{P1}
>> \section{S1}
>> \subsection{Sub1}
>> \subsection*{1.2 Sub2}
>> \addcontentsline{toc}{subsection}{\numberline{1.2} Sub2}
>> \section{S2}
>> \part{P1}
>> \end{document}
>>
>> Au moins, en faisant comme ça, on est sûr que "\numberline{1.2}" et
>> "Sub2" ne sont pas séparés pour faire le lien, ce qui n'est pas le cas
>> en passant par "titletoc".
>>
>> Jean-Yves-qui-n'a-toujours-pas-une-once-d'explication

Alors je viens de compiler rapidement : l'espacement entre l'étiquette
et le titre de la subsection 1.2 n'est plus correcte dans le texte avec
ce "correctif".

Olivier V

Jean-Yves Baudais

unread,
Sep 15, 2017, 5:25:01 AM9/15/17
to
Bonjour,

Le 14/09/2017 à 20:06, Olivier V a écrit :
> Alors je viens de compiler rapidement : l'espacement entre l'étiquette
> et le titre de la subsection 1.2 n'est plus correcte dans le texte avec
> ce "correctif".


Oui, oui, y'a pas le bon formatage de l'étiquette. C'était juste un test
pour voir ce qui ce passe. [Quelques temps plus tard.] Les commandes de
sectionnements ajoutent \numberline dans le fichier aux et c'est là le
problème avec titletoc. (Cela dit, je ne sais pas bien utiliser ce
module.) Voici un ECM

\documentclass[a4paper]{article}
\usepackage{titletoc}
\titlecontents{subsection}[0pt]{}{\thecontentslabel\ }{}{}
\usepackage{hyperref}
\begin{document}
\tableofcontents
\section{S1}
\subsection{Sub1}
\addcontentsline{toc}{subsection}{\protect\numberline{1.2} Sub2}
\addcontentsline{toc}{subsection}{\numberline{1.3} Sub3}
\end{document}

ce qui donne les lignes suivantes pour les "subsection" dans le fichier
.aux

\@writefile{toc}{\contentsline {subsection}{\numberline
{1.1}Sub1}{1}{subsection.1.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}
Sub2}{1}{subsection.1.1}}
\@writefile{toc}{\contentsline {subsection}{\hbox to\@tempdima {1.3\hfil
} Sub3}{1}{subsection.1.1}}

et où il y a "numberline" et une redéfinition de la mise en forme avec
"titlecontents" le lien disparaît...

Jean-Yves

--
<Jean-Côme> Josselin ? Un autre ? Au secours ! Viens en aide à un
pauvre vieux qui perd la mémoire.
<Joss> Moi c'est encore plus terrible, je ne me rappelle pas cette
extension et pourtant j'ai quelques années de moins que toi.
-+- in fr.comp.text.tex -+-

Jean-Yves Baudais

unread,
Sep 15, 2017, 6:14:13 AM9/15/17
to
En décortiquant j'arrive à un autre problème, je poste sur un autre fil.


Jean-Yves

--
<Phil> XEmacs pour être plus godriole ?
<Alexandre P.> Tant que cela ne sera pas XXXEmacs, je ne toucherai pas
à ces bestioles !
-+- in fr.comp.text.tex -+-

Jean-Yves Baudais

unread,
Sep 15, 2017, 7:18:16 AM9/15/17
to
Le 15/09/2017 à 12:14, Jean-Yves Baudais a écrit :
> En décortiquant j'arrive à un autre problème, je poste sur un autre fil.


Pour revenir au problème d'origine, il est écrit dans la doc de
titlesec-titletoc : "Titlesec [...] runs smoothly with hyperref" mais
y'a rien pour titletoc. (Avant vérification, je pensais que ça voulait
dire que ça marche doucement ! Pfff, mdr :-) Est-ce une absence
d'information volontaire, l'auteur a bien voulu parler de titlesec et
pas de titletoc, ou est-ce un raccourci, l'auteur par économie écrit
parfois titlesec en sous-entendant titlesec-titletoc ?

Jean-Yves

--
Ah mais je réimprime et je réencadre : Voir sur sa machine un "Ok, je
m'incline!" de la part de Josselin, ça fait chaud au coeur ! Il va
falloir que je me relise le TeXbook. Cela faisait un moment que je ne
l'avais pas parcouru.

bernard...@free.fr

unread,
Sep 19, 2017, 7:13:59 AM9/19/17
to
Il faudrait peut-être voir à charger hyperref APRÈS titlesec, non ?

Bernard.

Jean-Yves Baudais

unread,
Sep 19, 2017, 9:17:23 AM9/19/17
to
Bonjour,

Le 19/09/2017 à 13:13, bernard...@free.fr a écrit :

> Il faudrait peut-être voir à charger hyperref APRÈS titlesec, non ?


Testé et ça ne change rien. :-(

Jean-Yves

--
Maintenant, lmtt (ou cmtt) chassant *beaucoup* moins que courier (qui
chasse pire qu'une meute de touristes pervers dans un safari aux gros,
soit dit en passant), statistiquement tu devrais avoir un peu moins de
problèmes de ce côté là.

Olivier V

unread,
Sep 24, 2017, 10:01:27 AM9/24/17
to
Bonjour,

Face à l'absence de solution, y a-t-il une autre possibilité d'avoir un
résultat similaire avec un autre package que titletoc ?
Ou pensez-vous que je doive contacter l'auteur ?

Merci.

winnt

unread,
Sep 24, 2017, 3:16:37 PM9/24/17
to
À tout hasard regardez l'extension etoc qui permet de créer des tables
des matières et tables des matières locales avec possibilités de
personnalisation.

--
Winnt

C'est en Linuxant qu'on devient .... geek
Et c'est en LateXant qu'on devient flemmard ;-)

Ici un article de présentation de la distribution Gentoo
http://winnt.developpez.com/tutoriels/presentation-gentoo/

jfbu

unread,
Sep 25, 2017, 8:30:02 AM9/25/17
to
Le 24/09/2017 à 21:16, winnt a écrit :
> Le 24/09/2017 à 16:01, Olivier V a écrit :
>> Bonjour,
>>
>> Face à l'absence de solution, y a-t-il une autre possibilité d'avoir un résultat similaire avec un autre package que titletoc ?
>> Ou pensez-vous que je doive contacter l'auteur ?
>>
>> Merci.
>
> À tout hasard regardez l'extension etoc qui permet de créer des tables des matières et tables des matières locales avec possibilités de personnalisation.
>

Bonjour

\documentclass[a4paper,11pt,oneside]{book}

%compilation XeLaTeX
%\usepackage[tuenc]{fontspec}
%
%compilation LaTeX
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[french]{babel}

\usepackage{titlesec}
\titleformat{\chapter}
{\normalfont\Huge\bfseries\boldmath}
{Chapitre \arabic{chapter} :}
{1em}
{}
\titlespacing*{\chapter}{0pt}{0pt}{30pt}

\usepackage{titletoc}
\dottedcontents{part}[2em]{}{2em}{.6em}
\dottedcontents{chapter}[3.3em]{}{1.3em}{.6em}
% will only be used in local tocs:
\dottedcontents{section}[1.7em]{}{1.7em}{.6em}

\usepackage{etoc}
% cf manuel d'etoc 18. Another compatibility mode
\makeatletter
\let\savedpartline\l@part
\let\savedchapterline\l@chapter
\let\savedsectionline\l@section
\makeatother

\etocsetstyle{part}
{}
{}
{\savedpartline{\numberline{\textbf{\etocnumber}}\textbf{\etocname}}{\textbf{\etocpage}}}
{}%

\etocsetstyle{chapter}
{}
{}
{\savedchapterline{\numberline{\etocnumber}\etocname}{\etocpage}}
{}%

\etocsetstyle{section}
{}
{}
{\savedsectionline{\numberline{\etocnumber}\etocname}{\etocpage}}
{}%

\usepackage[%
bookmarks=true,%
bookmarksnumbered=true,%
pdfstartview=FitH,%
pdfpagelayout=SinglePage,%
urlcolor=magenta,%
pdfborder={0 0 0},%
colorlinks=true,%
linktoc=all]{hyperref}


\begin{document}

\etocsetnexttocdepth{chapter}
\tableofcontents

\part{Partie 1}

\chapter{C1}

\etocsettocstyle{}{}% from now on
\etocsetnexttocdepth{section}
\localtableofcontents

\section{S1}

\section{S2}

\section{S3}

Blabla

\chapter{C2}

\etocsetnexttocdepth{section}
\localtableofcontents

Blabla

\part{Partie 2}

\end{document}

Cordialement

Jean-François

Olivier V

unread,
Sep 25, 2017, 1:41:15 PM9/25/17
to
Le 25/09/2017 à 14:29, jfbu a écrit :
> Le 24/09/2017 à 21:16, winnt a écrit :
>> Le 24/09/2017 à 16:01, Olivier V a écrit :
>>> Bonjour,
>>>
>>> Face à l'absence de solution, y a-t-il une autre possibilité d'avoir
>>> un résultat similaire avec un autre package que titletoc ?
>>> Ou pensez-vous que je doive contacter l'auteur ?
>>>
>>> Merci.
>>
>> À tout hasard regardez l'extension etoc qui permet de créer des tables
>> des matières et tables des matières locales avec possibilités de
>> personnalisation.
>>
>
> Bonjour
>
> \documentclass[a4paper,11pt,oneside]{book}
>
> [...]
>
> Cordialement
>
> Jean-François

Merci pour la suggestion d'etoc et pour l'exemple.
Je regarde ça de près dès que j'ai un moment :)

Olivier V

Paul Gaborit

unread,
Sep 27, 2017, 5:41:17 AM9/27/17
to

À (at) Sun, 24 Sep 2017 21:16:36 +0200,
winnt <wi...@shea-edriuviel.net> écrivait (wrote):


> À tout hasard regardez l'extension etoc qui permet de créer des tables
> des matières et tables des matières locales avec possibilités de
> personnalisation.

Le package 'etoc' combine les fonctionnalités de 'titletoc' et de
'minitoc'. Il a l'avantage d'être maintenu et de gérer tout cela de
manière simple (un seul fichier pour toutes les tables des matières). Il
est compatible avec 'titlesec'.

Son seul (petit) défaut est qu'il faut programmer la mise en page des
tables des matières à un assez bas niveau (à moins de se contenter de la
présentation par défaut). Les exemples donnés dans la doc sont très
jolis mais rarement adaptés à des besoin 'normaux'.

Mais, depuis que j'ai remplacé 'minitoc' par 'etoc', c'est un vrai
bonheur : plus de bug quasi-insoluble, plus de commandes bizarres à
insérer partout...

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>

Olivier V

unread,
Sep 27, 2017, 10:36:30 AM9/27/17
to
D'accord et merci.
Je m'y plonge dès que j'aurai le temps.

Mon but sera simple : refaire exactement ce que j'ai mis dans l'EC (pas
trop M ...).

Olivier V

jfbu

unread,
Sep 27, 2017, 12:57:06 PM9/27/17
to
c'est justement ce qu'est censé faire l'exemple que j'ai fourni ;-)

J'y ai incorporé vos autres demandes: pointillés pour les Parties,
positionnement de ces dernières...

... à propos la prochain version de etoc aura les commandes

\etocsavedchaptertocline

\etocsavedparttocline

etc...

qui éviteront d'avoir à faire des \let avec \l@chapter, \l@part


Elles contiendront automatiquement le "meaning" de ces dernières
au moment même
où la TDM sera typesettée (horreur! comment on dit en français?)

De cette façon si on veut juste, dans n'importe quelle classe
suivant plus ou moins le modèle de LaTeX pour les fichiers .toc
(ce n'est pas le cas de la classe Beamer) faire une modification
du style: « je veux que le nom du chapitre soit en bleu, encadré avec
une bordure verte,» ce sera trivialement faisable.

Jean-François


Olivier V

unread,
Sep 27, 2017, 1:59:58 PM9/27/17
to
Le 27/09/2017 à 18:57, jfbu a écrit :

> c'est justement ce qu'est censé faire l'exemple que j'ai fourni ;-)
>
> J'y ai incorporé vos autres demandes: pointillés pour les Parties,
> positionnement de ces dernières...
>
> ... à propos la prochain version de etoc aura les commandes
>
> \etocsavedchaptertocline
>
> \etocsavedparttocline
>
> etc...
>
> qui éviteront d'avoir à faire des \let avec \l@chapter, \l@part
>
>
> Elles contiendront automatiquement le "meaning" de ces dernières
> au moment même
> où la TDM sera typesettée (horreur! comment on dit en français?)
>
> De cette façon si on veut juste, dans n'importe quelle classe
> suivant plus ou moins le modèle de LaTeX pour les fichiers .toc
> (ce n'est pas le cas de la classe Beamer) faire une modification
> du style: « je veux que le nom du chapitre soit en bleu, encadré avec
> une bordure verte,» ce sera trivialement faisable.

Merci pour toutes les précisions !

Olivier V

Olivier V

unread,
Sep 27, 2017, 2:41:04 PM9/27/17
to
Je n'ai pas eu ni pris le temps de comprendre ce qui est fait, mais
c'est quasi impeccable !

Quasi car le code a mangé l'espace entre les "part".
Voici le résultat obtenu :
https://imgur.com/a/sxYLe
Alors qu'au niveau de l'espacement le résultat souhaité est celui-ci :
https://imgur.com/a/sTJHn

J'ai tenté un \titlespacing*{\part}{0pt}{15pt}{0pt}, mais je n'en ai
probablement pas fait bon usage car il ne fait rien ...

Merci pour vos éclaircissements.

Olivier V

jfbu

unread,
Sep 27, 2017, 5:25:20 PM9/27/17
to
\etocsetstyle{part}
{\etocskipfirstprefix}
{\vspace{1cm}}% ajuster pour ce que l'on veut!
{\savedpartline{\numberline{\textbf{\etocnumber}}\textbf{\etocname}}{\textbf{\etocpage}}}
{}%

JF

Lucas Levrel

unread,
Sep 28, 2017, 5:19:06 AM9/28/17
to
Le 27 septembre 2017, à 18:57, jfbu a écrit :

> Elles contiendront automatiquement le "meaning" de ces dernières
> au moment même
> où la TDM sera typesettée (horreur! comment on dit en français?)

Composée ?

--
LL
Ἕν οἶδα ὅτι οὐδὲν οἶδα (Σωκράτης)
C'est mieux avé les accents (F. Patte)

Olivier V

unread,
Sep 28, 2017, 11:10:31 AM9/28/17
to
Le 27/09/2017 à 23:25, jfbu a écrit :
> \etocsetstyle{part}
>              {\etocskipfirstprefix}
>              {\vspace{1cm}}% ajuster pour ce que l'on veut!
>
> {\savedpartline{\numberline{\textbf{\etocnumber}}\textbf{\etocname}}{\textbf{\etocpage}}}
>
>              {}%
>

Merci beaucoup tout est parfait sur mon document complet.

Il est néanmoins paradoxal d'avoir encore besoin de charger titletoc
[source de nos problèmes ...] juste pour les pointillés, non ?
etoc ne le fait pas (encore ?) ?

Olivier V

jfbu

unread,
Sep 28, 2017, 5:54:24 PM9/28/17
to
Bonsoir,

l'exemple que j'ai fourni dans ce fil est une utilisation
particulière d'etoc qui s'appelle « Another compatibility mode »
dans le manuel.

C'est une méthode pour les fainéants (dans mon genre) pour
juste apporter quelques modifications à un style prédéfini
par une classe ou un paquetage, sans se casser la tête.
On ajoute aussi le \localtableofcontents et autres choses
passionnantes comme les \label/\ref qui sont tellement spéciales
avec etoc que seul l'auteur semble les apprécier à leur
juste valeur.

On peut bien sûr obtenir exactement le même résultat sans
du tout titletoc. Suffit de voir ce que fait l'expansion
des macros \l@part, \l@chapter, \l@section qu'il définit.

Il est trop tard, mais un autre jour j'enverrai le résultat.

Le principe d'etoc est simplement de fournir les macro
\etocname, \etocpage, \etocnumber. L'utilisateur fait
exactement ce qu'il veut avec cela et peut donc configurer
absolument n'importe quel design.

Par erreur liée au développement du paquetage, etoc fournit
aussi un style "home-made" mais je pense que personne ne l'utilise,
sauf moi dans le manuel (mais jamais ailleurs). J'aimerais
bien supprimer les lignes de code correspondantes.

De toute façon par défaut etoc est en "Compatibility mode"
ce qui veut dire qu'il ne change rien du tout au design
en vigueur et ajoute juste essentiellement la capacité
de \localtableofcontents. En général on doit cependant
modifier ce que manuel appelle "le style global de la TOC"
pour ces \localtableofcontents car il n'est pas approprié
par exemple d'utiliser \chapter* pour le titre d'une TOC
locale à une section (ou une même un chapitre).

La compatibilité avec les "line styles" est totale car
etoc ne fait qu'exécuter les `\l@section` etc.. ; pour le
"style global" c'est reconstitué en insérant dans le code
source d'etoc ce qu'il faut suivant la classe.

Comme mentionné plus haut il existe "Another compatibility
mode" qui utilise les \etocsetstyle, mais d'une manière minimale.

Les purs et durs font tout à partir de zéro, au début même
le manuel utilisait une syntaxe de bas niveau TeX, pour la
bonne raison que je ne connais pas bien LaTeX. Par moment
j'ai cherché à mettre plus de syntaxe LaTeX dans les exemples
du manuel, mais ça reste partiel.

Jean-François


jfbu

unread,
Sep 28, 2017, 6:01:08 PM9/28/17
to
Le 28/09/2017 à 11:19, Lucas Levrel a écrit :
> Le 27 septembre 2017, à 18:57, jfbu a écrit :
>
>> Elles contiendront automatiquement le "meaning" de ces dernières
>> au moment même
>> où la TDM sera typesettée (horreur! comment on dit en français?)
>
> Composée ?
>
Merci ! sur le coup rien ne me venait à l'esprit, faut dire
que j'avais cherché un équivalent de \meaning avant ce qui
déjà m'avait déstabilisé. J'ai failli dire « expansion »
mais bon, ça peut prêter à confusion.

Donc « au moment où la TDM est composée », merci encore !

Jean-François

jfbu

unread,
Sep 29, 2017, 4:43:34 AM9/29/17
to
Le 28/09/2017 à 23:54, jfbu a écrit :
> On peut bien sûr obtenir exactement le même résultat sans
> du tout titletoc. Suffit de voir ce que fait l'expansion
> des macros \l@part, \l@chapter, \l@section qu'il définit.
>
> Il est trop tard, mais un autre jour j'enverrai le résultat.

On peut faire ceci. J'ai beaucoup de perplexité par rapport à l'emploi des pénalités verticales par titletoc, j'ai vaguement improvisé dans mon émulation.

mais j'ai assez fidèlement pris le résultat de l'expansion originelle pour le reste donc par exemple je laisse \leavevmode\strut alors que \strut tout seul a le même effet

(entre autre exemples)

cordialement
Jean-François

\documentclass[a4paper,11pt,oneside]{book}

%compilation XeLaTeX
%\usepackage[tuenc]{fontspec}
%
%compilation LaTeX
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[french]{babel}

\usepackage{titlesec}
\titleformat{\chapter}
{\normalfont\Huge\bfseries\boldmath}
{Chapitre \arabic{chapter} :}
{1em}
{}
\titlespacing*{\chapter}{0pt}{0pt}{30pt}

\usepackage{etoc}

\makeatletter

% ceci extrait de titletoc.sty:
\@tempskipa\@pnumwidth
\edef\@pnumwidth{\the\@tempskipa}
\advance\@tempskipa-\@tocrmarg
\edef\ttl@corr{-\the\@tempskipa}
% \@pnumwidth ->16.87624pt
% \ttl@corr ->--10.88788pt

% émulation (un peu approximative pour pénalités verticales) du résultat de
% \dottedcontents{part}[2em]{}{2em}{.6em}
% \dottedcontents{chapter}[3.3em]{}{1.3em}{.6em}
% % will only be used in local tocs:
% \dottedcontents{section}[1.7em]{}{1.7em}{.6em}
% (et de l'espacement vertical ajouté pour part)

\newcommand\mytocline[6]{%
% #1 = pénalité verticale
% #2 = marge gauche
% #3 = largeur boîte numéro
% #4 = \etocnumber ou variante
% #5 = \etocname ou variante
% #6 = \etocpage ou variante
\begingroup
\addpenalty{#1}%
\vskip \z@ \@plus .1\p@
\nobreak
\interlinepenalty \@M
\parindent \z@
\setlength {\leftskip}{#2}%
\setlength {\rightskip}{\@pnumwidth}%
\addtolength {\parfillskip }{-\ttl@corr}%
\addtolength {\rightskip }{\ttl@corr}%
\leavevmode
\strut
\etocifnumbered{\hspace*{-#3}\hb@xt@ #3{#4\hfil}}% \etocnumber
{\hspace*{-#3}}%
{#5}% \etocname
\strut\kern\z@
{{\sbox\z@{.}\hspace{-.6em}\hskip\wd\z@
\leaders\hb@xt@.6em{\hss\box\z@}\hfill\kern\z@}%
\hb@xt@\@pnumwidth{\hfil#6}\hspace*{-\@pnumwidth }}% \etocpage
\@@par
\endgroup
}

\etocsetstyle{part}
{}
{\etociffirst{}{\vspace{1cm}}}% ajuster selon besoin
{\mytocline{0}{2em}{2em}%
{\textbf{\etocnumber}}{\textbf{\etocname}}{\textbf{\etocpage}}}
{}

\etocsetstyle{chapter}
{}
{}
{\mytocline{\@secpenalty}{3.3em}{1.3em}%
{\etocnumber}{\etocname}{\etocpage}}
{}

\etocsetstyle{section}
{}
{}
{\etociffirst{\mytocline{10000}}{\mytocline{0}}%
{1.7em}{1.7em}{\etocnumber}{\etocname}{\etocpage}}
{}
{}

\makeatother

\usepackage[%
bookmarks=true,%
bookmarksnumbered=true,%
pdfstartview=FitH,%
pdfpagelayout=SinglePage,%
urlcolor=magenta,%
pdfborder={0 0 0},%
colorlinks=true,%
linktoc=all]{hyperref}


\begin{document}

\etocsetnexttocdepth{chapter}

\tableofcontents

\part{Partie 1}

\chapter{C1}

\etocsettocstyle{}{}% from now on
\etocsetnexttocdepth{section}

\localtableofcontents

\section{S1}

\section{S2}

\section{S3}

Blabla

\chapter{C2}

Olivier V

unread,
Sep 29, 2017, 1:48:18 PM9/29/17
to
Le 29/09/2017 à 10:43, jfbu a écrit :
> Le 28/09/2017 à 23:54, jfbu a écrit :
>> On peut bien sûr obtenir exactement le même résultat sans
>> du tout titletoc. Suffit de voir ce que fait l'expansion
>> des macros \l@part, \l@chapter, \l@section qu'il définit.
>>
>> Il est trop tard, mais un autre jour j'enverrai le résultat.
>
> On peut faire ceci. J'ai beaucoup de perplexité par rapport à l'emploi
> des pénalités verticales par titletoc, j'ai vaguement improvisé dans mon
> émulation.
>
> mais j'ai assez fidèlement pris le résultat de l'expansion originelle
> pour le reste donc par exemple je laisse \leavevmode\strut alors que
> \strut tout seul a le même effet

Merci beaucoup.
Le résultat est exactement l'attendu, même si le code est très obscur
pour moi ...

Olivier V

jfbu

unread,
Sep 29, 2017, 5:59:32 PM9/29/17
to
Le code de titletoc compose les lignes (ou paragraphes) successifs
de la table des matières avec la même approche utilisant
\leftskip, \rightskip, \parfillskip que le LaTeX classe article de
base. Il embobine le tout dans certaines choses mais ici au final
ça donne ce que j'ai reproduit.

Il est assez comique que LaTeX utilise pour la table des matières
une méthode complètement déconseillée à n'importe quel utilisateur
lambda, à savoir la manipulation directe de ces paramètres
primitifs de mise en page des paragraphes : essayez un peu de
répondre sur tex.stackexchange.com à une question de mise en page
en utilisant ce genre de code vous verrez comment les gourous
réagiront.

En effet, cette façon de faire n'est pas LaTeXienne car elle est
incompatible avec une structure de base de LaTeX, les
"environnement de listes". Ou alors, ce sont les listes de LaTeX
qui sont mal fichues, je laisserai à d'autres le soin de juger.

(suffit de constater que wrapfig est inutilisable pour tout
contexte de production automatisée de documents)

Bref, LaTeX, et à sa suite titletoc, composent les tables de
matières par une approche non-LaTeXienne.

Mais l'énorme faute de conception de LaTeX c'est sa construction
du fichier .toc. Il est bien clair que ce fichier n'aurait dû être
qu'une simple base de données se contentant de stocker numéro,
titre et numéro de page sans aucune commande de composition. Or,
le fichier .toc est construit avec des macros qui mélangent numéro
et titre; de plus des choses importantes numériquement comme le
numéro de page sont stockés sous forme "imprimée", par exemple I,
II, III, comme les numéros de titre, ce qui compromet
considérablement leur utilisation numérique. Stocker dans le
fichier .toc \thepage et pas aussi \the\value{page}, c'est
compliqué la vie à tout le monde. Bien sûr on a besoin de
\thepage, car on souhaite sans doute que le numéro de page
apparaisse dans le même style dans la TDM et dans le corps du
document, mais il fallait aussi stocker \the\value{page}.

Mais je parle, je parle. Bon en fait ce que je voulais dire au
début c'est que si vous mettez la définition de \mytocline dans un
fichier mescommandes.sty avec le \ProvidesPackage qu'il faut, il
vous suffira de faire \usepackage{mescommandes} et d'un seul coup
le code paraîtra beaucoup plus simple ! ;-)

Jean-François

Olivier V

unread,
Oct 1, 2017, 1:30:37 PM10/1/17
to
Le 29/09/2017 à 23:59, jfbu a écrit :
>
> [...]
> Jean-François

Merci pour ces compléments très instructifs. Je rajouterai ladite
commande à mon paquet "personnel fourbi" ... :)

Olivier V

olivier...@gmail.com

unread,
Jan 22, 2018, 8:32:57 AM1/22/18
to
Bonjour,

Je remonte ce fil car je rencontre un petit bug dans la solution qui m'a été donnée.
Je rappelle que je souhaitais avoir une sous table des matières à chaque début de section avec une présentation comme dans l'ECM (pointillés).
L'ECM donné est celui qui m'avait été donné il y a quelques mois et à juste le petit défaut de coller les numéros aux noms dans les sous tables des matières dans le cas où les sections comportent deux chiffres.
J'ai juste ajouté "\setcounter{chapter}{10}" pour faire apparaître le bug.

Comment corriger cela ?
N.B. : il n'y aura pas de sections avec 3 chiffres ...

Question subsidiaire :
Y aurait-il un moyen pour ajouter à chaque page "part" une sous table des matières avec uniquement les sections en restant sur la même page ?

Merci beaucoup !

Olivier V

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setcounter{chapter}{10}

Lucas Levrel

unread,
Jan 23, 2018, 4:12:09 AM1/23/18
to
Le 22 janvier 2018, à 05:32, ano...@free.fr a écrit :

> L'ECM donné est celui qui m'avait été donné il y a quelques mois et à
> juste le petit défaut de coller les numéros aux noms dans les sous
> tables des matières dans le cas où les sections comportent deux
> chiffres. J'ai juste ajouté "\setcounter{chapter}{10}" pour faire
> apparaître le bug.
>
> Comment corriger cela ?
> N.B. : il n'y aura pas de sections avec 3 chiffres ...

Pas testé, mais en lisant le code...

> \newcommand\mytocline[6]{%
> % #1 = pénalité verticale
> % #2 = marge gauche
> % #3 = largeur boîte numéro ****************
> % #4 = \etocnumber ou variante
> % #5 = \etocname ou variante
> % #6 = \etocpage ou variante

... il semble que tu doives simplement augmenter la longueur donnée en 3e
argument :
> \etocsetstyle{part}
> {}
> {\etociffirst{}{\vspace{1cm}}}% ajuster selon besoin
> {\mytocline{0}{2em}{2em}%
^^^^^
> {\textbf{\etocnumber}}{\textbf{\etocname}}{\textbf{\etocpage}}}
> {}
>
> \etocsetstyle{chapter}
> {}
> {}
> {\mytocline{\@secpenalty}{3.3em}{1.3em}%
^^^^^^^
> {\etocnumber}{\etocname}{\etocpage}}
> {}
>
> \etocsetstyle{section}
> {}
> {}
> {\etociffirst{\mytocline{10000}}{\mytocline{0}}%
> {1.7em}{1.7em}{\etocnumber}{\etocname}{\etocpage}}
^^^^^^^
> {}
> {}

suivant le niveau concerné.

> Question subsidiaire :
> Y aurait-il un moyen pour ajouter à chaque page "part" une sous table
> des matières avec uniquement les sections en restant sur la même page ?

Je passe...

jfbu

unread,
Jan 23, 2018, 5:13:20 PM1/23/18
to
Le 23/01/2018 à 10:12, Lucas Levrel a écrit :
>
>> Question subsidiaire :
>> Y aurait-il un moyen pour ajouter à chaque page "part" une sous table des matières avec uniquement les sections en restant sur la même page ?
>
> Je passe...
>

...je prends :-)

\makeatletter
\let\original@endpart\@endpart
\let\@endpart\@empty
\newcommand\tableofsectionsinthispart{%
\begingroup
\etocsetlevel{chapter}{6}%
\etocsetnexttocdepth{section}%
\etocarticlestyle % avoids using \chapter* which does a new page
\renewcommand\contentsname{Table des sections de cette partie}%
\localtableofcontents
\endgroup
\original@endpart
}
\makeatother

c'est plus facile pour moi d'examiner une trace et de hacker une
macro que de lire de la doc, donc peut-être mon histoire avec \@endpart
a une interface dans titlesec, je n'en sais rien

utilisation:

\part{Partie 1}

\tableofsectionsinthispart


Ça marche avec l'ECM donné car le style pour les sections
utilisé pour les TOC locales aux chapitres fonctionne bien
(pas de problème d'indentation par exemple) aussi si on
positionne cela après \part

Cordialement

Jean-François

Olivier V

unread,
Jan 24, 2018, 1:55:34 PM1/24/18
to
Bonjour et un grand merci à tous les deux.

A jfbu :
Je me suis trompé car c'est la table des matières des "chapter" (et pas
des sections) que je voudrais avoir en dessous de chaque partie ...
Et je suis incapable de modifier votre bout de code :(
Alors merci de bien vouloir me dire quoi modifier ...

Question commune : une (dernière je l'espère) chose :
serait-il possible d'avoir uniquement les numéros du type 1 2 etc ...
au lieu de 1.1 1.2 etc ... correspondant aux sections dans les sous
tables des matières de début de chapitres ?

Par ailleurs j'ai retrouvé une version "plus simple" qui m'avait été
donnée et qui utilise des commandes prédéfinies.
Dans la logique de ce que vous m'avez dit, j'ai donc modifié
\dottedcontents{section}[1.7em]{}{2em}{.6em}
(voir ci-dessous).

Un grand merci ... mon document prend forme ; je suis à 130 pages ...

Olivier V

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass[a4paper,11pt,oneside]{book}

%compilation XeLaTeX
%\usepackage[tuenc]{fontspec}
%
%compilation LaTeX
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[french]{babel}

\usepackage[calcwidth]{titlesec}
\titleformat{\chapter}
{\normalfont\LARGE\bfseries\boldmath}
{Chapitre \arabic{chapter} :}
{1em}
{}
\titlespacing*{\chapter}{0pt}{0pt}{30pt}

\usepackage{titletoc}
\dottedcontents{part}[2em]{}{2em}{.6em}
\dottedcontents{chapter}[3.3em]{}{1.3em}{.6em}
% will only be used in local tocs:
\dottedcontents{section}[1.7em]{}{2em}{.6em}

\usepackage{etoc}
% cf manuel d'etoc 18. Another compatibility mode
\makeatletter
\let\savedpartline\l@part
\let\savedchapterline\l@chapter
\let\savedsectionline\l@section
\makeatother

\etocsetstyle{part}
{\etocskipfirstprefix}
{\vspace{1cm}}% ajuster pour ce que l'on veut!

{\savedpartline{\numberline{\textbf{\etocnumber}}\textbf{\etocname}}{\textbf{\etocpage}}}
{}%

\etocsetstyle{chapter}
{}
{}

{\savedchapterline{\numberline{\etocnumber}\etocname}{\etocpage}}
{}%

\etocsetstyle{section}
{}
{}

{\savedsectionline{\numberline{\etocnumber}\etocname}{\etocpage}}
{}%

\makeatletter
\let\original@endpart\@endpart
\let\@endpart\@empty
\newcommand\tableofsectionsinthispart{%
\begingroup
\etocsetlevel{chapter}{6}%
\etocsetnexttocdepth{section}%
\etocarticlestyle % avoids using \chapter* which does a new page
\renewcommand\contentsname{}%nom de la table
\localtableofcontents
\endgroup
\original@endpart
}
\makeatother

\usepackage[%
bookmarks=true,%
bookmarksnumbered=true,%
pdfstartview=FitH,%
pdfpagelayout=SinglePage,%
urlcolor=magenta,%
pdfborder={0 0 0},%
colorlinks=true,%
linktoc=all]{hyperref}


\begin{document}

\setcounter{chapter}{10}

\etocsetnexttocdepth{chapter}

\tableofcontents

\part{Partie 1}

\tableofsectionsinthispart

jfbu

unread,
Jan 24, 2018, 5:05:49 PM1/24/18
to
Le 24/01/2018 à 19:55, Olivier V a écrit :
> Bonjour et un grand merci à tous les deux.
>
> A jfbu :
> Je me suis trompé car c'est la table des matières des "chapter" (et pas des sections) que je voudrais avoir en dessous de chaque partie ...
> Et je suis incapable de modifier votre bout de code :(
> Alors merci de bien vouloir me dire quoi modifier ...
>
> Question commune : une (dernière je l'espère) chose :
> serait-il possible d'avoir uniquement les numéros du type 1 2 etc ...
> au lieu de 1.1 1.2 etc ... correspondant aux sections dans les sous tables des matières de début de chapitres ?
>
> Par ailleurs j'ai retrouvé une version "plus simple" qui m'avait été donnée et qui utilise des commandes prédéfinies.
> Dans la logique de ce que vous m'avez dit, j'ai donc modifié \dottedcontents{section}[1.7em]{}{2em}{.6em}
> (voir ci-dessous).


Bonjour je dois confondre avec un autre fil, mais il me semblait avoir bossé pour éviter des problèmes de titletoc justement... mais bon ok, si on peut l'utiliser !

>
> Un grand merci ... mon document prend forme ; je suis à 130 pages ...
>
> Olivier V

il y aura des droits d'auteurS ?

;-)

jfbu

\documentclass[a4paper,11pt,oneside]{book}

%compilation XeLaTeX
%\usepackage[tuenc]{fontspec}
%
%compilation LaTeX
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[french]{babel}

\usepackage[calcwidth]{titlesec}
\titleformat{\chapter}
{\normalfont\LARGE\bfseries\boldmath}
{Chapitre \arabic{chapter} :}
{1em}
{}
\titlespacing*{\chapter}{0pt}{0pt}{30pt}

\usepackage{titletoc}
\dottedcontents{part}[2em]{}{2em}{.6em}
\dottedcontents{chapter}[3.3em]{}{1.3em}{.6em}
% will only be used in local tocs:
\dottedcontents{section}[1.7em]{}{2em}{.6em}

\usepackage{etoc}
% cf manuel d'etoc 18. Another compatibility mode
% obsolète: il y a maintenant \etocsavedparttocline etc..
% \makeatletter
% \let\savedpartline\l@part
% \let\savedchapterline\l@chapter
% \let\savedsectionline\l@section
% \makeatother

\makeatletter
\newcommand\FIXEDSECTIONNUMBER{%
\expandafter\FIXED@SECTION@NUMBER\etocthenumber.%
}%
\def\FIXED@SECTION@NUMBER #1.#2.{\etoclink{#2}}%
\makeatother


\etocsetstyle{part}
{\etocskipfirstprefix}
{\vspace{1cm}}% ajuster pour ce que l'on veut!
{\etocsavedparttocline{\numberline{\textbf{\etocnumber}}\textbf{\etocname}}{\textbf{\etocpage}}}
{}%

\etocsetstyle{chapter}
{}
{}
{\etocsavedchaptertocline{\numberline{\etocnumber}\etocname}{\etocpage}}
{}%

\etocsetstyle{section}
{}
{}
{\etocsavedsectiontocline{\numberline{\FIXEDSECTIONNUMBER}\etocname}{\etocpage}}
{}%

\makeatletter
\let\original@endpart\@endpart
\let\@endpart\@empty
\newcommand\tableofchaptersinthispartandwewantitonthispage{%
\begingroup
\vspace{2cm}%
\etocsetnexttocdepth{chapter}%
\etocsettocstyle{}{}% pas de titre avant, rien après
\localtableofcontents
\endgroup
\original@endpart% fait le clearpage
}
\makeatother

\usepackage[%
bookmarks=true,%
bookmarksnumbered=true,%
pdfstartview=FitH,%
pdfpagelayout=SinglePage,%
urlcolor=magenta,%
pdfborder={0 0 0},%
colorlinks=true,%
linktoc=all]{hyperref}


\begin{document}

\setcounter{chapter}{10}

\etocsetnexttocdepth{chapter}

\tableofcontents

\part{Partie 1}

\tableofchaptersinthispartandwewantitonthispage

\chapter{C1}

\etocsettocstyle{}{}% from now on
\etocsetnexttocdepth{section}

\localtableofcontents

\section{S1}

\section{S2}

\section{S3}

Blabla

\chapter{C2}

\etocsetnexttocdepth{section}

\localtableofcontents

\section{S1}

\section{S2}

\section{S3}

Blabla

jfbu

unread,
Jan 24, 2018, 5:16:30 PM1/24/18
to
Le 24/01/2018 à 23:05, jfbu a écrit :
> \etocsetstyle{chapter}
>              {}
>              {}
>              {\etocsavedchaptertocline{\numberline{\etocnumber}\etocname}{\etocpage}}
>              {}%


arrgh il y a le problème que cela aura l'indentation adaptée pour la TOC globale

donc dans le \localtableofcontents pour les \part c'est pas bon

j'ai tenté un naïf

\dottedcontents{chapter}[0em]{}{1.3em}{.6em}

après la principale \tableofcontents

mais il m'écrit des choses pas bien et même franchement délirantes dans le fichier .toc

(il ne faut JAMAIS écrire dans le .toc (biblatex par exemple fait des choses épouvantables et certainement totalement pas nécessaires))

bon désolé je n'ai vraiment pas le temps de faire le déboguage

etoc c'est comme Plain TeX: on écrit ce qu'on veut

s'enquiquiner avec des packages pas flexibles,
c'est perdre du temps

il y a des dizaines d'exemples dans le documentation d'etoc pour faire tout ce qu'on veut

Cordialement

JF B.

Olivier V

unread,
Jan 27, 2018, 2:09:57 PM1/27/18
to
> arrgh il y a le problème que cela aura l'indentation adaptée pour la TOC
> globale
>
> donc dans le \localtableofcontents pour les \part c'est pas bon
>
> j'ai tenté un naïf
>
> \dottedcontents{chapter}[0em]{}{1.3em}{.6em}
>
> après la principale \tableofcontents
>
> mais il m'écrit des choses pas bien et même franchement délirantes dans
> le fichier .toc
>
> (il ne faut JAMAIS écrire dans le .toc (biblatex par exemple fait des
> choses épouvantables et certainement totalement pas nécessaires))
>
> bon désolé je n'ai vraiment pas le temps de faire le déboguage
>
> etoc c'est comme Plain TeX: on écrit ce qu'on veut
>
> s'enquiquiner avec des packages pas flexibles,
> c'est perdre du temps
>
> il y a des dizaines d'exemples dans le documentation d'etoc pour faire
> tout ce qu'on veut

Oui le dernier ECM ne compile pas avec plusieurs erreurs que je ne suis
pas en mesure d'interpréter ...
Mais merci pour toutes les autres modifications.!

Oui c'est bien vous aussi qui étiez à l'origine de la version sans
titlesec ... Comme titlesec est plus lisible pour moi, j'avais gardé la
version avec titlesec et titletoc.

Mais voici ci-dessous l'ECM sans titlesec (que j'ai gardé en
commentaires "au cas où" ...) avec vos dernières modifications.
J'ai maintenant pris cette version dans mon document principal.

Si vous avez un moment je reste évidemment preneur pour la suppression
des numéros en début de chaque partie ...

Pour information j'ai mis mon modèle principal ici si vous voulez avoir
une idée de ce à quoi ça ressemble !
Lien : https://www.cjoint.com/c/HABtimB5hRr
Vous y verrez pourquoi le rappel des numéros me gêne un peu dans la TDM
de chaque chapitre ... car dans les chapitres on repasse sur des numéros
simples.

Sinon, je me dis que j'aurais d'ailleurs dû numéroter mes part avec
A,B,C etc ... puis mes chapters avec I. II. III. etc et enfin mes
sections (et sous sections) avec 1,2,3 ...
Il faudra que je réfléchisse à cette modification ...

Pour les droits d'auteurs il n'y en aura pas car le document sera juste
librement diffusé à mes élèves ... mais pas de souci pour un petit
complément dans paragraphe de remerciements ... en votre nom propre ou
pseudo ... dites moi ...

Bon WE

Olivier V



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\documentclass[a4paper,11pt,oneside]{book}

%compilation XeLaTeX
%\usepackage[tuenc]{fontspec}
%
%compilation LaTeX
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[french]{babel}

\usepackage{comment}

\usepackage{titlesec}
\titleformat{\chapter}
{\normalfont\Huge\bfseries\boldmath}
{Chapitre \arabic{chapter} :}
{1em}
{}
\titlespacing*{\chapter}{0pt}{0pt}{30pt}

%DEBUT VERSION AVEC TITLESEC
\begin{comment}
\usepackage{titletoc}
\dottedcontents{part}[2em]{}{2em}{.6em}
\dottedcontents{chapter}[3.3em]{}{1.3em}{.6em}
% will only be used in local tocs:
\dottedcontents{section}[1.7em]{}{2em}{.6em}%\dottedcontents{section}[1.7em]{}{1.7em}{.6em}

\usepackage{etoc}
% cf manuel d'etoc 18. Another compatibility mode
\makeatletter
\let\savedpartline\l@part
\let\savedchapterline\l@chapter
\let\savedsectionline\l@section
\makeatother

\etocsetstyle{part}
{\etocskipfirstprefix}
{\vspace{1cm}}% ajuster pour ce que l'on veut!

{\savedpartline{\numberline{\textbf{\etocnumber}}\textbf{\etocname}}{\textbf{\etocpage}}}
{}%

\etocsetstyle{chapter}
{}
{}

{\savedchapterline{\numberline{\etocnumber}\etocname}{\etocpage}}
{}%

\etocsetstyle{section}
{}
{}

{\savedsectionline{\numberline{\etocnumber}\etocname}{\etocpage}}
{}%
\end{comment}
%FIN VERSION AVEC TITLESEC


%DEBUT VERSION SANS TITLESEC
\usepackage{etoc}

\makeatletter

% ceci extrait de titletoc.sty:
\@tempskipa\@pnumwidth
\edef\@pnumwidth{\the\@tempskipa}
\advance\@tempskipa-\@tocrmarg
\edef\ttl@corr{-\the\@tempskipa}
% \@pnumwidth ->16.87624pt
% \ttl@corr ->--10.88788pt

% émulation (un peu approximative pour pénalités verticales) du résultat de
% \dottedcontents{part}[2em]{}{2em}{.6em}
% \dottedcontents{chapter}[3.3em]{}{1.3em}{.6em}
% % will only be used in local tocs:
% \dottedcontents{section}[1.7em]{}{1.7em}{.6em}
% (et de l'espacement vertical ajouté pour part)

\newcommand\mytocline[6]{%
% #1 = pénalité verticale
% #2 = marge gauche
% #3 = largeur boîte numéro
% #4 = \etocnumber ou variante
% #5 = \etocname ou variante
% #6 = \etocpage ou variante
\begingroup
\addpenalty{#1}%
\vskip \z@ \@plus .1\p@
\nobreak
\interlinepenalty \@M
\parindent \z@
\setlength {\leftskip}{#2}%
\setlength {\rightskip}{\@pnumwidth}%
\addtolength {\parfillskip }{-\ttl@corr}%
\addtolength {\rightskip }{\ttl@corr}%
\leavevmode
\strut
\etocifnumbered{\hspace*{-#3}\hb@xt@ #3{#4\hfil}}% \etocnumber
{\hspace*{-#3}}%
{#5}% \etocname
\strut\kern\z@
{{\sbox\z@{.}\hspace{-.6em}\hskip\wd\z@
\leaders\hb@xt@.6em{\hss\box\z@}\hfill\kern\z@}%
\hb@xt@\@pnumwidth{\hfil#6}\hspace*{-\@pnumwidth }}% \etocpage
\@@par
\endgroup
}

\etocsetstyle{part}
{}
{\etociffirst{}{\vspace{1cm}}}% ajuster selon besoin
{\mytocline{0}{2em}{2em}%

{\textbf{\etocnumber}}{\textbf{\etocname}}{\textbf{\etocpage}}}
{}

\etocsetstyle{chapter}
{}
{}
{\mytocline{\@secpenalty}{3.3em}{1.3em}%
{\etocnumber}{\etocname}{\etocpage}}
{}

\etocsetstyle{section}
{}
{}
{\etociffirst{\mytocline{10000}}{\mytocline{0}}%
{1.7em}{2em}{\etocnumber}{\etocname}{\etocpage}}
{}
{}

\makeatother
%FIN VERSION SANS TITLESEC


\makeatletter
\let\original@endpart\@endpart
\let\@endpart\@empty
\newcommand\tableofchaptersinthispartandwewantitonthispage{%
\begingroup
\vspace{2cm}%
% \etocsetlevel{chapter}{6}%
% \etocsetnexttocdepth{section}%
Blabla

\part{Partie 2}

\tableofchaptersinthispartandwewantitonthispage

\end{document}

jfbu

unread,
Jan 29, 2018, 4:26:51 AM1/29/18
to
Le 27/01/2018 à 20:09, Olivier V a écrit :
> Oui le dernier ECM ne compile pas avec plusieurs erreurs que je ne suis pas en mesure d'interpréter ...

j'ai remarqué que vos ECM avaient des lignes vides en extra par exemple

> \etocsetstyle{part}
> {}
> {\etociffirst{}{\vspace{1cm}}}% ajuster selon besoin
> {\mytocline{0}{2em}{2em}%
>
> {\textbf{\etocnumber}}{\textbf{\etocname}}{\textbf{\etocpage}}}
> {}

cela suffit à provoquer des bogues

sinon votre dernier ECM empile plusieurs choses, c'est compliqué pour moi à chaque fois de dépatouiller, là je me retrouve avec deux définitions de styles pour etoc je ne sais plus qu'est-ce que vous voulez faire avec cela.

pour modifier les numéros j'ai déjà donné le code

cordialement

Jean-François

Olivier V

unread,
Jan 29, 2018, 7:55:49 AM1/29/18
to
Le 29/01/2018 à 10:26, jfbu a écrit :
> Le 27/01/2018 à 20:09, Olivier V a écrit :
>> Oui le dernier ECM ne compile pas avec plusieurs erreurs que je ne
>> suis pas en mesure d'interpréter ...
>
> j'ai remarqué que vos ECM avaient des lignes vides en extra par exemple
>
> cela suffit à provoquer des bogues

Ces lignes vides ne sont pas dans mon code original. Elles apparaissent
lors des copier-coller sur le forum car la ligne collée devait être trop
longue ...

Peut-être le même genre de problèmes lors de la recopie chez moi de
votre ECM du 24/01 à 23h05 ?
Est-ce normal qu'il ne compile pas pas lors de la seconde compilation et
me donne dans le log des choses qui reviennent à plusieurs reprises ?
J'ai dû rater quelque chose ...

! Undefined control sequence.
\Etoc@contents@minusone ->\etocsavedparttocline
{\numberline {\textbf
{\etoc...
l.93

The control sequence at the end of the top line
of your error message was never \def'ed. If you have
misspelled it (e.g., `\hobx'), type `I' and the correct
spelling (e.g., `I\hbox'). Otherwise just continue,
and I'll forget about whatever was undefined.

> pour modifier les numéros j'ai déjà donné le code

C'est bien le code avec ceci ? Celui qui ne compile pas dont je parle
juste au dessus ?

\makeatletter
\newcommand\FIXEDSECTIONNUMBER{%
\expandafter\FIXED@SECTION@NUMBER\etocthenumber.%
}%
\def\FIXED@SECTION@NUMBER #1.#2.{\etoclink{#2}}%
\makeatother

> sinon votre dernier ECM empile plusieurs choses, c'est compliqué pour
> moi à chaque fois de dépatouiller, là je me retrouve avec deux
> définitions de styles pour etoc je ne sais plus qu'est-ce que vous
> voulez faire avec cela.


Oui vous avez raison : j'ai re-minimisé l'exemple trop complet.
Je souhaiterais donc que la table des matières en début de chaque
chapter soit du type 1, 2, 3 et pas 11.1, etc ...

Merci si vous avez encore un peu de temps ... sinon tant pis ça
n'empêche pas de fonctionner ...

Olivier V

\documentclass[a4paper,11pt,oneside]{book}

%compilation XeLaTeX
%\usepackage[tuenc]{fontspec}
%
%compilation LaTeX
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[french]{babel}


\etocsetstyle{part}
{}
{\etociffirst{}{\vspace{1cm}}}% ajuster selon besoin
{\mytocline{0}{2em}{2em}%
{\textbf{\etocnumber}}%
{\textbf{\etocname}}{\textbf{\etocpage}}}
{}

\etocsetstyle{chapter}
{}
{}
{\mytocline{\@secpenalty}{3.3em}{1.3em}%
{\etocnumber}{\etocname}{\etocpage}}
{}

\etocsetstyle{section}
{}
{}
{\etociffirst{\mytocline{10000}}{\mytocline{0}}%
{1.7em}{2em}{\etocnumber}{\etocname}{\etocpage}}
{}
{}

\makeatother


\begin{document}

\setcounter{chapter}{10}

\etocsetnexttocdepth{chapter}

\tableofcontents

\part{Partie 1}


\chapter{C1}

\etocsettocstyle{}{}% from now on
\etocsetnexttocdepth{section}

Je voudrais que la table des matières ci-dessous ne comporte que des
numéros 1, 2, 3 etc et pas 11.1, 11.2, etc ...

\localtableofcontents

\vspace{5cm}

Ci-dessous par contre pas de problème : dans l'exemple complet les
numéros sont corrects ...

\section{S1}

\section{S2}

\section{S3}

Blabla


\end{document}

jfbu

unread,
Jan 29, 2018, 5:23:54 PM1/29/18
to
Le 29/01/2018 à 13:55, Olivier V a écrit :
> J'ai dû rater quelque chose ...
>
> ! Undefined control sequence.
> \Etoc@contents@minusone ->\etocsavedparttocline
>                                                 {\numberline {\textbf {\etoc...
> l.93
>


Bonsoir, votre version d'etoc est un peu ancienne
il faut v1.08k [2017/09/28]

sinon, merci pour votre MWE

mais trop fatigué là, je répondrai demain si j'ai le temps

désolé,

cordialement

Jean-François

Olivier V

unread,
Jan 31, 2018, 12:56:58 PM1/31/18
to
Le 30/01/2018 à 10:50, jfbu a écrit :
> Le 29/01/2018 à 13:55, Olivier V a écrit :
>> Merci si vous avez encore un peu de temps ... sinon tant pis ça n'empêche pas de fonctionner ...
>>
>> Olivier V
>
> cf fichier joint
>

Un grand merci pour le code et le fichier.

Je viens de le compiler avec mon vieil etoc et cette fois ci ça passe.
Je testerai sur l'exemple complet ce week-end ...

Je vais quand même mettre tout à jour ; ça évitera d'autres problèmes ...

Olivier V

Olivier V

unread,
Feb 5, 2018, 12:20:23 PM2/5/18
to
Le 31/01/2018 à 18:56, Olivier V a écrit :
> Un grand merci pour le code et le fichier.
>
> Je viens de le compiler avec mon vieil etoc et cette fois ci ça passe.
> Je testerai sur l'exemple complet ce week-end ...
>
> Je vais quand même mettre tout à jour ; ça évitera d'autres problèmes ...

J'ai testé sur mon fichier complet : tout fonctionne parfaitement.

J'ai aussi mis :
\renewcommand{\thepart}{\Alph{part}}
\renewcommand{\thechapter}{\Roman{chapter}}
et ajusté la largeur dans la table des matières.

Un grand grand merci pour tout !!!!

Olivier V

jfbu

unread,
Feb 5, 2018, 4:33:18 PM2/5/18
to
de rien, heureux que ça serve, et merci pour le retour,

J.-F.

0 new messages