Comment passer à la ligne dans une cellule?

$\Reponse$ Dans les colonnes de type paragraphe ('p' dans la définition), on dispose de toutes les commandes usuelles de retour à la ligne, sauf évidemment de \char92, qui indique la fin de la ligne de cellules du tableau. Selon l'effet désiré, on pourra utiliser : \newline, \par, ou la classique ligne blanche de séparation de paragraphes.

$\Reponse$ Les colonnes de type c, l ou r ne sont pas conçues pour contenir plus d'une ligne. Si l'on tient à la mise en forme (justification, centrage, …), il faut utiliser une colonne de type p, dans laquelle on introduira la commande de formattage désirée. Le problème est alors que les commandes \raggedleft, \raggedright et \centering redéfinissent \char92. On se retrouve alors dans la situation inverse de celle de la réponse précédente : lorsque l'on utilise ces commandes (ou au moins leur définition de \char92) dans un tableau, la commande \char92 n'indique plus un changement de ligne dans le tableau, mais un passage à la ligne dans la cellule. La commande \tabularnewline, qui est équivalente à \char92 habituellement, devra alors remplacer celle-ci pour indiquer la fin d'une ligne du tableau.

En combinant tout ceci avec le package array, qui permet de spécifier dans la définition d'une colonne une commande qui sera systématique appliquée au contenu de chacune des cellules de cette colonne (même technique que pour changer la fonte d'une colonne), on peut écrire ceci:

\makeatletter
\newcommand\justify{%
  \let\\\@centercr
  \rightskip\z@skip
  \leftskip\z@skip}
\makeatother
\begin{center}
\begin{tabular}{|l>{\justify}p{5cm}|}
\hline
LTL & Logique du temps linéaire : cette logique
      permet d'exprimer des propriétés sur une
      exécution du système. \\
      Le model checking et la satisfaisabilité
      sont alors PSPACE-complets.
      \tabularnewline[3mm]
CTL & Logique du temps arborescent : cette logique
      exprime des propriétés sur l'arbre de
      toutes les exécutions possibles. \\
      Le model checking est P-complet, mais la
      satisfaisabilité est EXPTIME-complète.
      \tabularnewline
\hline
\end{tabular}
\end{center}

qui donne après compilation:


\documentclass[french]{article}
\usepackage{lmodern}
\usepackage{array}
\usepackage{babel}

\makeatletter
\newcommand\justify{%
  \let\\\@centercr
  \rightskip\z@skip
  \leftskip\z@skip}
\makeatother

\begin{document}
\thispagestyle{empty}

\begin{tabular}{|l>{\justify}p{5cm}|}
\hline
LTL & Logique du temps linéaire : cette logique
      permet d'exprimer des propriétés sur une
      exécution du système. \\
      Le model checking et la satisfaisabilité
      sont alors PSPACE-complets.
      \tabularnewline[3mm]
CTL & Logique du temps arborescent : cette logique
      exprime des propriétés sur l'arbre de
      toutes les exécutions possibles. \\
      Le model checking est P-complet, mais la
      satisfaisabilité est EXPTIME-complète.
      \tabularnewline
\hline
\end{tabular}
\end{document}
3_composition/tableaux/colonnes/fixer_la_largeur_et_justifier_une_colonne.txt · Dernière modification : 2020/12/21 19:18 de jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0