IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Mise en forme Discussion :

Mise en page des annexes


Sujet :

Mise en forme

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 37
    Points : 21
    Points
    21
    Par défaut Mise en page des annexes
    Bonjour à tous,

    Je suis entrain de rédiger un gros rapport et j'ai besoin d'y insérer des annexes. Jusqu'ici tout va bien. C'est au niveau de la mise en forme de ces annexes que je bloque.

    Il y a plusieurs choses qui me dérange.
    Déjà le titre de chaque annexes : \chapter{titre1} produit "ANNEXE A" puis sur la ligne d'en dessous "titre1". Je voudrais tout sur la même ligne : " ANNEXE A : titre1"
    Sans doute un \renewcommand sur le \chapter à faire mais je n'ai pas trouvé comment.

    Ensuite mon deuxième souci vient de la toc.
    Je voudrais une ligne avec "Annexes" en style \chapter (ca c'est bon) puis des lignes avec "A : titre1", "B : titre2", ... en style \section et non pas \chapter.


    Et enfin le top serai de pouvoir rajouter une petite toc des annexes dans la page de titre des annexes (page 5)
    Un petit ECM :

    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
     
    \documentclass[12pt, a4paper]{report}
     
    \usepackage[french]{babel}
    \usepackage[utf8x]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}
     
    \usepackage[toc,page]{appendix}
     
     
    \begin{document}
     
    \tableofcontents
     
    \chapter{\textsc{chapitre 1 du rapport}}
    \section{section1}
    \section{section2}
    \chapter{\textsc{chapitre 2 du rapport}}
    \section{section1}
    \section{section2}
    \chapter{\textsc{chapitre 3 du rapport}}
    \section{section1}
    \section{section2}
     
     
    \renewcommand{\appendixname}{Appendices}
    \renewcommand{\appendixtocname}{\textsc{Annexes}}
    \renewcommand{\appendixpagename}{Annexes}
     
    \begin{appendices}
    \pagenumbering{Roman}
    \chapter{titre Annexe1} 
    \chapter{titre Annexe2} 
    \end{appendices}
     
    \end{document}

    Merci d'avance

    Martin

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 344
    Points : 561
    Points
    561
    Par défaut
    Bonjour,

    C'est une demande compliquée, il va falloir tripatouiller les entrailles des classes. Je l'ai fait pour mon mémoire de licence, voici ce que je peux te proposer. Dis moi s'il y a des ajustements à faire, on verra ensemble si c'est faisable.

    rapport.pdf

    Pour résumer :

    • Les annexes n'apparaissent pas dans la tables des matières principale ;
    • seule la table des annexes est référencée dans la TOC, au même titre que les LOF et LOT ;
    • les annexes sont sous forme de section
    • les annexes sont référencées dans la tables des annexes.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    Oui ca me semble pas mal.

    Martin

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 344
    Points : 561
    Points
    561
    Par défaut
    Alors, je vais essayer de détailler la démarche le plus possible. On va partir d'un ECM simple pour arriver au résultat escompté :

    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
    % !TEX encoding = UTF-8 Unicode
    % !TEX TS-program = pdflatex
     
    \documentclass[a4paper, french, 12pt, oneside]{book}
     
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{geometry}
    \usepackage{lipsum}
    \usepackage{babel}
     
    \begin{document}
     
    \frontmatter
     
    	\tableofcontents
     
    \mainmatter
     
    	\chapter{Premier}
     
    		\lipsum[13]
     
    	\chapter{Second}
     
    	        \lipsum[13]
     
    \appendix
     
    	\chapter{Première}
     
    		\lipsum[11]
     
    	\chapter{Seconde}
     
    		\lipsum[11]
     
    \end{document}
    À partir de maintenant, les choses Techniques vont commencer ! Âmes sensibles s'abstenir !

    On va déjà commencer par modifier la commande de création de la table des matière pour que les annexes n'apparaissent pas dedans. Ça va se faire grâce aux fichiers temporaires. Lors de la création de la table des matières, elle lit un fichier .toc. On va donc s'arranger pour placer les annexes dans un fichier .toa (table of appendices). Cette macro va prendre un argument optionnel, "toa". À défaut, ce sera "toc".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    \renewcommand\tableofcontents[1][toc]{%
    	\if@twocolumn
    		\@restonecoltrue\onecolumn
    	\else
    		\@restonecolfalse
    	\fi
    	\chapter{\contentsname}% on en profite pour faire apparaitre la toc dans la toc
    	\@starttoc{#1}%
    	\if@restonecol\twocolumn\fi
    }
    Ensuite il faut créer une commande qui se comporte comme \chapter et qui va venir se substituer à cette dernière après l'appel de \appendix.

    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
    \def\@appendix[#1]#2{
    	\ifnum \c@secnumdepth >\m@ne
    		\if@mainmatter
    			\refstepcounter{chapter}%
    			\typeout{\@chapapp\space\thechapter.}%
    			\addcontentsline{toa}{chapter}% modification
    				{\protect\numberline{\thechapter}#1}%
    		\else
    			\addcontentsline{toa}{chapter}{#1}% modification
    		\fi
    	\else
    		\addcontentsline{toa}{chapter}{#1}% modification
        \fi
    	\chaptermark{#1}%
    	\addtocontents{lof}{\protect\addvspace{10\p@}}%
    	\addtocontents{lot}{\protect\addvspace{10\p@}}%
    	\if@twocolumn
    		\@topnewpage[\@makechapterhead{#2}]%
    	\else
    		\@makechapterhead{#2}%
    		\@afterheading
    	\fi
    }
    On arrive à la fin du gros morceau, la modification de la macro \appendix pour qu'elle prenne en compte nos modifications :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    \def\appendix{
    	\global\let\@chapter\@appendix% on remplace \@chapter par \@appendix
    	\par\setcounter{chapter}{0}%
    	\setcounter{section}{0}%
    	\gdef\@chapapp{\appendixname}%
    	\gdef\thechapter{\@Alph\c@chapter}%
    	\gdef\contentsname{Table des annexes}% on en profite pour faire des ajustements cosmetiques
    	\tableofcontents[toa]% affichage de la toa
    }
    À partir de maintenant, le code est fonctionnel. Il reste encore quelques petites choses à modifier pour arriver à ce qu'on veut.

    Déjà le titre de chaque annexes : \chapter{titre1} produit "ANNEXE A" puis sur la ligne d'en dessous "titre1". Je voudrais tout sur la même ligne : " ANNEXE A : titre1"
    Sans doute un \renewcommand sur le \chapter à faire mais je n'ai pas trouvé comment.
    Pour ça, on va faire comme pour \@chapter, on va utiliser \appendix pour modifier la macro et obtenir ce qu'on veut. Cette macro va copier \@makechapterhead.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    \def\@makeappendixhead#1{%
    	\vspace*{50\p@}%
    	{\parindent \z@ \raggedright \normalfont
    	\ifnum \c@secnumdepth >\m@ne
    		\if@mainmatter
    			\huge\bfseries \@chapapp\space \thechapter\space:
    		\fi
    	\fi
    	\interlinepenalty\@M
    	\Huge \bfseries #1\par\nobreak
    	\vskip 40\p@}%
    }
    Et il faut adapter la macro \appendix par la même occasion pour y ajouter le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \global\let\@makechapterhead\@makeappendixhead% on remplace \@makechapterhead par \@makeappendixhead
    Je voudrais une ligne avec "Annexes" en style \chapter (ca c'est bon) puis des lignes avec "A : titre1", "B : titre2", ... en style \section et non pas \chapter.
    Pour ça on va devoir faire en sorte qu'à partir de \appendix, la macro \l@chapter se comporte comme \l@section
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \def\l@appendix#1#2{\@dottedtocline{1}{1.5em}{2.3em}{#1}{#2}}
    Puis l'ajout dans la macro \appendix :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \global\let\l@chapter\l@appendix% on remplace \l@chapter par \l@appendix
    Au final, voici le code que l'on obtient ainsi que le résultat de toutes ces modifications :

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    % !TEX encoding = UTF-8 Unicode
    % !TEX TS-program = pdflatex
     
    \documentclass[a4paper, french, 12pt, oneside]{book}
     
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{geometry}
    \usepackage{lipsum}
    \usepackage{babel}
     
    \makeatletter
     
    % modification de la toc pour faire pouvoir spécifier le fichier à lire
    \renewcommand\tableofcontents[1][toc]{%
    	\if@twocolumn
    		\@restonecoltrue\onecolumn
    	\else
    		\@restonecolfalse
    	\fi
    	\chapter*{\contentsname}
    	\addcontentsline{toc}{chapter}{\contentsname}% on en profite pour faire apparaitre la toc dans la toc
    	\@starttoc{#1}%
    	\if@restonecol\twocolumn\fi
    }
     
    % création d'une macro se comportant comme \chapter qui va se substituer 
    % à cette dernière lors de l'appel d'\appendix
    \def\@appendix[#1]#2{
    	\ifnum \c@secnumdepth >\m@ne
    		\if@mainmatter
    			\refstepcounter{chapter}%
    			\typeout{\@chapapp\space\thechapter.}%
    			\addcontentsline{toa}{chapter}%
    				{\protect\numberline{\thechapter}#1}%
    		\else
    			\addcontentsline{toa}{chapter}{#1}%
    		\fi
    	\else
    		\addcontentsline{toa}{chapter}{#1}%
        \fi
    	\chaptermark{#1}%
    	\addtocontents{lof}{\protect\addvspace{10\p@}}%
    	\addtocontents{lot}{\protect\addvspace{10\p@}}%
    	\if@twocolumn
    		\@topnewpage[\@makechapterhead{#2}]%
    	\else
    		\@makechapterhead{#2}%
    		\@afterheading
    	\fi
    }
     
    % création d'une macro identique à \@makechapterhead pour modifier 
    % l'apparence des titres des annexes
    \def\@makeappendixhead#1{%
    	\vspace*{50\p@}%
    	{\parindent \z@ \raggedright \normalfont
    	\ifnum \c@secnumdepth >\m@ne
    		\if@mainmatter
    			\huge\bfseries \@chapapp\space \thechapter\space:
    		\fi
    	\fi
    	\interlinepenalty\@M
    	\Huge \bfseries #1\par\nobreak
    	\vskip 40\p@}%
    }
     
    % creation d'une macro \l@appendix qui va remplacer \l@chapter
    \def\l@appendix#1#2{\@dottedtocline{1}{1.5em}{2.3em}{#1}{#2}}
     
    % modification de la commande \appendix pour qu'elle déporte 
    % les annexes dans le fichier toa
    \def\appendix{
    	\global\let\@chapter\@appendix% on remplace \@chapter par \@appendix
    	\global\let\@makechapterhead\@makeappendixhead% on remplace \@makechapterhead par \@makeappendixhead
    	\global\let\l@chapter\l@appendix% on remplace \l@chapter par \l@appendix
    	\par\setcounter{chapter}{0}%
    	\setcounter{section}{0}%
    	\gdef\@chapapp{\appendixname}%
    	\gdef\thechapter{\@Alph\c@chapter}%
    	\gdef\contentsname{Table des annexes}% on en profite pour faire des ajustements cosmetiques
    	\tableofcontents[toa]% affichage de la toa
    }
     
    \makeatother
     
    \begin{document}
     
    \frontmatter
     
    	\tableofcontents
     
    \mainmatter
     
    	\chapter{Premier}
     
    		\lipsum[13]
     
    	\chapter{Second}
     
    	\lipsum[13]
     
    \appendix
     
    	\chapter{Première}
     
    		\lipsum[11]
     
    	\chapter{Seconde}
     
    		\lipsum[11]
     
    \end{document}
    test.pdf

    Il reste encore quelques problèmes qui peuvent apparaitre, par exemple si tu utilises l'extension hyperref. Si tu charges l'extension avant les modifications, ces dernières vont interférer avec hyperref et l'empécher de fonctionner. Pour résoudre ça, il suffit de charger l'extension après les modifications.

    Voilà J'ai essayé de répondre le plus possible à tes besoins, j'espère que j'y suis arrivé

  5. #5
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2013
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 37
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    Merci beaucoup. En effet c'est teXnique !!

    Le problème c'est que j'ai tout fait en classe report et du coup j'ai pas accès au \frontmatter \mainmatter. Et en passant à la classe book ba j'ai d'autre truc qui passent plus =/

    Mais bon je vois l'idée et je vais essayer de bidouiller tout ça (sans passer trop de temps sur la forme plus que sur le fond )


    Je te remercie encore

    Martin

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 344
    Points : 561
    Points
    561
    Par défaut
    De mémoire les deux classes sont assez similaires. Il "suffit" de reprendre les macros modifiées et de les adapter comme je l'ai fait. Je suis bien conscient que c'est plus simple à dire qu'à faire, surtout quand on débute en LaTeX.

    Bon courage et n'hésite pas à revenir si tu es coincé

Discussions similaires

  1. Mise en page des chapitres
    Par mumu2211 dans le forum Mise en forme
    Réponses: 4
    Dernier message: 30/03/2007, 21h20
  2. Mise en page des panels : y a t-il un outil pour le faire en Visuel ?
    Par folker34 dans le forum EDI et Outils pour Java
    Réponses: 4
    Dernier message: 13/02/2007, 17h28
  3. [Visual Web] [SJSC] Mise en page des composants relative
    Par Original Prankster dans le forum NetBeans
    Réponses: 2
    Dernier message: 29/06/2006, 10h07
  4. [LaTeX2html] Mise en page des pages html
    Par coachllb dans le forum Editeurs / Outils
    Réponses: 8
    Dernier message: 09/02/2006, 15h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo