1
1

J'ai augmenté l'espace vertical des cellules d'un tableau. Mais leur contenu n'est pas centré verticalement dans la dernière colonne. Je ne vois pas bien où cela pêche, mais je ne dois pas être très concentré…

Je voudrais bien aussi obtenir un calcul de la somme dans la dernière colonne, mais on verra plus tard (m'a l'air un peu plus compliqué…).

Voici un bout du code (array et tabularx en préambule, cela va de soi) :

\centering \setlength{\extrarowheight}{10pt} \begin{tabular}{l|l|m{.1\textwidth}} \hline \emph{Machin} & blabla & 50,20 \\ \hline & Total (en \euro) & 969,70 \\ \hline \end{tabular}

Posée 11 Déc '16, 21:05

fred02840's gravatar image

fred02840
4.2k17154187
Taux d'acceptation : 16%

Modifiée 07 Aoû '17, 23:44

Pathe's gravatar image

Pathe ♦♦
7.4k28196245


Vous pouvez faire ça :

  • soit avec l'extension cellspace, qui définit un espacement minimal en haut et au bas des cellules d'une colonne dont le spécificateur est préfixé de la lettre S (à moins que vous n'utilisiez l'extension siunitx, auquel cas il faut employer la lettre C, S étant un spécificateur de colonne réservé par siunitx),
  • soit avec makecell, qui permet de définir un espacement qu'on ajoute en haut et en bas des cellules. À noter que ça ne fonctionne pas avec le spécificateur m (pour des raisons de code internes des extensions, qui doivent toucher aux mêmes choses), que j'ai donc remplacé par p.

Voici un exemple :

Ouvrir dans l'éditeur
\documentclass[french]{article}
\usepackage[utf8]{inputenc}%
\usepackage[T1]{fontenc} %
\usepackage{fourier}
\usepackage{babel} %
\usepackage{siunitx}%
\usepackage{makecell}
\setcellgapes{8pt}
\usepackage{cellspace}
\setlength\cellspacetoplimit{9pt}
\setlength\cellspacebottomlimit{9pt}
\addparagraphcolumntypes{S}

\begin{document}

\centering
\sisetup{table-format=3.2, table-number-alignment=center, copy-decimal-marker}%
{\setlength{\extrarowheight}{10pt}
  \begin{tabular}{l|l|S}
    \hline
    \emph{Machin} & blabla & 50,20 \\
    \hline
                  & Total (en \texteuro) & 969,70 \\
    \hline
  \end{tabular}}
\vspace{1cm}

\begin{tabular}{Cl|Cl|C{S}}
  \hline
  \emph{Machin} & blabla & 50,20 \\
  \hline
                & Total (en \texteuro) & 969,70 \\
  \hline
\end{tabular}
\vspace{1cm}

{\makegapedcells
  \begin{tabular}{l|l| S}
    \hline
    \emph{Machin} & blabla & 50,20 \tabularnewline
    \hline
                  & Total (en \texteuro) & 969,70 \tabularnewline
    \hline
  \end{tabular}}

\end{document}

alt text

Lien permanent

Publiée 11 Déc '16, 21:51

Bernard's gravatar image

Bernard
4.6k15
Taux d'acceptation : 35%

Modifiée 12 Déc '16, 16:07

denis's gravatar image

denis ♦♦
7.0k1510

Super ! Merci beaucoup ! J'ai oublié de préciser que je cherchais au départ à aligner les chiffres sur la virgule (ce que ne montre pas le code). Je vais regarder la doc. sur les deux extensions, mais est-ce possible ?

(11 Déc '16, 22:16) fred02840 fred02840's gravatar image

J'ai modifié le code, en faisant la dernière colonne de type S (défini par siunitx). Du coup, la solution avec cellspace doit uttiliser le pré-qualificateur C.

(12 Déc '16, 03:50) Bernard Bernard's gravatar image

@Bernard. En cherchant autre chose, je suis tombé sur cette solution, encore plus simple, qui requiert le package array (on remplacera 1.3 par toute autre valeur) :

{\renewcommand{\arraystretch}{1.3} \begin{tabular}{l|p{5.5cm}|p{5.5cm}} blabla & blabla 1 & blabla 2 \\ \end{tabular}}

Je note que vous la proposiez en réponse à l'une de mes questions (http://texnique.fr/osqa/questions/938/tableaux-alignement-sur-une-virgule).

(13 Déc '16, 20:53) fred02840 fred02840's gravatar image

Je n'aime pas utiliser \arraystretch pour cela: il ne centre pas verticalement, parce que la profondeur (au-dessous de la ligne de base) d'une cellule n'est pas égale à sa hauteur. Ça se voit distinctement avec de grandes valeurs de arraystretch, disons 2.5 ou 3.

(13 Déc '16, 21:53) Bernard Bernard's gravatar image
Votre réponse
(dés)activer l'aperçu

Suivre cette question

Par courriel :

Une fois que vous serez enregistré, vous pourrez souscrire à n'importe quelle mise à jour ici

Par flux RSS :

Réponses

Réponses et commentaires

Bases de Markdown

  • *italique* ou _italique_
  • **gras** ou __gras__
  • Lien ::[texte](http://url.com/ "Titre ")
  • Image : ?![alt texte](/path/img.jpg "Titre ")
  • Liste numérotée : 1. Foo 2. Bar
  • Pour ajouter un passage à la ligne, ajoutez deux espaces à l'endroit où vous souhaitez que la ligne commence.
  • Les balises HTML de base sont également prises en charge.