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 à :
... & \centering blabla... \\
Il y a de grandes chances que se manifestent des erreurs décrites aux questions :
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.
1. 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) :
... & \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.
2. Avec l’extension array#
L’extension array 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 :
\begin{tabular}{... >{\centering\arraybackslash}p{50mm}}
...
3. 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 \\
:
\newcommand\sautligne[1]{\let\temp=\\%
#1%
\let\\=\temp
}
Elle s’utilise comme suit :
... & \sautligne\centering blabla... \\
Elle peut être également être placée dans le préambule du tableau :
\begin{tabular}{...>{\sautligne\centering}p{5cm}}