Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation (La)TeX avancée Discussion :

Numérotation pour la division \subsubparagraph


Sujet :

Programmation (La)TeX avancée

  1. #1
    Membre à l'essai
    Numérotation pour la division \subsubparagraph
    Bonjour,


    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    % Préambule minimal fonctionnel
    \documentclass[10pt,twoside,openany]{book}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[frenchb]{babel}


    Pour rappel, le classe book contient les divisions suivantes :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    % \part (1er niveau)
    % \chapter(2e niveau)
    % \section(3e niveau)
    % \subsection(4e niveau)
    % \subsubsection(5e niveau)
    % \paragraph(6e niveau)
    % \subparagraph(7e niveau)

    D'après ce que j'observe et comprends, la numérotation d'une division \subsubparagraph ne prend pas en compte le numéro de partie (division de 1er niveau).
    J'obtiens systématiquement le format hiéarchique décimal suivant : n.n.n.n.n.n où le dernier "n" représente la position du sous-paragraphe (division de 7e niveau) et le premier "n" représente la position du chapitre (division de 2e niveau) au sein de la partie.
    Comment peut-on faire pour intégrer le numéro de partie au numéro de sous-paragraphe pour obtenir un format n.n.n.n.n.n.n ?
    J'ai regardé un peu du côté de
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    \renewcommand{\thesubparagraph}{\thepart.\thechapter...***pseudo code***}}
    mais je n'arrive à rien construire qui soit compilable...

    Merci de votre aide.
    Jean-Louis

  2. #2
    Responsable LaTeX

    Comme ceci ?
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    \documentclass{book}
    \setcounter{secnumdepth}{5}
    \makeatletter
    \renewcommand\thesubparagraph {\thepart.\theparagraph.\@arabic\c@subparagraph}
    \makeatother
    \begin{document}
    \part{ bla bla}
    \chapter{chapitre}
    \section{section}
    \subsection{subsection}
    \subsubsection{sub sub}
    \paragraph{paragraphe}
    \subparagraph{sub paragraphe}
    \end{document}


    Il faut régler \setcounter{secnumdepth}{5} pour qu'il affiche les numérations et rajouter \thepart. dans le sub-paragraphe. (faire de même pour le reste)
    PS : le code du \renewcommandest disponible dans book.cls.
    Développeur Web freelance : http://www.ls-web.fr

  3. #3
    Membre à l'essai
    Merci beaucoup "Nikopol",

    Justement, j'avais plus ou moins déjà pratiqué ce que vous indiquez. Le souci, c'est que j'obtiens quelque chose du style 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 Tel que cela se compile chez moi, il y a concaténation des numérotations hiérarchiques de toutes les divisions respectives...

    Jean-Louis

  4. #4
    Responsable LaTeX

    Il faudrait un ecm pour pouvoir de quoi il retourne.
    Développeur Web freelance : http://www.ls-web.fr

  5. #5
    Membre à l'essai
    Bonjour,

    Voici donc un ecm (j'aurais effectivement dû commencer par là).
    Un grand merci pour vos remarques et astuces.

    Jean-Louis

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    \documentclass[10pt,twoside,openany]{book}
     
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[frenchb]{babel}
     
    \usepackage{titlesec}
    \setcounter{secnumdepth}{5}
     
    % Formate l'intitulé de partie
            \titleformat{\part}[display]{\Huge}{\thepart}{2pc}{}
    % Formate l'intitulé de chapitre
            \makeatletter
            \@addtoreset{chapter}{part} % Pour que le numéro des chapitres recommence à 1 dans chaque partie
            \makeatother
            \titleformat{\chapter}[hang]{\huge}{\thechapter}{2pc}{}
    % Formate l'intitulé de section
            \titleformat{\section}[hang]{\LARGE}{\thesection}{2pc}{}
    % Formate l'intitulé de sous-section
            \titleformat{\subsection}[hang]{\Large}{\thesubsection}{2pc}{}
    % Formate l'intitulé de sous-sous-section
            \titleformat{\subsubsection}[hang]{\large}{\thesubsubsection}{2pc}{}
    % Formate l'intitulé de paragraphe
            \titleformat{\paragraph}[hang]{\normalsize}{\theparagraph}{2pc}{}
    % Formate l'intitulé de sous-paragraphe
            \titleformat{\subparagraph}[runin]{\normalsize\itshape}{\thesubparagraph}{2pc}{}
     
    % Je souhaite intégrer le numéro de partie dans le numéro de \subsubparagraph (le tout en numéros arabes)
    % mais il y a systématiquement concaténation de tous les numéros hiérarchiques des divisions précédentes!
    % - et je ne souhaite pas abandonner la numérotation hiérarchique pour autant...
    \renewcommand\thesubparagraph{\@arabic\thepart.\thechapter\thesection\thesubsection\thesubsubsection\theparagraph.\c@thesubparagraph} 
     
    \begin{document}
    \part{ bla bla}
    \chapter{chapitre}
    \section{section}
    \subsection{sous-section}
    \subsubsection{sous-sous-section}
    \paragraph{paragraphe}
    \subparagraph{sous-paragraphe}
    \end{document}

  6. #6
    Membre actif
    J'ai pas tout compris sur le problème. Mais c'est sûr que ça donne quelque de bizarre puisque \thechapter imprimer 1, puis \thesection imprime 1.1, etc, donc au final vous allez vous retrouver avec 11.11.1.11.1.1.1... donc c'est pas ce qu'on veut.

    Comme vous voulez afficher le numéro de la partie dans les numéros des chapitres, sections, subsections, ... subparagraphs, j'aurais eu tendance à simplement faire:
    \renewcommand\thechapter{\arabic{part}.\arabic{chapter}}, ce qui donne sur votre code :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    \documentclass[10pt,twoside,openany]{book}
     
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage[frenchb]{babel}
     
    \usepackage{titlesec}
    \setcounter{secnumdepth}{5}
     
    % Formate l'intitulé de partie
            \titleformat{\part}[display]{\Huge}{\thepart}{2pc}{}
    % Formate l'intitulé de chapitre
            \makeatletter
            \@addtoreset{chapter}{part} % Pour que le numéro des chapitres recommence à 1 dans chaque partie
            \makeatother
            \titleformat{\chapter}[hang]{\huge}{\thechapter}{2pc}{}
    % Formate l'intitulé de section
            \titleformat{\section}[hang]{\LARGE}{\thesection}{2pc}{}
    % Formate l'intitulé de sous-section
            \titleformat{\subsection}[hang]{\Large}{\thesubsection}{2pc}{}
    % Formate l'intitulé de sous-sous-section
            \titleformat{\subsubsection}[hang]{\large}{\thesubsubsection}{2pc}{}
    % Formate l'intitulé de paragraphe
            \titleformat{\paragraph}[hang]{\normalsize}{\theparagraph}{2pc}{}
    % Formate l'intitulé de sous-paragraphe
            \titleformat{\subparagraph}[runin]{\normalsize\itshape}{\thesubparagraph}{2pc}{}
     
    % Je souhaite intégrer le numéro de partie dans le numéro de \subsubparagraph (le tout en numéros arabes)
    % mais il y a systématiquement concaténation de tous les numéros hiérarchiques des divisions précédentes!
    % - et je ne souhaite pas abandonner la numérotation hiérarchique pour autant...
    \renewcommand\thechapter{\arabic{part}.\arabic{chapter}} 
     
    \begin{document}
    \part{ bla bla}
    \chapter{chapitre}
    \section{section}
    \subsection{sous-section}
    \subsubsection{sous-sous-section}
    \paragraph{paragraphe}
    \subparagraph{sous-paragraphe}
    \end{document}

  7. #7
    Membre à l'essai
    Merci beaucoup!
    Ce me suffit et ça fonctionne très bien!

    Jean-Louis