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
2_composition:texte:paragraphes:latex_fait_des_lignes_trop_longues [2021/02/02 13:04] – Première partie de la traduction de l'article anglais et mise à jour des liens. yannick.tanguy2_composition:texte:paragraphes:latex_fait_des_lignes_trop_longues [2021/02/10 10:12] (Version actuelle) – Explicitation de l'utilisation de \linebreak bdumont
Ligne 1: Ligne 1:
-====== (La)TeX makes overfull lines ======+====== Comment gérer des lignes qui débordent? ======
  
-Lorsque <latex>\LaTeX</latex> construit un paragraphe, il peut faire plusieurs tentatives pour obtenir un saut de ligne correct. À chaque tentative, il exécute le même algorithme mais lui donne des paramètres différents. Vous pouvez influencer le fonctionnement de la coupure de ligne de <latex>\LaTeX</latex> en ajustant ces paramètres : cette réponse traite des paramètres de « tolérance » et d'étirement. L'autre « paramètre » vital est l'ensemble des césures applicables : voir ici la question « [[2_composition:langues:cesure:la_cesure_ne_fonctionne_pas|Pourquoi mes mots ne sont pas césurés ?]] » (et toutes les questions liées) pour obtenir des conseils+Lorsque <latex>\LaTeX</latex> construit un paragraphe, il peut faire plusieurs tentatives pour obtenir un saut de ligne correct. À chaque tentative, il exécute le même algorithme mais lui donne des paramètres différents. Vous pouvez influencer le fonctionnement de la coupure de ligne de <latex>\LaTeX</latex> en ajustant ces paramètres : cette réponse traite des paramètres de « tolérance » et d'étirement. L'autre « paramètre » vital est l'ensemble des césures applicables : la question « [[3_composition:langues:cesure:la_cesure_ne_fonctionne_pas|Pourquoi mes mots ne sont pas césurés ?]] » et toutes les questions liées développent ce point
  
-Si vous obtenez l'erreur « overfull box » (boîte qui déborde) alors <latex>\LaTeX</latex> a tout simplement abandonné ses tentatives : les paramètres que vous lui avez donnés ne lui permettent pas de produire un résultat sans débordement. Dans ce cas, Donald Knuth a décidé que la meilleure chose à faire était de produire un avertissement et de permettre à l'utilisateur de résoudre le problème (l'alternative, passer sous silence ce problème, aurait été désagréable pour tout typographe averti). En temps normal, l'utilisateur peut presque toujours résoudre le problème en reformulant son texte --- mais ce n'est pas toujours possible. Cette réponse décrit donc les approches à adopter pour résoudre le problème, en supposant que la césure est correcte. +Si vous obtenez l'erreur « overfull box » (boîte qui déborde)<latex>\LaTeX</latex> a tout simplement abandonné ses tentatives : les paramètres que vous lui avez donnés ne lui permettent pas de produire un résultat sans débordement. Dans ce cas, Donald Knuth a décidé que la meilleure chose à faire était de produire un avertissement et de permettre à l'utilisateur de résoudre le problème (l'alternative, passer sous silence ce problème, aurait été désagréable pour tout typographe averti). En temps normal, l'utilisateur peut presque toujours résoudre le problème en reformulant son texte --- mais ce n'est pas toujours possible. Cette réponse décrit donc les approches à adopter pour résoudre le problème, en supposant que la césure est correcte. 
  
 ===== Avec la commande \linebreak ===== ===== Avec la commande \linebreak =====
  
-Le cas le plus simple est celui où un mot court ne parvient pas à être césuré à la fin d'une ligne. Déplacer le mot entier sur une nouvelle ligne ne fait souvent pas grande différence mais cela peut conduire à un résultat si mauvais que <latex>\LaTeX</latex> le refuse par défaut. Dans ce cas, //essayer// d'utiliser la commande ''\linebreak'' peut résoudre le problème bien que cela puisse parfois demande énormément de « bidouilles ». Sinon, il faut ajuster les paramètres : pour ce faire, nous devons récapituler les détails des mécanismes de coupure de ligne de <latex>\LaTeX</latex>+Le cas le plus simple est celui où un mot court ne parvient pas à être césuré à la fin d'une ligne. Déplacer le mot entier sur une nouvelle ligne ne fait souvent pas grande différence mais cela peut conduire à un résultat si mauvais que <latex>\LaTeX</latex> le refuse par défaut. Dans ce cas, on peut //essayer// d'introduire la commande ''\linebreak[n]'' à l'endroit où un passage à la ligne nous paraît souhaitable, ''n'' étant un entier compris entre 1 et 4 : plus le nombre est élevé, plus <latex>\TeX</latex> est incité à opérer le passage à la ligne, un valeur de 4 ne lui laissant pas le choix. il faut toutefois prendre garde à ce que cela ne produise pas des espacements trop larges dans la ligne que vous coupez 
 + 
 +Sinon, il faut ajuster les paramètres : pour ce faire, nous devons récapituler les détails des mécanismes de coupure de ligne de <latex>\LaTeX</latex>
  
 ===== Avec les paramètres \pretolerance, \tolerance et \emergencystretch ===== ===== Avec les paramètres \pretolerance, \tolerance et \emergencystretch =====
Ligne 38: Ligne 40:
 ==== La modification de \tolerance ==== ==== La modification de \tolerance ====
  
-Modifier ''\tolerance'' est souvent une bonne méthode pour ajuster l'espacement. Plain <latex>\TeX</latex> et <latex>\LaTeX</latex> lui attribuent la valeur ''200''. La commande ''\sloppy'' de <latex>\LaTeX</latex> le définit sur ''9999'', tout comme l'environnement ''sloppypar''. Cette valeur est la plus grande disponible (hors infini) et peut autoriser des pauses assez médiocres. Il est plus satisfaisant d'apporter de petits changements à ''\tolerance'', de manière incrémentielle, puis de voir comment le changement affecte le résultat. De très petites augmentations peuvent souvent suffire. Rappelez-vous que ''\tolerance'' est un paramètre de paragraphe : vous devez donc vous assurer qu'il est réellement appliqué comme l'explique la question « [[2_composition:texte:paragraphes:parametres_non_appliques_au_paragraphe|Pourquoi mon paramètre de paragraphe est-il ignoré ?]] ». Dans la pratique, les utilisateurs de <latex>\LaTeX</latex> peuvent définir un environnement pouvant englobant plusieurs paragraphes pour y appliquer leur valeur de paramètre. Voici un exemple : +Modifier ''\tolerance'' est souvent une bonne méthode pour ajuster l'espacement. Plain <latex>\TeX</latex> et <latex>\LaTeX</latex> lui attribuent la valeur ''200''. La commande ''\sloppy'' de <latex>\LaTeX</latex> lui donne la valeur de ''9999'', tout comme l'environnement ''sloppypar''. Cette valeur est la plus grande disponible (hors infini) et peut autoriser des pauses assez médiocres.  
 + 
 +Il est plus satisfaisant d'apporter de petits changements à ''\tolerance'', de manière incrémentielle, puis de voir comment le changement affecte le résultat. De très petites augmentations peuvent souvent suffire. Rappelez-vous que ''\tolerance'' est un paramètre de paragraphe : vous devez donc vous assurer qu'il est réellement appliqué comme l'explique la question « [[3_composition:texte:paragraphes:parametres_non_appliques_au_paragraphe|Pourquoi mon paramètre de paragraphe est-il ignoré ?]] ». Dans la pratique, les utilisateurs de <latex>\LaTeX</latex> peuvent définir un environnement pouvant englobant plusieurs paragraphes pour y appliquer leur valeur de paramètre. Voici un exemple : 
  
 <code latex> <code latex>
Ligne 50: Ligne 54:
 ==== La modification de \emergencystretch ==== ==== La modification de \emergencystretch ====
  
-FIXME //Terminer la traduction.//+Comme dit précédemment, la valeur de ''\emergencystretch'' est ajoutée à l'étirement supposé de chaque ligne d'un paragraphe, au cas où le paragraphe ne pourrait pas être considéré comme correct d'une autre manièreDe fait, cette passe supplémentaire se produit si ''\emergencystretch'' est strictement supérieur à ''0pt''. Supposons qu'il soit défini comme valant ''3em''. Les polices //Computer Modern// contiennent généralement trois espaces dans un cadratin (un ''em''), de sorte que l'indication donnée à <latex>\LaTeX</latex> autoriserait jusqu'à l'équivalent de neuf espaces supplémentaires dans chaque ligne. Dans une ligne avec beaucoup d'espaces, cela pourrait être raisonnable, mais avec dans une ligne contenant uniquement trois espaces, cela pourrait conduire à étirer chaque espace jusqu'à quatre fois sa largeur naturelle. Il est donc clair que ''\emergencystretch'' doit être traité avec une certaine prudence. 
  
-The value of ''\emergencystretch'' is added to the assumed stretchability of each line of a paragraph, in a further run of the paragraph formatter in case that the paragraph can't be made to look right any other way.  (The extra scan happens if ''\emergencystretch>0pt'' --- if it's zero or negative, no gain could be had from rerunning the paragraph setter.)  The example above set it to ''3em''; the Computer Modern fonts ordinarily fit three space skips to the ''em'', so the change would allow anything up to the equivalent of nine extra spaces in each line.  In a line with lots of spaces, this could be reasonable, but with (say) only three spaces on the line, each could stretch to four times its natural width.  It is therefore clear that ''\emergencystretch'' needs to be treated with a degree of caution.+===== Avec des réglages microtypographiques =====
  
-More subtle (but more tricky to manageare the microtypographic extensions provided by pdfTeX.  Since pdfTeX is the default "engine" for LaTeX and ConTeXt work in all distributions, nowadays, the extensions are available to all.  There are two extensions, margin kerning and font expansion; margin kerning only affects the visual effect of the typeset page, and has little effect on the ability of the paragraph setter to "get things right". Font expansion works like a subtler version of the trick that ''\emergencystretch'' plays: pdfTeX "knows" that your current font may be stretched (or shrunk) to a certain extent, and will do that "on the fly" to optimise the setting of a paragraph.  This is a powerful tool in the armoury of the typesetter.+==== Ceux de pdf(La)TeX ====
  
-As mentioned abovethe microtypographic extensions are tricky beasts to controlhoweverthe [[ctanpkg>microtype|microtype]] package relieves the user of the tedious work of specifying how to perform margin adjustments and how much to scale each font ... for the fonts the package knows about; it's a good tooland users who can take on the specification of adjustments for yet more fonts are always welcome.+Les réglages microtypographiques proposées par pdf(La)TeX sont plus subtiles (mais plus délicates à gérer). Dans la mesure où pdf(La)TeXle moteur par défaut pour <latex>\LaTeX</latex> et ConTeXt, fonctionne dans toutes les distributions, ces réglages sont accessibles à tous. Il existe deux extensions importantes :  
 +  * le crénage marginal n'affecte que l'effet visuel de la page et n'a que peu d'effet sur la construction du paragraphe par <latex>\LaTeX</latex> ; 
 +  * la déformation des caractères fonctionne comme une version plus subtile de l'astuce utilisée avec ''\emergencystretch'' : pdfTeX « sait » que votre police actuelle peut être étirée (ou rétrécie) dans une certaine mesureet le fera à la volée pour optimiser le réglage d'un paragraphe. Il s'agit là d'une technique assez puissante.  
 + 
 +==== Ceux de l'extension microtype ==== 
 + 
 +Les réglages microtypographiques sont souvent délicats à contrôler. Toutefois, l'extension [[ctanpkg>microtype|microtype]] soulage l'utilisateur du travail fastidieux de spécification des ajustements de marge et des mises à l'échelle de chaque policeCeci se limite cependant aux polices que l'extension connaît. De manière généralecette extension reste un bon outil et les utilisateurs qui peuvent ajouter les spécification d'ajustements pour de nouvelles polices sont évidemment les bienvenus
  
 ----- -----
Ligne 63: Ligne 73:
  
 {{htmlmetatags>metatag-keywords=(LaTeX,usage) {{htmlmetatags>metatag-keywords=(LaTeX,usage)
-metatag-og:title=((La)TeX makes overfull lines)+metatag-og:title=(Comment gérer des lignes qui débordent)
 metatag-og:site_name=(FAQ LaTeX francophone) metatag-og:site_name=(FAQ LaTeX francophone)
 }} }}
 +
3_composition/texte/paragraphes/latex_fait_des_lignes_trop_longues.1612271052.txt.gz · Dernière modification : 2021/02/02 13:04 de yannick.tanguy
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0