--- myst: html_meta: keywords: LaTeX, composition, texte, paragraphes, mise en page, justification à droite, justification à gauche, au fer à droite, au fer à gauche, arrêter la justification --- # 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](wpfr:Justification_(typographie)) (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. ``` \documentclass[french]{article} \usepackage[T1]{fontenc} % Encodage T1 (adapté au français) \usepackage{lmodern} % Caractères plus lisibles \usepackage{babel} % Réglages linguistiques (avec french) \pagestyle{empty} % N'affiche pas de numéro de page \usepackage[width=6.2cm]{geometry} \begin{document} \setlength{\parindent}{0ex} \raggedleft Ce texte d'exemple est au fer à droite. On dit aussi qu'il est \emph{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 : ``` \documentclass[french]{article} \usepackage[T1]{fontenc} % Encodage T1 (adapté au français) \usepackage{lmodern} % Caractères plus lisibles \usepackage{babel} % Réglages linguistiques (avec french) \pagestyle{empty} % N'affiche pas de numéro de page \usepackage[width=6.2cm]{geometry} \begin{document} \setlength{\parindent}{0ex} Texte aligné à gauche. {\raggedleft Ce texte d'exemple est au fer à droite. On dit aussi qu'il est \emph{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`](/2_programmation/macros/makeatletter_et_makeatother)) définit une commande qui rétablit la justification à droite et à gauche, qui est la justification par défaut de LaTeX : ```{noedit} \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 Une solution plus souple pour revenir au mode justifié après avoir mis le texte en drapeau est d'utiliser l'extension de Martin Schröder, qui propose une commande `\justifying` annulant l'effet de ces commandes [`\raggedleft` et `\raggedright`](justifier_un_paragraphe_a_droite_ou_a_gauche). L'extension fournit également un environnement `justify`, qui permet de justifier une portion de texte au milieu d'un document en drapeau. :::{important} Le paramètre `\parindent` est là encore modifié quand vous changez la justification du texte. Si vous souhaitez qu'il reprenne une valeur particulière quand vous appelez `\justifying`, et non la valeur par défaut de LaTeX, stockez cette valeur particulière dans `\JustifyingParindent`. L'exemple ci-dessous met cette valeur à `0ex`. ::: ``` \documentclass[french]{article} \usepackage[T1]{fontenc} % Encodage T1 (adapté au français) \usepackage{lmodern} % Caractères plus lisibles \usepackage{babel} % Réglages linguistiques (avec french) \pagestyle{empty} % N'affiche pas de numéro de page \usepackage[width=6.2cm]{geometry} \usepackage{ragged2e} \begin{document} \setlength{\parindent}{0ex} \setlength{\JustifyingParindent}{0ex} Texte aligné à gauche. \raggedleft Ce texte d'exemple est au fer à droite. On dit aussi qu'il est \emph{en drapeau à gauche}. \justifying Retour à la normale. \end{document} ``` Si vous ne faites pas attention au contenu de `\JustifyingParindent`, vous retrouvez l'indentation par défaut de LaTeX (ici mise en évidence en rouge) : ``` \documentclass[french]{article} \usepackage[T1]{fontenc} % Encodage T1 (adapté au français) \usepackage{lmodern} % Caractères plus lisibles \usepackage{babel} % Réglages linguistiques (avec french) \pagestyle{empty} % N'affiche pas de numéro de page \usepackage{tikz} \usepackage[width=6.2cm]{geometry} \usepackage{ragged2e} \begin{document} \setlength{\parindent}{0ex} Texte aligné à gauche. \raggedleft Ce texte d'exemple est au fer à droite. On dit aussi qu'il est \emph{en drapeau à gauche}. \justifying \tikz[overlay]\fill[red] (0,0) rectangle (-\parindent,1.5ex); Retour à la normale. \end{document} ``` :::{sources} - [Justification et alignement](https://essentiels.bnf.fr/fr/) par Danièle Memet, - [Cancelling "`\ragged`" commands](faquk:FAQ-flushboth). :::