--- myst: html_meta: keywords: LaTeX, composition, tableaux, cellules, flottants, justification, alignement, mise en forme --- # Comment modifier la justification du texte dans une cellule ? Il est parfois nécessaire de modifier la justification d'une cellule d'un tableau de type `p` (pour "paragraphe") mais cela peut être source de problème à la fin d'une ligne de tableau. La solution intuitive ressemble souvent à : ```{noedit} ... & \centering blabla... \\ ``` Il y a de grandes chances que se manifestent des erreurs décrites aux questions : - "[](/2_programmation/erreurs/m/misplaced_noalign)" ; - "[](/2_programmation/erreurs/e/extra_alignment_tab_has_been_changed_to_cr)". Ces problèmes ont pour origine la variété des sens de la commande `\\`. Dans l'environnement `tabular`, cette commande est modifiée et n'est plus compatible avec les commandes `\centering`, `\raggedright` et `\raggedleft`. Il faut ici noter que le problème ne se pose que dans la dernière cellule d'une ligne. ## Avec des commandes de base Anciennement, la valeur réelle de la commande `\\` utilisée par l'environnement `tabular` n'était disponible que sous forme de commande interne, `\tabularnewline`. De nos jours, cette commande est publique et vous pouvez en principe l'utiliser explicitement (avec le défaut d'avoir un code un peu plus long) : ```{noedit} ... & \centering blabla... \tabularnewline ``` Il est également possible de modifier cette justification avec la commande `\multicolumn`. Voici un exemple : ``` \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 \begin{document} \begin{tabular}{||p{2cm}|} Tous les \\ mots sont \\ alignés \\ à gauche \\ \multicolumn{1}{||r|}{sauf} \\ \og sauf \fg{}. \end{tabular} \end{document} ``` Notez que dans l'exemple précédent, nous avons placé les mêmes filets dans `\multicolumn` et `tabular` pour qu'il n'y ait pas de problème au niveau des raccords des cellules. ## Avec l'extension L'extension fournit une commande `\arraybackslash` qui restitue à la commande `\\` sa signification correcte (dans la table). Cette commande peut être utilisée dans les spécifications du préambule du tableau : ```{noedit} \begin{tabular}{... >{\centering\arraybackslash}p{50mm}} ... ``` ## Avec une solution plus ancienne Si les commandes `\tabularnewline` et `\arraybackslash` s'avèrent indisponibles, vous pouvez essayer une solution plus ancienne qui préserve le sens de la commande `\\` : ```{noedit} \newcommand\sautligne[1]{\let\temp=\\% #1% \let\\=\temp } ``` Elle s'utilise comme suit : ```{noedit} ... & \sautligne\centering blabla... \\ ``` Elle peut être également être placée dans le préambule du tableau : ```{noedit} \begin{tabular}{...>{\sautligne\centering}p{5cm}} ``` ## Avec l'extension :::{todo} Ajouter un exemple. ::: :::{sources} - [How to alter the alignment of tabular cells](faquk:FAQ-tabcellalign) :::