Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
composition:texte:pages:empecher_un_saut_de_page_entre_deux_lignes [2018/06/03 14:21] samcarter3_composition:texte:pages:empecher_un_saut_de_page_entre_deux_lignes [2022/09/22 14:19] (Version actuelle) – Insertion d'espace de longueur nulle en vue de conversion dbitouze
Ligne 1: Ligne 1:
---- +====== Comment éviter un saut de page entre des lignes? ======
-title: Preventing page breaks between lines +
-category: formatting +
-tags: layout +
-permalink: /FAQ-nopagebrk +
-date: 2014-06-10 +
----+
  
-One commonly requires that a block of typeset material be kept on the +En temps normal, un bloc de texte doit être conservé sur une même page. Mais il s'avère étonnamment difficile de réussir cela
-same page; it turns out to be surprisingly tricky to arrange this.+
  
-LaTeX provides a `samepage` environment which claims it +===== De manière automatique =====
-does this sort of thing for you.  It proceeds by setting infinite +
-penalties for all sorts of page-break situations; but in many +
-situations where you want to prevent a page break, +
-`samepage` doesn't help.  If you're trying to keep running +
-text together, you need to end the paragraph inside the environment +
-(see [preserving paragraph parameters](FAQ-paraparam)). +
-Also, if the things you are trying to keep together insert their own +
-pagebreak hints, `samepage` has no power over them (though +
-list items' attempts — they suggest page breaks between items — +
-are subverted by `samepage`).  Naturally, if +
-`samepage` _does_ work, it is capable of leaving +
-stuff jutting out at the bottom of the page.+
  
-Another convenient trick is to set all the relevant stuff in a +==== Avec des commandes de base ====
-`\parbox` (or a `minipage` if it contains things like +
-verbatim text that may not be used in the argument of a `\parbox`). +
-The resulting box certainly _won't_ break between pages, but +
-that's not to say that it will actually do what you want it to do: +
-again, the box may be left jutting out at the bottom of the page.+
  
-Why do neither of these obvious things work?&nbsp;&mdash; Because TeX can'+<latex>\LaTeX</latex> fournit un environnement ''samepage'' qui propose de traiter ce sujetIl procède en fixant des pénalités infinies pour toutes sortes de situations de saut de page (pensez d'ailleurs à bien terminer vos paragraphes dans l'environnementcomme indiqué dans la question « [[3_composition:texte:paragraphes:parametres_non_appliques_au_paragraphe|Pourquoi mon paramètre de paragraphe est-il ignoré ?]] »). Mais cet environnement a plusieurs limites : 
-really distinguish between infinitely awful things. +  * ''samepage'' ne gère pas toutes les situations ; 
-`Samepage` will make any possible break point +  * si les éléments que vous essayez de garder ensemble insèrent leurs propres recommandations de saut de page, ''samepage'' n'a aucun pouvoir sur eux, exception faite des suggestions des éléments de liste pour insérer des sauts de page entre eux; 
-"infinitely bad" and boxes don't even offer the option of breaksbut if the +  * si ''samepage'' //fonctionne//, il est capable de laisser des éléments déborder en bas de la page
-alternative is the leave an infinitely bad few centimetres of blank +
-paper at the bottom of the page, TeX will take the line of least +
-resistance and do nothing.+
  
-This problem still arises even if you have `\raggedbottom` in +Une autre astuce pratique consiste à placer tous les éléments pertinents dans une commande ''\parbox'' (ou un environnement ''minipage'' s'il contient des éléments qui ne peuvent être utilisés dans l'argument de ''\parbox''). La boîte résultante //ne se scindera pas// entre les pages... mais cela ne veut pas dire qu'elle fera proprement ce que vous souhaitez une nouvelle fois, la boîte peut largement déborder en bas de la page.  
-effect: TeX doesn't notice the value of _that_ until it starts + 
-actually shipping a page out One approach is to set+Pourquoi aucune de ces choses évidentes ne fonctionne ? Parce que <latex>\TeX</latex> ne peut pas vraiment faire la distinction entre des choses qu'il définit comme « infiniment mauvaises ». L'environnement ''samepage'' rend tout point de saut de page « infiniment mauvais » et les boîtes n'offrent aucune option de saut de page. Toutefois, si l'alternative est de laisser quelques centimètres « infiniment mauvais » de page blanche en bas de page, <latex>\TeX</latex> ne fait rien.  
-```latex+ 
 +Ce problème se pose d'ailleurs même si vous avez utilisé la commande ''\raggedbottom'' : <latex>\TeX</latex> ne remarque pas ce paramètre tant qu'il ne délivre pas la page. Une approche consiste alors à définir :  
 + 
 +<code latex>
 \raggedbottom \raggedbottom
 \addtolength{\topskip}{0pt plus 10pt} \addtolength{\topskip}{0pt plus 10pt}
-``` +</code> 
-The `10pt` offers a hint to the output routine that the column is + 
-stretchable; this will cause TeX to be more tolerant of the need to +Le ''10pt'' indique à la routine de sortie que la colonne de texte est extensible. Cela amènera <latex>\TeX</latex> à être plus tolérant sur la nécessité de s'étirer lors de la construction de la page. Si vous recourrez à cette mesure temporairement dans votre documentil vous faudra annuler la modification de ''\topskip'' avec :  
-stretch while building the page.  If you're doing this as a temporary + 
-measurecancel the change to `\topskip` by+<code latex>
-```latex+
 \addtolength{\topskip}{0pt plus-10pt} \addtolength{\topskip}{0pt plus-10pt}
-``` +</code>
-as well as resetting `\flushbottom`.  (Note that the `10pt` never +
-actually shows up, because it is overwhelmed when the page is shipped +
-out by the stretchability introduced by `\raggedbottom`; however, it +
-could well have an effect if `\flushbottom` was in effect.)+
  
-An alternative (which derives from a suggestion by Knuth in the +De même, il fera réinitialiser ''\flushbottom''. Notez que le ''10pt'' n'impacte jamais réellement la page car il est neutralisé par l'extensibilité introduite par ''\raggedbottom'' lorsque la page est finalisée. Cependant, il pourrait bien avoir un effet si ''\flushbottom'' est actif. 
-TeXbookis the package [`needspace`](https://ctan.org/pkg/needspace) or the [`memoir`](https://ctan.org/pkg/memoir) class, + 
-which both define a command `\needspace` whose argument tells it +==== Avec l'extension needspace ou la classe memoir ==== 
-what space is needed If the space isn't availablethe current page + 
-is cleared, and the matter that needs to be kept together will be +Une alternative (suggérée par Donald Knuth dans le <latex>\TeX</latex>​bookest donnée par l'extension [[ctanpkg>needspace|needspace]] ou la classe [[ctanpkg>memoir|memoir]]Elles définissent toutes deux une commande ''\needspace'' dont l'argument lui indique quel espace est nécessaire pour garder les éléments groupésSi l'espace n'est pas disponiblela page actuelle est effacée et les élements qui doivent être conservés ensemble sont insérés dans une nouvelle page. Par exemplesi lignes de texte doivent être conservées ensemblela séquence 
-inserted on the new page.  For exampleif 4&nbsp;lines of text need to be + 
-kept togetherthe sequence +<code latex>
-```latex+
 \par \par
 \needspace{4\baselineskip} \needspace{4\baselineskip}
-the stuff that must stay together +Les éléments qui doivent rester ensemble 
-<text generating lines 1-4+⟨le texte d'une à quatre lignes⟩ 
-% now stuff we don't mind about +% Puis la suite où vous êtes moins regardant 
-``` +</code
-Yet another trick by Knuth is useful if you have a sequence of small +==== Avec la commande \filbreak ==== 
-blocks of text that needindividuallyto be kept on their own page. + 
-Insert the command `\filbreak` before each small block, and the +Une autre astuce donnée par Knuth peut servir si vous avez une séquence de petits blocs de texte qui doiventindividuellementêtre conservés sur leur propre page. Insérez alors la commande ''\filbreak'' avant chaque petit blocLa technique peut être utilisée dans le cas de séquences de sections <latex>\LaTeX</latex>en incorporant ''\filbreak'' dans la définition d'une commande (sur le principe vu dans « [[2_programmation:macros:patcher_une_commande_existante|Comment modifier une commande existante ?]] »). Un patch simple et efficace peut être :  
-effect is achieved The technique can be used in the case of + 
-sequences of LaTeX-style sections, by incorporating `\filbreak+<code latex>
-into the definition of a command (as in  +
-[patching commands](FAQ-patch)).  simple and effective +
-patch would be+
-<!-- {% raw %} --> +
-```latex+
 \let\oldsubsubsection=\subsubsection \let\oldsubsubsection=\subsubsection
 \renewcommand{\subsubsection}{% \renewcommand{\subsubsection}{%
Ligne 87: Ligne 52:
   \oldsubsubsection   \oldsubsubsection
 } }
-``` +</code
-<!-- {% endraw %} --+ 
-While the trick works for consecutive sequences of blocksit'+Bien que l'astuce fonctionne pour des blocs de texte consécutifsil est assez délicat de sortir d'une telle séquence à moins qu'elle ne soit interrompue par un saut de page forcé (comme ''\clearpage''qui peut être introduit par une commande ''\chapter'' ou la fin du document). Si la séquence n'est pas interrompue, le dernier bloc est susceptible d'être placé sur une nouvelle page, qu'il en ait besoin ou non.  
-slightly tricky to get out of such sequences unless the sequence is + 
-interrupted by a forced page break (such as `\clearpage`which may +===== De manière manuelle ===== 
-be introduced by a `\chapter` command, or the end of the document). + 
-If the sequence is not interruptedthe last block is likely to be +Si vous êtes prêt à accepter que tout ne peut pas être accompli de manière totalement automatiquela voie à suivre est de composer le document et de vérifier les éléments susceptibles de créer des problèmes. Dans un tel scénario, vous pouvez décider, au cas par cas, comment traiter les problèmes au dernier stade de la relecture. Là, vous pouvez modifier manuellement les sauts de page : 
-forced onto a new page, regardless of whether it actually needs it.+  * en utilisant ''\pagebreak'' ou ''\clearpage'' pour ajouter un saut de page ; 
 +  * en plaçant une commande ''\nopagebreak'' pour supprimer les coupures malheureuses.  
 + 
 +Vous pouvez également procéder à de petits ajustements de la géométrie de la page, en utilisant ''\enlargethispage''. Supposons que vous ayez une ligne ou deux qui s'égarent, vous pourrez alors indiquer : 
 + 
 +<code latex> 
 +\enlargethispage{2\baselineskip} 
 +</code> 
 + 
 +Deux lignes sont ajoutées ainsi à la page que vous composez. Et que cette technique puisse sembler horrible ou acceptable, elle reste un élément utile dans votre arsenal.  
 + 
 +Notez que les commandes ''\pagebreak'' et ''\nopagebreak'' prennent un argument numérique facultatif pour ajuster la façon dont la commande doit être interprétée. Ainsi avec ''\pagebreak[0]'', la commande indique qu'un saut de page peut valoir la peine d'être fait alors que ''\pagebreak[4]'' demande le saut de page. De même ''\nopagebreak[0]'' fait une suggestion, tandis que ''\nopagebreak[4]'' est une demande. Dans les deux commandes, la valeur par défaut de l'argument facultatif est 4
  
-If one is willing to accept that not everything can be accomplished +-----
-totally automatically, the way to go is to typeset the document and to +
-check for things that have the potential to give trouble.  In such a +
-scenario (which has Knuth's authority behind it, if one is to believe +
-the rather few words he says on the subject in the TeXbook) one can +
-decide, case by case, how to deal with problems at the last +
-proof-reading stage.  At this stage, you can manually alter page +
-breaking, using either `\pagebreak` or `\clearpage`, or you can +
-place a `\nopagebreak` command to suppress unfortunate breaks. +
-Otherwise, you can make small adjustments to the page geometry, using +
-`\enlargethispage`.  Supposing you have a line or two that stray: +
-issue the command `\enlargethispage{2`\baselineskip`}` and +
-two lines are added to the page you're typesetting.  Whether this +
-looks impossibly awful or entirely acceptable depends on the document +
-context, but the command remains a useful item in the armoury.+
  
-Note that both `\pagebreak` and `\nopagebreak` take an optional +//Source:// [[faquk>FAQ-nopagebrk|Preventing page breaks between lines]]
-number argument to adjust how the command is to be interpreted.  Thus +
-`\pagebreak[0]`, the command "suggests" that a page break +
-might be worth doing, whereas `\pagebreak[4]` "demands"+
-page break.  Similarly `\nopagebreak[0]` makes a suggestion, +
-while `\nopagebreak[4]` is a demand.  In both commands, the +
-default value of the optional argument is 4.+
  
 +{{htmlmetatags>metatag-keywords=(LaTeX,saut de page,samepage,\parbox,\pagebreak,\raggedbottom,needspace)
 +metatag-og:title=(Comment éviter un saut de page entre des lignes)
 +metatag-og:site_name=(FAQ LaTeX francophone)
 +}}
  
3_composition/texte/pages/empecher_un_saut_de_page_entre_deux_lignes.1528035693.txt.gz · Dernière modification : 2018/06/03 14:21 de samcarter
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0