Les problèmes de Overfull \hbox se règlent facilement dans le corps d'un document (un livre pour mon cas).

Dans le cas de mon index, je n'ai pas trouvé autre chose que de faire les rectifications sur toutes les (parfois nombreuses) commandes \index{Entrée à rectifier}. C'est fastidieux. Il y a sans doute mieux.

Posée 26 Jul '21, 17:49

Gilles%20Tiar's gravatar image

Gilles Tiar
7748
Taux d'acceptation : 50%

1

Pourriez vous poster un ECM?

(26 Jul '21, 20:42) touhami touhami's gravatar image

Un ECM significatif consisterait à poster tout mon livre, puisque le problème est relatif à l'index et qu'il y a des entrées dans tout le livre. Est-ce que le fichier .ind conviendrait ?

(27 Jul '21, 14:28) Gilles Tiar Gilles%20Tiar's gravatar image

Pas forcément. Il suffit de nous donner une idée comment l'index est mis en place, donc il nous faut la classe de document, le package utilisé pour la gestion de l'index et la commande (programme plus options) exécutée.

Exemple.

\documentclass{book} \usepackage{makeidx} \makeindex \begin{document} foo bat\index{Entrée à rectifier}. \printindex \end{document}

Commande exécuté: makeindex -s myidxstyle.ist monlivre.idx

(27 Jul '21, 15:25) touhami touhami's gravatar image

Une règle générale: utiliser \usepackage{microtype}.

(27 Jul '21, 15:27) touhami touhami's gravatar image

Mon ECM, je le place dans mon post modifié ? Qu'apporte le package microtype ?

(27 Jul '21, 16:37) Gilles Tiar Gilles%20Tiar's gravatar image

Pour l'ECM, oui. Pour microtype, il s'agit d'une extension qui améliore la qualité typographique du document (la justification du texte).

(27 Jul '21, 17:18) touhami touhami's gravatar image
Affichage de 5 parmi 6 Afficher 1 commentaire(s) en plus

Voici un ECM qui reproduit le problème.

\documentclass[french]{book}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{makeidx}
\makeindex
\begin{document}
Foo\index{Foo}
bar\index{Bar} 
baz\index{Dans le cas de mon index, je n'ai pas trouvé autre chose que de faire les rectifications sur toutes les (parfois nombreuses) commandes}.
\printindex
\end{document}

Essayer d'ajouter \usepackage{microtype}, ça permet de régler la plupart des problèmes de ce type. Si le problème persiste, essayer d'ajouter \AtBeginEnvironment{theindex}{\raggedright}. Si le résultat ne convient pas, essayer de reformuler la phrase. Par exemple, dans notre cas \index{Dans le cas de mon index, je n'ai pas trouvé autre chose que de rectifier toutes les (parfois nombreuses) commandes}. sinon vous avez le choix entre les deux options suivantes (d'autres options existent, mais je n'en discute pas ici).

  • \AtBeginEnvironment{theindex}{\setlength{\emergencystretch}{1em}}: on dit à LaTeX qu'au besoin, il puisse augmenter l'étirement (espaces intermots) de chaque ligne d'un paragraphe par la valeur donnée.

Remarque: Voyez qu'avec avec \emergencystretch=1em il y a une message 'overfull box', mais une message 'underfull box' avec \emergencystretch=2em.

  • \AtBeginEnvironment{theindex}{\hfuzz=5pt}: on dit à LaTeX qu'on est prêt à accepter des débordements de moins de 5pt et donc ne pas signaler.
Lien permanent

Publiée 28 Jul '21, 08:53

touhami's gravatar image

touhami
9.7k410
Taux d'acceptation : 51%

Merci infiniment, la commande AtBeginEnvironment{theindex}{raggedright} règle le problème. C'est exactement ce dont j'avais besoin.

Maintenant, je suis nouveau sur ce forum, les règles ne me sont pas encore familières. Ai-je quelque chose à indiquer par rapport à la résolution du problème ?

(28 Jul '21, 09:26) Gilles Tiar Gilles%20Tiar's gravatar image

Même pas. C'est gratuit

(28 Jul '21, 12:52) fred02840 fred02840's gravatar image

@fred02840 et @Gilles Tiar. Au moins une des deux actions: ici et ici.

(28 Jul '21, 13:37) touhami touhami'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.