Comment annuler l'effet des commandes \raggedleft et \raggedright?

\LaTeX fournit les commandes \raggedright et \raggedleft pour mettre le texte au fer à gauche ou à droite (respectivement), mais aucune pour annuler leur effet. La commande \centering est implémentée de la même manière que les commandes \ragged… et pose le même problème pour revenir à l'alignement standard.

\raggedleft
Ce texte d'exemple est au fer à droite.
On dit aussi qu'il est <<\,en drapeau à gauche\,>>.

\documentclass{article}
\usepackage[width=6cm]{geometry}
\usepackage[french]{babel}
\pagestyle{empty}
\begin{document}
\parindent=0ex

\raggedleft
Ce texte d'exemple est au fer à droite.
On dit aussi qu'il est <<\,en drapeau à gauche\,>>.
\end{document}

Avec un groupe

La façon la plus courante pour limiter l'effet de ces commandes consiste à les utiliser à l'intérieur d'un groupe (ou bloc), délimité par des accolades ouvrante et fermante, ce qui limite l'action des commandes \raggedright et \raggedleft à ce seul groupe :

Texte aligné à gauche.
 
{\raggedleft
Ce texte d'exemple est au fer à droite.
On dit aussi qu'il est <<\,en drapeau à gauche\,>>.
\par
}
 
Retour à la normale.

\documentclass{article}
\usepackage[width=6cm]{geometry}
\usepackage[french]{babel}
\pagestyle{empty}
\begin{document}
\parindent=0ex

Texte aligné à gauche.

{\raggedleft
Ce texte d'exemple est au fer à droite.
On dit aussi qu'il est <<\,en drapeau à gauche\,>>.
\par
}

Retour à la normale.
\end{document}

Avec des commandes de base

Le code suivant (à insérer dans votre propre fichier « .sty » ou entre les commandes \makeatletter et \makeatother) définit une commande qui rétablit la justification à droite et à gauche, qui est la justification par défaut de \LaTeX :

\def\flushboth{%
  \let\\\@normalcr
  \@rightskip\z@skip \rightskip\@rightskip
  \leftskip\z@skip
  \parindent 1.5em\relax}

Cependant un problème réside dans le paramètre \parindent dans ce code : nous le mettons à une valeur fixe (ici 1.5em). Ceci est nécessaire parce que les deux commandes \raggedright et \raggedleft mettent \parindent à 0, mais cette solution ne tient pas compte des éventuelles modifications apportées à ce paramètre par ailleurs :

  • par exemple en mode twocolumn, la valeur par défaut de \parindent est 1em et non 1.5em;
  • vous avez également pu aussi le modifier manuellement.

Avec l'extension ragged2e

Une solution plus souple pour revenir au mode justifié après avoir mis le texte en drapeau est d'utiliser l'extension ragged2e de Martin Schröder, qui propose une commande \justifying correspondant aux commandes \raggedleft et \raggedright. L'extension fournit également un environnement justify, qui permet de justifier une portion de texte au milieu d'un document en drapeau.


Sources :

3_composition/texte/paragraphes/annuler_les_commandes_ragged.txt · Dernière modification: 2021/01/30 19:43 par yannick.tanguy
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0