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 :

Repères sur la tranche externe


Sujet :

Programmation (La)TeX avancée

  1. #1
    Futur Membre du Club
    Repères sur la tranche externe
    Bonjour,

    Je suis présentement en train d'écrire des notes de cours en utilisant la classe book.

    J'aimerais bien réussir à insérer des repères du la tranche externe, c'est-à-dire des bandes colorées à différentes hauteurs selon le chapitre, qui fonctionneront recto-verso lors de l'impression.

    Je suis tombé sur ceci : https://aurelienpierre.com/wp-content/uploads/fancyhdr_fr.pdf
    (voir la page 20)

    Toutefois, je ne veux pas avoir à indiquer moi-même les chapitres, je veux que le lien se fasse directement avec ma table des matières.

    Quelqu'un aurait-il une idée de comment modifier le code présenté adéquatement et surtout facilement ?

    Merci,

    Dominik

  2. #2
    Membre confirmé
    Bonjour,

    La recherche en anglais avec le terme thumb index donne plus de résultat, dont ce lien qui présente comment le faire pour les parties.

    Voici une version adaptée pour les chapitres :

    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
    \documentclass{book}
    \usepackage[scale=1,angle=0,opacity=1]{background}
    \usetikzlibrary{calc}
    \usepackage{ifthen}
    \usepackage{lipsum}
     
    \backgroundsetup{contents={}}
     
    \pagestyle{plain}
     
    % auxiliary counter
    \newcounter{chapshift}
    \addtocounter{chapshift}{-1}
     
    \definecolor{mp}{RGB}{240,240,240}
     
    \newcommand{\chaptitle}{}
    \makeatletter
    \def\@chapter[#1]#2{
    	\renewcommand\chaptitle{#1}%
    	\ifnum \c@secnumdepth >\m@ne
        	\if@mainmatter
    			\refstepcounter{chapter}%
                \typeout{\@chapapp\space\thechapter.}%
                \addcontentsline{toc}{chapter}%
                	{\protect\numberline{\thechapter}#1}%
    		\else
    			\addcontentsline{toc}{chapter}{#1}%
    		\fi
        \else
    		\addcontentsline{toc}{chapter}{#1}%
    	\fi
    	\chaptermark{#1}%
    	\pf%
    	\addtocontents{lof}{\protect\addvspace{10\p@}}%
    	\addtocontents{lot}{\protect\addvspace{10\p@}}%
    	\if@twocolumn
    		\@topnewpage[\@makechapterhead{#2}]%
    	\else
    		\@makechapterhead{#2}%
    		\@afterheading
    	\fi}
    \makeatother
     
    % the main command; the mandatory argument sets the color of the vertical box
    \newcommand\pf{%
    \AddEverypageHook{%
    \ifthenelse{\isodd{\value{page}}}
      {%
        \backgroundsetup{%
          contents={%
            \begin{tikzpicture}[overlay,remember picture]
            \node[
              fill=mp,
              inner sep=0pt,
              outer sep=0pt,
              rectangle,
              text width=2cm,
              minimum height=4cm,
              align=center,
              anchor=north east,
            ]
            at ( $ (current page.north east) + (0,-2*\thechapshift cm) $ )
            {\rotatebox{90}{\parbox[c][1.5cm][t]{3.5cm}{\textcolor{black}{\centering\chaptitle}}}};
        \end{tikzpicture}%
           }%
        }%
      }
      {%
        \backgroundsetup{%
          contents={%
          \begin{tikzpicture}[overlay,remember picture]
          \node[
            fill=mp,
            inner sep=0pt,
            outer sep=0pt,
            rectangle,
            text width=2cm,
            minimum height=4cm,
            align=center,
            anchor=north west,
          ]
          at ($ (current page.north west) + (0,-2*\thechapshift cm) $)
          {\rotatebox{90}{\parbox[c][1.5cm][t]{3.5cm}{\textcolor{black}{\centering\chaptitle}}}};
          \end{tikzpicture}%
            }%
          }%
      }
      \BgMaterial}%
      \stepcounter{chapshift}%
    }
     
    \begin{document}
     
    \chapter{a1}
    \lipsum[1-7]
     
    \chapter{b1}
    \lipsum[1-7]
     
    \chapter{c1}
    \lipsum[1-7]
     
    \end{document}


    Pour des raisons que j'ignore, ce code nécessite 3 compilations pour que les éléments se mettent en place correctement.
    La FAQ apporte souvent la solution aux problèmes
    Avant de demander de l'aide, pensez à faire un ECM ! Un problème bien expliqué est un problème à moitié résolu .

  3. #3
    Futur Membre du Club
    Merci
    Merci beaucoup pour la rapidité et la bonne réponse!

  4. #4
    Responsable LaTeX

    Pour des raisons que j'ignore, ce code nécessite 3 compilations pour que les éléments se mettent en place correctement.
    Je dirais une compilation "normale" ou classique, une pour que les éléments de mise en page tels que les numéros de chapitrs et de pages soie,t pris en compte et une dernière pour mettre en place les éléments graphiques de tikz qui nécessitent une compilations supplémentaire \begin{tikzpicture}[overlay,remember picture]
    Développeur Web freelance : http://www.ls-web.fr

  5. #5
    Futur Membre du Club
    Bonjour,

    J'ai essayé le tout et malheureusement les repères n'apparaissent pas tous. Il y a en pour le dernier chapitre, mais c'est tout.

    Je fournis mes trois fichiers .tex (c'est le fouillis dedans le préambule toutefois, désolé à l'avance).

    Dominik

  6. #6
    Responsable LaTeX

    (c'est le fouillis dedans le préambule toutefois, désolé à l'avance).
    C'est je pense de ce coté qu'il faut regarder. Quand j'ai vu le préambule, j'ai laissé tomber.
    Il y a des appels aux même package plusieurs fois, l'appel à des styles de pages multiples et d'autres...
    Un peu de ménage ne ferais pas de mal et si cela ne va pas mieux, fournis nous un ecm.
    Développeur Web freelance : http://www.ls-web.fr