En LaTeX, serait-il possible de mettre toutes les premières lettres de chaque mot en gras ? « Lorem ipsum dolor sit amet » devenant « Lorem ipsum dolor sit amet ».

Existe-t-il un package qui s'occupe de cela ?

Posée 07 Mai '21, 15:34

fredf's gravatar image

fredf
228311
Taux d'acceptation : 0%

Modifiée 07 Mai '21, 16:50

Maxime's gravatar image

Maxime ♦
1.3k31638


Avec l'extension mfirstuc :

\documentclass{article}

\usepackage{mfirstuc}

\let\mfirstucMakeUppercase\textbf

\begin{document}

\capitalisewords{Lorem ipsum dolor sit amet}

\end{document}

alt text

Lien permanent

Publiée 07 Mai '21, 15:56

samcarter's gravatar image

samcarter
8.2k2817
Taux d'acceptation : 57%

Modifiée 07 Mai '21, 16:35

J'ai avec cette commande \capitalisewords{texte} un message d'erreur lié à l'encodage (enfin je pense) : "inputenc error UTF8 byte sequence". Le souci vient des majuscules accentuées ; j'ai pourtant bien ajouté \usepackage[utf8]{inputenc} dans mon préambule de base.

(08 Mai '21, 09:20) fredf fredf's gravatar image

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

(08 Mai '21, 15:13) denis ♦♦ denis's gravatar image

@fredf Il ne suffit pas d'ajouter \usepackage[utf8]{inputenc} dans le préambule : encore faut-il que le fichier ait effectivement comme codage d'entrée l'UTF-8. Certains éditeurs orientés LaTeX affichent le codage effectif du fichier en cours (par exemple TeXstudio l'affiche en bas à droite dans une liste déroulante qui permet de, au besoin, convertir ce codage d'entrée en un autre).

(08 Mai '21, 15:18) denis ♦♦ denis's gravatar image
1

LaTeX fait \usepackage[utf8]{inputenc} automatiquement depuis \approx 2018

(08 Mai '21, 15:29) samcarter samcarter's gravatar image

@denis mon éditeur TeXstudio est bien en codage d'entrée utf8.

(08 Mai '21, 19:28) fredf fredf's gravatar image

La solution de @samcarter fonctionne. Il y a simplement des exceptions avec certains caractère spéciaux comme l'indique la documentation du package mfirstuc partie 4. la solution est d'"encapsuler" les caractères avec majuscules Par exemple, pour obtenir le caractère "é" en gras :

\documentclass{article}
\usepackage{mfirstuc}
\let\mfirstucMakeUppercase\textbf
\begin{document}
\capitalisewords{{é}lorem ipsum dolor sit amet}
\end{document}

A noter qu'une compilation en xelatex (ou lualatex pas testé !) dispense de mettre des accolades entre les caractères accentués.

Lien permanent

Publiée 09 Mai '21, 18:09

fredf's gravatar image

fredf
228311
Taux d'acceptation : 0%

Modifiée 15 Jui '21, 12:56

samcarter's gravatar image

samcarter
8.2k2817

Une autre solution est de coder en latin1 (ISO-8859-1). Enfin, pour une solution plus robuste et plus flexible il faut recourir à LaTeX 3.

(11 Mai '21, 18:15) touhami touhami's gravatar image

Il y aura des soucis si le texte à traiter contient une macro, par exemple \toto (\newcommand{\toto}{toto}) le mot « toto » sera alors entièrement en gras. Personnellement je ferais une recherche et remplacement par regexp pour appliquer \textbf{} à la première lettre de chaque mot qui ne commence pas par \\ . Il semble que le remplacement \\(?:[^\\]\|^\\)\b\\(\\w\\)\\(\\w*\\)\\b\\\\textbf{\1}\2 le fait.

(19 Jui '21, 14:50) Jean-jacques Rétorré Jean-jacques%20R%C3%A9torr%C3%A9's gravatar image

@Jean-jacques Rétorré Attention ! Les contre-obliques (\) saisies telles quelles dans les contributions ne sont visibles que si elles sont insérées en tant que ⟨code⟩. Pour insérer du ⟨code⟩, notamment des commandes LaTeX, cf. la FAQ Comment mettre en forme ma contribution ?. Merci de corriger votre contribution si cela n'a pas déjà été fait.

(20 Jui '21, 15:05) denis ♦♦ denis's gravatar image

@Jean-jacques Rétorré On peut s'en sortir directement en LaTeX en redéfinissant \mfirstucMakeUppercase ainsi : \renewcommand*{\mfirstucMakeUppercase}{\textbf} et en recourant à \ecapitalisewords plutôt qu'à \capitalisewords.

(20 Jui '21, 15:21) denis ♦♦ denis'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.