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 avancée d'une table des matières


Sujet :

Mise en forme

  1. #1
    Membre éclairé
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2008
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 522
    Points : 725
    Points
    725
    Par défaut Mise en page avancée d'une table des matières
    Bonjour

    Je voudrais pouvoir personnaliser la mise en page d'une tables des matières, d'un document de class book. J'utilise aussi le package fancyhdr
    Pour l'instant j'ai défini :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    \newcommand{\chapitre}{\addtocounter{chap}{1}\chapter*{Chapitre \Roman{chap}}\addcontentsline{toc}{chapter}{Chapitre \Roman{chap}}}

    Pour l'
    instant \tableofcontents imprime une table des matières comme il faut.

    Maintenant, ce que j'aimerai faire, c'est ajouter un titre aux chapitres. La mise en forme dans le corps du texte n'est pas importante pour l'instant, mais le résultat produit par \chapter ne me convient pas.

    Ce que j'aimerai faire c'est pouvoir redéfinir la mise en page des chapitres dans la table des matières avec un résultat comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \textbf{Chapitre \Roman{\thechapter}}\\{\chaptername \hfill \chapterpage}
    Le problème c'est que addcontentsline ne permet pas les retours à la ligne, ça génère l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ! Incomplete \iffalse; all text was ignored after line 37.<inserted text>\fi<> livre.texThe file ended while I was skipping conditional text.This kind of error happens when you say `\if...' and forgetthe matching `\fi'. I've inserted a `\fi'; this might work.! Emergency stop.<> livre.tex (job aborted, no legal \end found)Here is how much of TeX's memory you used:14903 strings out of 493671281375 string characters out of 3143857392159 words of memory out of 300000017916 multiletter control sequences out of 15000+20000052038 words of font info for 39 fonts, out of 3000000 for 90001025 hyphenation exceptions out of 819169i,11n,66p,3069b,465s stack positions out of 5000i,500n,10000p,200000b,50000s! ==> Fatal error occurred, no output PDF file produced!
    J'ai pensé à redéfinir \l@chapter[2] mais je n'ai pas accès au numéro du chapitre avec cela.

    Du coup est-ce que vous sauriez soit comment implementer un équivalent à \l@chapter[2] qui prenne aussi un numero comme argument, ou comment forcer un saut de ligne dans la table des matières ? Je tiens à garder une numérotation romaine pour les chapitres.

    Cordialement.
    Raphchar.

  2. #2
    Membre éclairé
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2008
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 522
    Points : 725
    Points
    725
    Par défaut
    Bon, problème résolu en se servant de la doc de LaTeX (/doc/latex/base/source2e.pdf)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    \def\addchapitreline#1#2{%
         \addtocontents{toc}{\protect\contentsline{chapitre}{#1}{#2}{\thepage}}}
    Cela me permet de mettre 3 champs d'entrées dans la toc, et non deux et ensuite je peux définir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    \def\l@chapitre#1#2#3{
         \addpenalty{-\@highpenalty}%
         \vskip 1.0em \@plus\p@
         \setlength\@tempdima{1.5em}%
         \begingroup
           \parindent \z@ \rightskip \@pnumwidth
           \parfillskip -\@pnumwidth
           \leavevmode
           \advance\leftskip\@tempdima
           \hskip -\leftskip
           \textbf{#1} \\
           {#2 }\nobreak\dotfill \nobreak { #3}\par
           \penalty\@highpenalty
         \endgroup }
    En temps normal tout aurait du fonctionner plus simplement, mais là les sauts de ligne dans une entrée de la table des matières causent une erreur, et je ne sais pas pourquoi.

    J'espère que cette solution pourra servir à quelqu'un d'autre

    Cordialement
    Raphchar.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Etat: comment créer une table des matières
    Par JenTry dans le forum IHM
    Réponses: 3
    Dernier message: 17/01/2019, 14h36
  2. Réponses: 13
    Dernier message: 15/11/2007, 19h48
  3. Réponses: 4
    Dernier message: 04/06/2007, 11h04
  4. [CR11] une table des matières, avec n° de page : possible ?
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 08/09/2005, 11h49
  5. créer une table des matières avec fop
    Par gedeon555 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 05/07/2005, 15h54

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