Je suis confronté à un problème récurrent de titre de section (ou subsection...) qui figure en bas de page, la suite du texte étant dans la page suivante.

Comment faire pour associer les titres de section avec le paragraphe ou le tableau suivant, pour éviter une position orpheline en bas de page ?

Posée 16 Oct '15, 11:28

equinton's gravatar image

equinton
3114
Taux d'acceptation : 0%

N'avez-vous que peu de texte dans votre document ? Parce qu'en général ce que vous décrivez n'arrive pas je crois.

(22 Oct '15, 02:55) pluton pluton's gravatar image

Bon, j'ai trouvé :

Ouvrir dans l'éditeur
\newenvironment{absolutelynopagebreak}
  {\par\nobreak\vfil\penalty0\vfilneg
   \vtop\bgroup}
  {\par\xdef\tpd{\the\prevdepth}\egroup
   \prevdepth=\tpd}

puis, dans le texte :

Ouvrir dans l'éditeur
    \begin{absolutelynopagebreak}
    \section{Ma section}
Mon texte
\end{absolutelynopagebreak}
Lien permanent

Publiée 16 Oct '15, 12:00

equinton's gravatar image

equinton
3114
Taux d'acceptation : 0%

Modifiée 16 Oct '15, 12:02

Ouvrir dans l'éditeur
\newenvironment{absolutelynopagebreak}

{parnobreakvfilpenalty0vfilneg vtopbgroup} {parxdeftpd{theprevdepth}egroup prevdepth=tpd}

Lien permanent

Publiée 16 Oct '15, 12:01

equinton's gravatar image

equinton
3114
Taux d'acceptation : 0%

Tu peux d'abord essayer un petit \usepackage[all]{nowidow} (nowidow) pour essayer d'éviter automatiquement ce problème. Ce réglage est en particulier recommandé par le package impnattypo, qui permet le respect des recommandations de l'imprimerie nationale française.

Sinon, tu peux tenter de régler le problème manuellement à partir d'ajustement de \widowpenalty et \clubpenalty (\clubpenalty=500 par exemple). Des valeurs très grandes facilite l'élimination des widow et orphan (veuves et orphelins en français, ou y a-t-il un autre terme?), une valeur "infinie" (10000) devrait les éliminer. Le coût est une plus grande variabilité des espaces entre lignes, qui peut être compensée par un \raggedbottom (moins grandes variabilités des espaces, pour une hauteur de texte variable; le contraire étant \flushbottom, forçant des hauteurs de textes identiques de page en page).

Lien permanent

Publiée 21 Oct '15, 10:37

the_alf's gravatar image

the_alf
5864
Taux d'acceptation : 27%

Cette réponse ne répond pas vraiment à mon cas de figure. J'avais déjà essayé les pénalités, sans succès pour ce qui me préoccupait. Seule l'option nopagebreak fonctionne.

Il faut dire que le problème est lié à la présence d'un tableau qui suit directement un titre de section (c'est pas forcément top au niveau rédactionnel, mais pour le document qui me préoccupe, c'est adapté). Toutes les options autres que le nopagebreak ne fonctionnent pas.

Par contre, +1 pour le package impnattypo, que je ne connaissais pas.

(21 Oct '15, 17:37) equinton equinton's gravatar image

@equinton Attention ! Cette réponse était un commentaire plutôt qu'une réponse et a été convertie comme tel.

(21 Oct '15, 17:43) denis ♦♦ denis's gravatar image

Dans ce cas, ne vaudrait-il pas le coup de formater le tableau en longtable? Cela permettrait à LaTeX de le partager sur deux page, et donc de faire correctement la mise en page entre le titre de section et le tableau le suivant directement.

(22 Oct '15, 09:00) the_alf the_alf's gravatar image

@equinton Si votre titre est suivi par un tableau (non sécable la plupart du temps), la seule solution consiste donc à passer ce titre sur la page suivante. Ce passage à la page suivante dépend de ce qui précède votre titre (et, par exemple, de l'élasticité de \parskip dans votre document). Mais la bonne solution (à mon avis) serait de rendre ce tableau flottant.

(22 Oct '15, 10:26) Paul Gaborit Paul%20Gaborit's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.