--- myst: html_meta: keywords: LaTeX,tableaux,flottants,cellule,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 ») cela est source de problème à la fin d'une ligne de tableau. La solution intuive 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{article} \usepackage[french]{babel} \pagestyle{empty} \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 « array » 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éraient 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}} ``` :::{sources} [How to alter the alignment of tabular cells](faquk:FAQ-tabcellalign) :::