Problème de mise en page

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

Bonjour,

J'ai un problème de mise en page causé par une image. L'erreur est la suivante : "Underfull \vbox (badness 10000) has occurred while \output is active". Le "\pagebreak" est ici pour simuler le document d'origine: il y a plein de texte avant. Si je diminue le texte avant la section Organigramme il n'y a plus d'erreur (quand la section ne commence pas sur une nouvelle page).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
\documentclass[a4paper,12pt]{book}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{calc}
\usepackage[showframe,a4paper,hmargin=3cm,top=1in + \voffset + \headheight + \headsep + \topmargin ,headheight=2.5cm,bottom=3cm]{geometry}
\usepackage{fancyhdr}
\pagestyle{fancy}
\usepackage{graphicx}

\lhead{ \includegraphics[height=\headheight-0.5cm]{logoafpfondblanc} }
\rhead{ \includegraphics[height=\headheight-0.5cm]{tl1logo}}

\overfullrule=2cm %Pour trouver les overfull box à spp

\begin{document}
Blah Blah
\pagebreak
\section{Organigramme}
\begin{center}
\includegraphics[width=\linewidth-0.5cm]{Organigramme}
\end{center}
Blah Blah
\end{document}

Édité par neo2500

+0 -0

Bonjour,

Tu as cette erreur car tu imposes le placement de l'image à un endroit précis et LaTeX ne peux pas arranger la mise en page comme il le souhaite donc il râle. La solution la plus élégante pour corriger ça serait de placer l'image dans un environnement flottant comme figure.

+0 -0

@ct : le \pagebreak « sert à simuler le document d'origine ». À moins que je comprenne mal cette phrase, c'est juste un moyen pour l'auteur de reproduire l'erreur sans nous poster un pavé de texte sans intérêt.

+0 -0
Auteur du sujet

@Ct. Merci problème résolu!

PS : Effectivement la \pagebreak ne se trouvait pas dans le document d'origine. En fait, si je réduisais le texte avant la section pour éviter à la section d'être sur une nouvelle page, alors il n'y avait aucun problème. Le problème ne se posait seulement lorsque la section démarrait sur une nouvelle page.

Édité par neo2500

+0 -0

Cette réponse a aidé l'auteur du sujet

La macro \pagebreak n'a jamais simulé quelque texte que ce soit.

Par ailleurs, cette macro génère justement l'erreur incriminée lorsqu'utilisée avec la classe book. On observe sur l'ECM ci dessous que \pagebreak

1) ne provoque par le commencement d'une nouvelle page

2) génère l'erreur dont se plaint l'OP.

Il faudrait que l'OP ne complique pas son problème et utilise par exemple \lipsum du package éponyme pour «simuler du texte» !

1
2
3
4
5
6
\documentclass{book}
\begin{document}
Bla bla
\pagebreak
Bla bla
\end{document}

Édité par ct

+1 -0
Auteur du sujet

Intéressant le paquet lipsum. Je pourrais l'utiliser pour mes prochains ECM.

Sinon, la mise en page et l'erreur que j'avais étaient les mêmes que celles produites par pagebreak: ajout d'espace entre les paragraphes. D'où l'utilisation de pagabreak.

+0 -0

Sinon, la mise en page et l'erreur que j'avais étaient les mêmes que celles produites par pagebreak: ajout d'espace entre les paragraphes. D'où l'utilisation de pagabreak.

neo2500

Ce n'est pas une erreur, c'est un message d'avertissement. Il explique que la page est insuffisamment remplie. Cela vient du fait que la classe book prend l'option "twoside" par défaut et qu'avec cette option, la routine de sortie n'est pas spécifiée \raggedbottom, c'est-à-dire que le bas de toutes les pages doivent arriver au même niveau (le bas de la zone de texte). Cela est impossible si un élément ayant un grande dimension verticale (comme une image) ne loge pas sur la page en cours et doit être placé sur la page suivante, alors que les élasticités verticales des éléments déjà placés sur la page ne sont pas suffisantes pour combler le "trou".

Deux choix s'offrent donc à toi :

1) soit tu sais ce que tu fais (tu acceptes que certaines fins de pages ne soient pas tout en bas) :

a) tu acceptes donc les messages d'avertissement (il ne s'agit en RIEN d'un message d'erreur)

b) tu met un \raggedbottom dans ton préambule et tu acceptes que le bas des pages soit parfois décalés sans que TeX ne t'avertisse

2) soit tu souhaites que le bas des pages soit toujours au même niveau auquel cas, il faut recourir à des flottants, c'est-à-dire accepter que certains éléments soient placés ailleurs que l'endroit où tu les écris (par exemple sur une autre page où il y a assez d'espace en haut). Dans ce cas, il n e faut pas se plaindre que les images soient à des endroits où tu ne voulais pas qu'elles soient !

Pour moi, le choix entre les deux est vite fait.

Édité par ct

+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