Je cherche comment présenter correctement les tableaux tabular en obtenant des lignes de hauteurs correctes, en particulier quand figurent des fractions dans l'entête et dans les lignes du tableau. J'ai mis un ECM avec un tableau qui n'est pas vraiment joli.

Ouvrir dans l'éditeur
\documentclass[a4paper,10pt,oneside]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[frenchb]{babel}

\usepackage{mathrsfs,amssymb,mathtools,cellspace}
\everymath{\displaystyle}

\begin{document}

\newcolumntype{C}{>{$\displaystyle}Sc<{$}}
\newcolumntype{D}{>{\centering$}m{1cm}<{$}}
\begin{center}
\begin{tabular}{|l|*{3}{D|}}
\hline
$g_i$&-3&2&5\tabularnewline
\hline
$p_i=P\left(G=g_i\right)$&\dfrac{1}{2}&\dfrac{1}{3}&\dfrac{1}{6}\tabularnewline
\hline
\end{tabular}
\end{center}
\end{document}

Avec le package tabvar, je peux régler ce genre de problème dans les tableaux de variations avec une commande \TVarraystretch{}{}, mais je ne sais pas comment œuvre cette commande pour m'en inspirer dans des tableaux normaux.

Posée 19 Déc '15, 12:30

pzorba75's gravatar image

pzorba75
15761523
Taux d'acceptation : 18%

Modifiée 28 Déc '15, 21:36

Pathe's gravatar image

Pathe ♦♦
7.5k42204251


Bon, allez, c'est reparti : le package cellspace permet, avec le spécificateur de colonne S, d'insérer si c'est nécessaire une espace en haut et en bas d'une cellule pour justement que le contenu ne touche pas les filets horizontaux. Le déclenchement de l'insertion de l’espace dépend des paramètres \celltoplimit et \cellbottomlimit qui représentent l'espace minimale demandée en haut ou en bas de la cellule.

Ce spécificateur S fonctionne un peu comme une macro et admet un argument qui est le spécificateur de la colonne. On peut donc écrire Sc pour une colonne centrée ou S{m{<longueur>}} pour une colonne de type m{<longueur>}.

Ouvrir dans l'éditeur
\documentclass{article}
\usepackage{cellspace}
\newcolumntype{C}{>{$\displaystyle}Sc<$}
\cellspacetoplimit=3pt
\cellspacebottomlimit=3pt
\begin{document}
\begin{center}
    \begin{tabular}{|l|*{3}{C|}}\hline
        $g_i$&-3&2&5\\\hline
        $p_i=P\left(G=g_i\right)$&\frac12&\frac13&\frac16\\\hline
    \end{tabular}
\end{center}
\end{document}
Lien permanent

Publiée 19 Déc '15, 21:39

unbonpetit's gravatar image

unbonpetit ♦♦
1.8k18
Taux d'acceptation : 68%

Modifiée 19 Déc '15, 22:12

Pathe's gravatar image

Pathe ♦♦
7.5k42204251

Pour information, l'environnement {NiceTabular} de nicematrix, qui est similaire à l'environnement classique {array} (de l'extension éponyme), a des clés cell-space-top-limit et cell-space-bottom-limit similaires aux paramètres \cellspacetoplimit et \cellspacebottomlimit de cellspace. Il existe aussi une clé cell-space-limits pour régler simultanément les deux valeurs.

\documentclass[a4paper,10pt,oneside]{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[frenchb]{babel}

\usepackage{mathrsfs,amssymb,mathtools}
\usepackage{nicematrix}
\everymath{\displaystyle}

\begin{document}

\newcolumntype{D}{>{\centering$}m{1cm}<{$}}
\begin{center}
\begin{NiceTabular}{|l|*{3}{D|}}[cell-space-limits=3pt]
\hline
$g_i$&-3&2&5\tabularnewline
\hline
$p_i=P\left(G=g_i\right)$&\dfrac{1}{2}&\dfrac{1}{3}&\dfrac{1}{6}\tabularnewline
\hline
\end{NiceTabular}
\end{center}
\end{document}
Lien permanent

Publiée 18 Sep '21, 13:42

fpantigny's gravatar image

fpantigny
1.3k44
Taux d'acceptation : 36%

Histoire de faire le tâtillon, il me sembke que c'est l'environnement array qui est éponyme de l'extension.

(20 Sep '21, 14:33) Bernard Bernard's gravatar image

@Bernard: C'est vrai. J'aurais dû dire : « fourni par l’extension de même nom » car nicematrix chargeant array, c'est bien l'environnement {array} de array qui est utilisé et non l'environnement {array} de LaTeX standard.

(20 Sep '21, 15:01) fpantigny fpantigny's gravatar image

Ayant un préambule personnel, non présentable tellement il regroupe de réglages en tous genres, je me demande s'il est possible d'ajouter les lignes cellspacetoplimit=3pt et cellspacebottomlits=3pt dans ce préambule pour alléger les documents avec plusieurs tableaux.

Je rédige sous TeXmaker et j'ai un raccourci qui m'insère automatiquement la défintion tabular que je n'ai qu'à modifier en adaptant le nombre et la largeur des colonnes identiques maintenant codées avec S{m{***}}.

Lien permanent

Publiée 19 Déc '15, 19:02

pzorba75's gravatar image

pzorba75
15761523
Taux d'acceptation : 18%

Modifiée 19 Déc '15, 20:00

Pathe's gravatar image

Pathe ♦♦
7.5k42204251

Dans l'ECM, j'ai oublié de mettre l'appel de cellspace, mais dans mes documents j'ai bien cette extension. Je vais reprendre avec mes documents complets avant de valider la réponse ou redonner un exemple avec un ECM fidèle. Voici un ECM modifié intégrant la réponse d'unbonpetit et une description plus précise de ce que je cherche à obtenir

Ouvrir dans l'éditeur
    \documentclass[a4paper,10pt,oneside]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[frenchb]{babel}

\usepackage{mathrsfs,amssymb,mathtools,cellspace}
\everymath{\displaystyle}

\begin{document}

\newcolumntype{C}{>{$\displaystyle}Sc<{$}}
\newcolumntype{D}{>{\centering$}m{1cm}<{$}}
\cellspacetoplimit=3pt
\cellspacebottomlimit=3pt
\begin{center}
\begin{tabular}{|l|*{3}{C|}}
\hline
$g_i$&-\dfrac{3}{2}&2&5\tabularnewline
\hline
$p_i=P\left(G=g_i\right)$&\dfrac{1}{2}&\dfrac{1}{3}&\dfrac{1}{6}\tabularnewline
\hline
\end{tabular}
\end{center}
Je n'utilise pas le code C dans la définition des 3 colonnes mais le code D qui permet d'obtenir un tableau avec ces 3 colonnes de la même largeur, et dans ce cas les fractions heurtent les lignes horizontales comme le montre le tableau ci-dessus.

\newcolumntype{C}{>{$\displaystyle}Sc<{$}}
\newcolumntype{D}{>{\centering$}m{1cm}<{$}}
\cellspacetoplimit=3pt
\cellspacebottomlimit=3pt
\begin{center}
\begin{tabular}{|l|*{3}{D|}}
\hline
$g_i$&-\dfrac{3}{2}&2&5\tabularnewline
\hline
$p_i=P\left(G=g_i\right)$&\dfrac{1}{2}&\dfrac{1}{3}&\dfrac{1}{6}\tabularnewline
\hline
\end{tabular}
\end{center}

En résumé, il me faut combiner le S et m\{1cm\} est cellspacetop et cellspacebottom mais je ne trouve pas comment le codifier sans erreur de compilation.
\end{document}

``

Lien permanent

Publiée 19 Déc '15, 15:20

pzorba75's gravatar image

pzorba75
15761523
Taux d'acceptation : 18%

Modifiée 19 Déc '15, 17:27

La réponse se trouve dans la documentation de cellspace, chapitre "How to solve this" !

Ouvrir dans l'éditeur
\newcolumntype{D}{>{\centering$}S{m{1cm}}<$}
Lien permanent

Publiée 19 Déc '15, 17:41

unbonpetit's gravatar image

unbonpetit ♦♦
1.8k18
Taux d'acceptation : 68%

Le package cellpsace est justement fait pour ça : la colonne C définie dans votre code semble faire exactement ce que vous demandez en plus !

Ouvrir dans l'éditeur
\documentclass{article}
\usepackage{array,cellspace}
\newcolumntype{C}{>{$\displaystyle}Sc<$}
\cellspacetoplimit=3pt
\cellspacebottomlimit=3pt
\begin{document}
\begin{center}
    \begin{tabular}{|l|*{3}{C|}}\hline
        $g_i$&-3&2&5\\\hline
        $p_i=P\left(G=g_i\right)$&\frac12&\frac13&\frac16\\\hline
    \end{tabular}
\end{center}
\end{document}
Lien permanent

Publiée 19 Déc '15, 12:40

unbonpetit's gravatar image

unbonpetit ♦♦
1.8k18
Taux d'acceptation : 68%

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.