Image et table sur une mauvaise page

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Salut, j'ai deux soucis que je n'arrive pas à résoudre.

Le premier problème concerne les en-têtes. Je cherche à afficher le titre de la partie en cours dans l'entête. Le souci est que sur mon document, la première partie commence à la page 4. Du coups, j'aimerai que l'en-tête d'en haut commence à la page 4 (après la table des matières). Et qu'elle se finisse aussi à la page 70, avant la bibliographie.

 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
\documentclass[11pt]{report}  
\usepackage[utf8]{inputenc}  
\usepackage[francais]{babel}  

\usepackage{fancyhdr}
\renewcommand{\footrulewidth}{0.4pt}
\fancypagestyle{style_minuscules}{%
    \fancyhf{}                       % on annule le fancy automatique
    \fancyhead[C]{LE TITRE DE LA PARTIE ICI}
\fancyfoot[C]{\bfseries \thepage} % except the center 
\fancyfoot[L]{nom}
\fancyfoot[R]{2014}
    }
\pagestyle{style_minuscules}
\fancypagestyle{plain}{
\fancyhf{} % clear all header and footer fields 
 \fancyhead[C]{LE TITRE DE LA PARTIE ICI}
\fancyfoot[C]{\bfseries \thepage} % except the center 
\fancyfoot[L]{nom}
\fancyfoot[R]{2014}
}

\begin{document}
test
\end{document}

Le second souci est un problème de placement.

J'ai des tableaux, des images sur une page dans cet ordre :

  • table 1
  • table 2
  • table 3
  • image 1

Il me les affiche comme ça :

  • table 1
  • table 2
  • image 1
  • table 3

ça me fait pareil avec mon texte. Il inverse tout ! J'ai tenté de mettre [h] ou [h!] pour les figures, ça ne change rien. J'ai aussi tenté de diminuer la taille de mes images. Bizarrement ça accentue le problème ..

Si vous avez des conseils que je pourrai essayer !

Merci !

Édité par abrahan

+0 -0
Auteur du sujet

J'ai trouvé un truc :

 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
\documentclass[11pt]{report}  
\usepackage[utf8]{inputenc}  
\usepackage[francais]{babel}  


\newcommand*\parttitle{}
\let\origpart\part
\renewcommand*{\part}[2][]{%
\ifx\\#1\\% optional argument not present?
  \origpart{#2}%
  \renewcommand*\parttitle{#2}%
\else
  \origpart[#1]{#2}%
  \renewcommand*\parttitle{#1}%
\fi
}

\usepackage{fancyhdr}
\renewcommand{\footrulewidth}{0.4pt}
\fancypagestyle{style_minuscules}{%
    \fancyhf{}                       % on annule le fancy automatique
    \fancyhead[C]{Partie \thepart: \parttitle}
\fancyfoot[C]{\bfseries \thepage} % except the center 
\fancyfoot[L]{nom}
\fancyfoot[R]{2014}
    }
\pagestyle{style_minuscules}
\fancypagestyle{plain}{
\fancyhf{} % clear all header and footer fields 
 \fancyhead[C]{Partie \thepart: \parttitle}
\fancyfoot[C]{\bfseries \thepage} % except the center 
\fancyfoot[L]{nom}
\fancyfoot[R]{2014}
}

\begin{document}

\tableofcontents

\part{Nom 1}

\part{Nom 2}

\listoffigures

\listoftables

\end{document}

Le problème est que sur la table des matières, la bibliographie, la table des figures et une page de remerciements que j'ai créé, il y a le nom des parties écrites et elles sont fausses. Aussi, sur la page de la partie 2, il y a écrit en haut le nom de la partie 1.. Comment faire ?

Édité par abrahan

+0 -0

Pour les en têtes, mettre les \pagestyle appropriés aux pages où tu veux qu'ils changent !

Pour le placement des flottants, c'est un peu toujours la même histoire : si tu ne veux pas que les tableaux ou les images flottent et si tu veux contrôler leurs positions, n'utilise pas de flottants !!!

Cela commence à devenir vraiment pénible de te voir poster les mêmes questions sur plusieurs sites parce que tu estimes ne pas avoir de réponse suffisamment rapidement !

Édité par ct

+0 -0
Auteur du sujet

Le \pagestyle n'est pas une bonne idée dans la mesure où je veux juste que les parties aient le bon titre. Par exemple, sur la page de la partie 2, il y a écrit en haut le nom de la partie 1..

Aussi, en haut de la table des matières, j'aurai voulu écrit : "table des matières" (pareil avec la table des figures et la table des tableaux).

Ok, j'ai juste eu à mettre [H] au lieu de [h]. Je croyais que c'était pareil .. Merci !

Édité par abrahan

+0 -0

Le \pagestyle n'est pas une bonne idée dans la mesure où je veux juste que les parties aient le bon titre. Par exemple, sur la page de la partie 2, il y a écrit en haut le nom de la partie 1..

Comme tu ne donne JAMAIS d'ECM qui permet de reproduire le problème, c'en devient lassant de te répondre. À cause de ce défaut que tu ne corriges pas, j'envisage vraiment d'arrêter de répondre à tes questions, aussi bien ici, que sur texnique ou openclassroom.

Aussi, en haut de la table des matières, j'aurai voulu écrit : "table des matières" (pareil avec la table des figures et la table des tableaux).

Et bien, tu déclares la table des matières comme une partie et puis voilà. Je ne vois même pas où est le problème…

Ok, j'ai juste eu à mettre [H] au lieu de [h]. Je croyais que c'était pareil .. Merci !

Mais en faisant ça, tu continues à utiliser un flottant.

+0 -0
Auteur du sujet

Mais je ne comprends, c'est pas un ECM valable que j'ai donné ? On voit distinctement le souci que j'ai expliqué, non ? Si non, qu'attends tu de plus qu'un code qui marche, avec le strict nécessaire ?

Et comment tu fais pour déclarer une table des matières comme une partie ? Ainsi que ma page de remerciements qui n'est autre qu'une page séparée par 2 \newpage.

Oui mais ça marche ^^

+0 -0

Mais je ne comprends, c'est pas un ECM valable que j'ai donné ? On voit distinctement le souci que j'ai expliqué, non ?

Je ne répondrai plus sur texnique, tu abuses vraiment de poser la même question sur 2 sites différents et discuter avec moi sur les deux !

Je ne constate aucun dysfonctionnement sur ton ECM, tout est normal. Ou alors, je n'ai pas compris ce que tu cherches à faire.

+0 -0
Auteur du sujet

Je vais y aller pas à pas :

  • Page 1 : j'aimerai qu'il y ait écrit : "Table des matières" dans l'en-tête au lieu de "Partie :"
  • Page 2 : j'aimerai qu'il y ait écrit "Partie I : Nom 1" au lieu de "Partie I"
  • Page 3 : il devrait y avoir écrit "Partie II: Nom 2" au lieu de "Partie II: nom 1" puisque nous sommes dans la 2éme partie.
  • Page 4 : j'aimerai qu'il y ait écrit : "Table des figures" dans l'en-tête au lieu de "Partie II: Nom 2"
  • Page 5 : j'aimerai qu'il y ait écrit : "Liste des tableaux" dans l'en-tête au lieu de "Partie II: Nom 2"

Édité par abrahan

+0 -0
 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
\documentclass[11pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}
\usepackage{fancyhdr,xpatch}
\makeatletter\xpatchcmd\@part{\markboth{}{}}{\markboth{#2}{#2}}{}{}\makeatother
\renewcommand{\footrulewidth}{0.4pt}
\fancypagestyle{plain}{
    \fancyhf{} % clear all header and footer fields 
    \fancyhead[C]{Partie \thepart: \leftmark}
    \fancyfoot[C]{\bfseries \thepage} % except the center 
    \fancyfoot[L]{nom}
    \fancyfoot[R]{2014}
}
\begin{document}
\pagestyle{plain}
\tableofcontents

\part{Nom 1}

\part{Nom 2}

\listoffigures

\listoftables
\end{document}

Édité par ct

+0 -0
Auteur du sujet

Ton code marche plutôt bien. Merci !

Par contre, comment faire pour qu'il y ait écrit le nom de la partie à la place du \leftmark ? Si je rajoute le \parttitle, ça me supprime le "table des matières" et sur la page de la partie 2, ça me met le titre de la partie 1 (comme avant).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
\newcommand*\parttitle{}
\let\origpart\part
\renewcommand*{\part}[2][]{%
\ifx\\#1\\% optional argument not present?
    \origpart{#2}%
    \renewcommand*\parttitle{#2}%
\else
    \origpart[#1]{#2}%
    \renewcommand*\parttitle{#1}%
\fi
}

Aussi, à côté de la table des matières, il y a écrit : "Partie : table des matières". C'est possible d'enlever le mot partie ? Pareil avec la "table des figures" et la "liste des tableaux". :)

Édité par abrahan

+0 -0

Par contre, comment faire pour qu'il y ait écrit le nom de la partie à la place du \leftmark ?

\leftmark contient le nom de la partie. je ne comprends pas ce que tu cherches à dire…

Si je rajoute le \parttitle, ça me supprime le "table des matières" et sur la page de la partie 2, ça me met le titre de la partie 1 (comme avant).

Peux-tu arrêter de remettre ce code piqué je ne sais où et qui ne fonctionne pas ?

Définis toi-même la macro \parttitle selon l'endroit où tu te trouves, au moins, tu comprendras ce que tu fais ! Ici, je le fais avec deux macro auxiliaires \printparttitle et \hideparttitle, mais il y a bien d'autres façons de faire.

 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
\documentclass[11pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}
\usepackage{fancyhdr,xpatch}
\makeatletter\xpatchcmd\@part{\markboth{}{}}{\markboth{#2}{#2}}{}{}\makeatother
\renewcommand{\footrulewidth}{0.4pt}
\def\printparttitle{\def\parttitle{Partie \thepart: }}
\def\hideparttitle{\def\parttitle{}}
\fancypagestyle{plain}{
    \fancyhf{} % clear all header and footer fields 
    \fancyhead[C]{\parttitle\leftmark}
    \fancyfoot[C]{\bfseries \thepage} % except the center 
    \fancyfoot[L]{nom}
    \fancyfoot[R]{2014}
}
\begin{document}
\pagestyle{plain}
\hideparttitle
\tableofcontents
\clearpage

\printparttitle
\part{Nom 1}

\part{Nom 2}

\hideparttitle
\listoffigures

\listoftables
\end{document}

Édité par ct

+0 -0
Auteur du sujet

Ce que j'appelle "nom des parties", c'est ça :

1
\part{Nom 1}

Ma partie s'appelle ici "Nom 1" et j'aimerai que ce soit écrit "Partie 1 : Nom 1". Avec ton code, ça m'affiche juste "Partie 1:" et pas "Partie 1 : Nom 1".

Avec \leftmark, j'ai juste le nom du chapitre.

Édité par abrahan

+0 -0
Auteur du sujet

C'est dingue, car j'ai repris exactement pareil sur le rapport que j'écris, et ça ne me met que "Partie I".

C'est peut-être justement car il y a des chapitres, sections, sous-sections dans mon rapport ?

Si je rajoute des chapitres à ton code, ça ne me met plus le nom des parties, hormis sur la page de la partie. Dans mon cas, ça ne me l'affiche jamais.

Édité par abrahan

+0 -0

Mais il faut tout dire, parce que si tu as des chapitres, c'est différent. Un ECM doit être accompagné de la description la plus complète de ce que tu veux faire.

Il faut modifier la macro \@chapter pour qu'elle ne modifie pas \leftmark et \rightmark.

 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
\documentclass[11pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}
\usepackage{fancyhdr,xpatch,lipsum}
\makeatletter\xpatchcmd\@part{\markboth{}{}}{\markboth{#2}{#2}}{}{}
\xpatchcmd\@chapter{\chaptermark}{\@gobble}{}{}
\makeatother
\renewcommand{\footrulewidth}{0.4pt}
\def\printparttitle{\def\parttitle{Partie \thepart: }}
\def\hideparttitle{\def\parttitle{}}
\fancypagestyle{plain}{
    \fancyhf{} % clear all header and footer fields 
    \fancyhead[C]{\parttitle\leftmark}
    \fancyfoot[C]{\bfseries \thepage} % except the center 
    \fancyfoot[L]{nom}
    \fancyfoot[R]{2014}
}
\begin{document}
\pagestyle{plain}
\hideparttitle
\tableofcontents
\clearpage

\printparttitle
\part{Nom 1}
\chapter{Chap 1 !!!}
\lipsum

\chapter{Chapitre 2}
\lipsum

\part{Nom 2}
\chapter{Chap 1 !!!}
\lipsum

\chapter{Chapitre 2}
\lipsum


\hideparttitle
\listoffigures

\listoftables
\end{document}
+0 -0
Auteur du sujet

Toujours pas : ça ne me met que "Partie I". Est-ce à cause des sections et sous-sections ?

Désolé, je ne pensais pas que ça aurait de l'importance.

Édité par abrahan

+0 -0
Auteur du sujet

Oui, c'est vrai. Mais dans mon cas, ça ne m'affiche que "Partie 1". Voici le code en question.

  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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
%Préambule du document :



\documentclass[11pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[francais]{babel}

\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{enumerate}
\usepackage{lscape}
\usepackage[backend=biber]{biblatex} % chargement de biblatex
\bibliography{biblio} % fichier de biblio

% \defbibheading{bibliography}[\bibname]{}     
\makeatletter
\def\changearstrut#1{%
    \global\setbox\@arstrutbox\hbox{%
        \vrule \@height#1\ht\strutbox
            \@depth#1\dp\strutbox
            \@width\z@}%
}
\makeatother

\usepackage[nottoc,numbib]{tocbibind}

\renewcommand{\listoffigures}{\begingroup
\tocsection
\tocfile{\listfigurename}{lof}
\endgroup}


\usepackage[table]{xcolor}
\usepackage{enumitem}
\usepackage{amssymb}
\usepackage{tikz}
\usepackage{hyperref}
\usepackage{gensymb}
\usepackage{float}
\usepackage{listings}
\usepackage{color} %red, green, blue, yellow, cyan, magenta, black, white
\definecolor{mygreen}{RGB}{28,172,0} % color values Red, Green, Blue
\definecolor{mylilas}{RGB}{170,55,241}
\usepackage{geometry}
 \usepackage{amsmath}
\title{Titre}
\author{Nom Prénom}
\usepackage{datetime}

\let\pagebreakORIG\pagebreak
\let\clearpageORIG\clearpage
\let\cleardoublepageORIG\cleardoublepage

\ifx \removepagebreak \undefined
    \newcommand{\removepagebreak}{\renewcommand{\pagebreak}{}\renewcommand{\clearpage}{}\renewcommand{\cleardoublepage}{}}
\fi

\ifx \restorepagebreak \undefined
    \newcommand{\restorepagebreak}{\renewcommand{\pagebreak}{\pagebreakORIG}\renewcommand{\clearpage}{\clearpageORIG}\renewcommand{\cleardoublepage}{\cleardoublepageORIG}}
\fi


\usepackage{fancyhdr,xpatch}
\makeatletter\xpatchcmd\@part{\markboth{}{}}{\markboth{#2}{#2}}{}{}
\xpatchcmd\@chapter{\chaptermark}{\@gobble}{}{}
\makeatother
\renewcommand{\footrulewidth}{0.4pt}
\def\printparttitle{\def\parttitle{Partie \thepart. }}
\def\hideparttitle{\def\parttitle{}}
\fancypagestyle{plain}{
\renewcommand{\footrulewidth}{0.4pt}
\fancypagestyle{style_minuscules}{%
    \fancyhf{}                       % on annule le fancy automatique
    \fancyhead[C]{\nouppercase{\parttitle\leftmark}}
\fancyfoot[C]{\bfseries \thepage} % except the center 
\fancyfoot[L]{Nom}
\fancyfoot[R]{2014}
    }
\pagestyle{style_minuscules}
\fancypagestyle{plain}{
\fancyhf{} % clear all header and footer fields 
 \fancyhead[C]{\nouppercase{\parttitle\leftmark}}
\fancyfoot[C]{\bfseries \thepage} % except the center 
\fancyfoot[L]{Nom}
\fancyfoot[R]{2014}
}}

%Corps du document :
\begin{document}
%\restoregeometry
    \begin{titlepage}
    \makeatletter
    \centering
            {\large \textsc{Ecole}}\\

        \vspace{1cm}


        \vspace{1cm}
            {\large\textbf{   \today%\@date
            }}\\
                             \vspace{1cm}

             {\LARGE \textbf{\@title}} \\
        \vspace{2em}
                {\large \@author \\ classe } \\

    \makeatother
    \end{titlepage}

    \newgeometry{top=2.5cm,bottom=2.5cm,right=2.5cm,left=2.5cm}



      \newpage      

\vspace*{\stretch{1}}       
\begin{center}      
 \textit{ \Large{Remerciements}} \\      


 \end{center}      
\vspace*{\stretch{1}}       


\newpage      

\pagestyle{plain}
    \hideparttitle
\tableofcontents
\clearpage

\printparttitle

\part{Le premier titre de partie}

    \chapter{Chapitre 1}

\chapter{Chapitre 2}

\part{Le second titre de partie}

    \chapter{Chapitre 1}

\chapter{Chapitre 2}


\cleardoublepage

\removepagebreak

 \hideparttitle

\listoffigures

\listoftables





\restorepagebreak
     \clearpage
         \printparttitle



      \part{Sources}      


        \label{bibliography}
\nocite{*} % affiche toutes les références (facultatif)
\printbibliography % affiche la biblographie


\end{document} 
+0 -0

Encore un code qui est tout sauf un ECM ! Je crois que tu n'y arriveras jamais…

Bref, avec hyperref, tout est chamboulé ! C'est donc

1
2
3
4
\makeatletter
\xpatchcmd\H@old@part{\markboth{}{}}{\markboth{#2}{#2}}{}{}
\xpatchcmd\Hy@org@chapter\chaptermark\@gobble{}{}
\makeatother
+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte