titletoc avec part

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

titletoc avec part

Messagepar jobonne » Mardi 06 Mars 2018, 14:31

Bonjour,

Petit souci avec titletoc:

Avec le code ci-dessous j'obtiens
Partie 1 suivi du titre de la partie souligné 2 fois. Pour des raisons purement esthétiques, je souhaiterais avoir:
1ère Partie suivi du titre de la partie souligné 2 fois.
Puis plus loin 2ème Partie suivi du titre de la partie souligné 2 fois.
J'ai beau chercher je ne trouve pas. A l'aide!
Merci!
Jo

Code: Tout sélectionner
\usepackage{titletoc}

\titlecontents{part}
[0pt]
{\addvspace{3mm}\scshape\bfseries\Large Partie~}
{}
{}
{\dotfill\contentspage\hrule\vspace{2pt}\hrule}   
jobonne
Déca-utilisateur
 
Messages: 37
Inscription: Vendredi 22 Novembre 2013, 12:31
Localisation: Bruxelles
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: titletoc avec part

Messagepar balf » Mercredi 07 Mars 2018, 10:53

Bonjour,

Jai déjà dû faire quelque chose peu ou prou analogue, mais un exemple complet minimal serait le bienvenu!
B. A.
balf
Zetta-utilisateur
 
Messages: 3726
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: titletoc avec part

Messagepar jobonne » Vendredi 09 Mars 2018, 08:41

Bonjour,

Voici donc un code complet:
Je souhaite avoir dans la table des matières la reproduction exacte du titre de chaque partie, c'est-à-dire 1ère Partie au lieu de Partie 1 et 2ème Partie au lieu de Partie 2.

Merci encore.

Jo

Code: Tout sélectionner
\documentclass[11pt,a4paper]{article}
\usepackage[left=2cm,right=2cm,bottom=2cm,top=2cm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{ifthen}
\renewcommand\thepart{\arabic{part}}

\usepackage{titlesec}
\setcounter{secnumdepth}{4}
\titleformat{\part}{\Huge\bfseries\filcenter}{\scshape \ifthenelse{\thepart=1}{\thepart\up{ère}}{\thepart\up{ème}} Partie }{0pt}{\\[1cm]}
\titlespacing*{\part}{0cm}{0cm}{0cm}
\titleformat{\section}{\LARGE\bfseries}{\thesection}{0pt}{ -- }
\titlespacing*{\section}{0cm}{0cm}{0cm}

\usepackage{titletoc}
\titlecontents{part}
[0pt]
{\addvspace{3mm}\scshape\bfseries\Large Partie~}
{}
{}
{\hrule\vspace{2pt}\hrule}
[\addvspace{3mm}]

\usepackage[french]{babel}

\begin{document}
%2 compilations successives

\tableofcontents

\newpage

\part{Titre partie}

\section{Titre section}

\newpage

\part{Titre partie}

\section{Titre section}
\end{document}
jobonne
Déca-utilisateur
 
Messages: 37
Inscription: Vendredi 22 Novembre 2013, 12:31
Localisation: Bruxelles
Statut actuel: Actif et salarié | Enseignant

Re: titletoc avec part

Messagepar balf » Vendredi 09 Mars 2018, 23:01

Voici une solution, dont je ne suis pas entièrement satisfait. Pour le problme de la table des matières, il est indiqué dans la documentation de titlesec qu'il faut charger l'option parties newparttoc pour que titletoc puisse s'occuper du formatage des parties, en raison de la façon non-standard dont les parties sont gérées par LaTeX.

J'aurais préféré utiliser l'extensionfmtcount pour l'affichage ordinal des numéros de parties, mais il semble qu'il ait des problèmes avec l'option abbr, qui affiche selon les recommandations de l'Imprimerie Nationale. J'en profite pour vous signaler que ième s'écrit simplement sous la forme *e* (en exposant) et que *ier* et *ière* sont simplement *r* et *re*.

Je me demande si vous n'auriez pas préféré afficher les ordinaux en français, plutôt que sous forme numérique. L'extension fmtcount fait ça parfaitement.

Quoi qu'il en soit, voici le code :
Code: Tout sélectionner
    \documentclass[11pt, a4paper, french]{article}
    \usepackage[margin=2cm, showframe]{geometry}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{babel}
    \usepackage{etoolbox}
    \renewcommand\thepart{\arabic{part}}

    \usepackage[newparttoc]{titlesec}
    \setcounter{secnumdepth}{4}
    \titleformat{\part}[display]{\Huge\bfseries\filcenter}
    {\scshape \ifnumequal{\thepart}{1}{\thepart\iere}{\thepart\ieme} Partie}
    {2.5ex}{}
    \titlespacing*{\part}{0cm}{0cm}{0cm}
    \titleformat{\section}{\LARGE\bfseries}{\thesection}{0pt}{ -- }
    \titleformat{name = \section, numberless}{\LARGE\bfseries}{}{0pt}{}
    \titlespacing*{\section}{0cm}{0cm}{0cm}

    \usepackage[]{titletoc}
    \titlecontents{part}
    [3cm]
    {\addvspace{3mm}\bfseries\Large}
    {\contentslabel[\scshape\thecontentslabel\ifnumequal{\thecontentslabel}{1}{\iere}{\ieme} Partie]{3cm}\quad}
    {}
    {}
    [\titlerule\vskip2pt\titlerule\addvspace{3mm}]

    \begin{document}
    %2 compilations successives
    \tableofcontents

    \newpage

    \part{Titre partie}

    \section{Titre section}

    \newpage

    \part{Titre partie}

    \section{Titre section}

    \end{document}

Résultat en p.j.
B. A.
Fichiers joints
parties_ordinales.pdf
(104.93 Kio) Téléchargé 6 fois
balf
Zetta-utilisateur
 
Messages: 3726
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: titletoc avec part

Messagepar jobonne » Samedi 10 Mars 2018, 19:10

Bonjour,

Votre réponse correspond bien à mes attentes et je vous en remercie.
J'ai cependant dû garder le package ifthen au lieu de etoolbox que vous proposez avec la commande \ifnumequal car il y avait une incompatibilité avec un autre package que je n'ai pas réussi à résoudre.
Je ne connaissais pas l'extension fmtcount, j'ai lu la documentation et je vais creuser un peu çà.
Bien cordialement,
Jo
jobonne
Déca-utilisateur
 
Messages: 37
Inscription: Vendredi 22 Novembre 2013, 12:31
Localisation: Bruxelles
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot], Proximic [Spider] et 17 invités