Espace cellule

Tout ce qui concerne le langage LaTeX et ses variantes. Ce langage est supporté sur le forum via les balises tex.

Modérateur : gdm_tex

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
pianiste06
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 139
Inscription : mardi 05 mai 2020, 08:29

[Résolu] Espace cellule

Message par pianiste06 »

Bonjour à tous,
J'aimerai laisser de l'espace pour chaque cellule dans un tableau mais uniquement dans la partie inférieure des cellules.

J'ai actuellement un tableau mais je ne suis pas satisfait du visuel.
Je voulais vous faire un programme court pour vous montrer le rendu, mais il manque un package et je ne sais pas lequel :
Voici le programme (qui hélas ne tourne pas) :

Code : Tout sélectionner

\documentclass[10pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{array}
\usepackage{chemfig}
\usepackage{amsmath}


\begin{document}

$\begin{array}{|c|c|}\hline
\mathbf{n\degres 1} & \mathbf{n\degres 2}\\ 
\chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]OH}&
\chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]H}\\ \hline
\mathbf{n\degres 3} & \mathbf{n\degres 4}\\ 
\chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]NH-CH_2-CH_3}&\chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]O-CH_2-CH_3}\\ \hline
\end{array}$


\end{document}

Auriez vous une idée du package manquant ? D'avance merci

gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2574
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: Espace cellule

Message par gigiair »

Il existe de nombreuses solutions pour représenter le caractère degre, il y a sûrement plus élégant que celle que je propose ( ^\circ ) qui ne requiert aucune extension.
Pour avoir un peu d'espace dans ton tableau, il suffit d'insérer un « étai » constitué d'une réglure invisible : \rule[-2em]{0pt}{0pt} à adapter suivant ton goût.

Code : Tout sélectionner

%>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
\documentclass[10pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{array}
\usepackage{chemfig}
\usepackage{amsmath}
\begin{document}

$\begin{array}{|c|c|}\hline
\mathbf{n^\circ 1} & \mathbf{n^\circ 2}\\ 
\rule[-2em]{0pt}{0pt}\chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]OH}&
\chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]H}\\ \hline
\mathbf{n^\circ 3} & \mathbf{n^\circ 4}\\ 
\rule[-2em]{0pt}{0pt}\chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]NH-CH_2-CH_3}&\chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]O-CH_2-CH_3}\\ \hline
\end{array}$

\end{document}

JJR.
LaTeXien migrateur.

evariste_G
Utilisateur chevronné
Utilisateur chevronné
Messages : 1452
Inscription : vendredi 19 décembre 2008, 19:13
Localisation : Bordeaux

Re: Espace cellule

Message par evariste_G »

Bonjour.

L'extension qui manquait était "babel", et l'option "french" dans la classe "article".
Ensuite, pour insérer des espaces au-dessus et en-dessous du contenu des cellules, on peut utiliser l'extension "cellspace".

Code : Tout sélectionner

\documentclass[10pt,french]{article}
\usepackage{babel} 
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{array}
\usepackage{chemfig}
\usepackage{amsmath}
\usepackage{cellspace}
	\setlength{\cellspacebottomlimit}{10pt}
	\setlength{\cellspacetoplimit}{3pt}

\begin{document}

$\begin{array}{|Sc|Sc|}\hline
\textbf{n\degres 1} & \textbf{n\degres 2}\\ 
\chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]OH}&
\chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]H}\\ \hline
\textbf{n\degres 3} & \textbf{n\degres 4}\\ 
\chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]NH-CH_2-CH_3}&\chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]O-CH_2-CH_3}\\ \hline
\end{array}$

\end{document}
L'espace est donnée avec \cellspacebottomlimit et \cellspacetoplimit.
tableau.png
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Mathématiques, LaTeX et Python : http://www.mathweb.fr

pianiste06
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 139
Inscription : mardi 05 mai 2020, 08:29

Re: Espace cellule

Message par pianiste06 »

Bonjour,

merci à vous deux pour votre précieuse aide.
L'avantage du tableau proposé par Gigiair, c'est qu'il s'adapte à chaque tableau alors que la seconde méthode impose
le même rendu pour tous les tableaux présents dans le document.

C'est exactement ce que je cherchais à faire. Merci encore.

pianiste06
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 139
Inscription : mardi 05 mai 2020, 08:29

Re: Espace cellule

Message par pianiste06 »

@gigiair

Pourriez vous s'il vous plait m'expliquer en 2 mots le sens de \rule[-2em]{0pt}{0pt} ?

gigiair
Utilisateur chevronné
Utilisateur chevronné
Messages : 2574
Inscription : samedi 08 juillet 2006, 20:56
Localisation : Saint Bonnet Elvert

Re: Espace cellule

Message par gigiair »

pianiste06 a écrit :
mercredi 01 juillet 2020, 10:59
@gigiair

Pourriez vous s'il vous plait m'expliquer en 2 mots le sens de \rule[-2em]{0pt}{0pt} ?
Je ne me souviens jamais de la syntaxe, aussi je fais des expériences à chaque fois pour voir quel paramètre fait quoi

Code : Tout sélectionner

23.7 '\rule'
============

Synopsis, one of:

     \rule{WIDTH}{THICKNESS}
     \rule[RAISE]{WIDTH}{THICKNESS}

   Produce a "rule", a filled-in rectangle.
JJR.
LaTeXien migrateur.

balf
Utilisateur chevronné
Utilisateur chevronné
Messages : 3934
Inscription : mercredi 02 janvier 2008, 23:18

Re: Espace cellule

Message par balf »

Bonjour,

La commande \degres est définie par babel-french. Il était d'ailleurs possible, aussi bien, d'utiliser la commande \no.

D'autre part, je ne vois pas la nécessité de passer en mode mathématique pour cette table. J'ai donc utilisé tabular et ajouté l'extension cellspace, qui permet de définir un espacement vertical minimum en haut et en bas des cellules d'une colonne dont le spécificateur (c dans votre cas) est précédé d'une lettre que l'on peut choisir (S par défaut, mais cette lettre est délà utilisée comme spécificateur de colonne par l'extension siunitx).

Je vous propose l'une de ces deux possibilités, dont vous trouverez le résultat en p.j. :

Code : Tout sélectionner

    \documentclass[10pt, french]{article}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage{babel}
    \usepackage{array}
    \usepackage{chemfig}
    \usepackage{amsmath}

    \usepackage[column=O, math]{cellspace}
    \setlength{\cellspacetoplimit}{4pt}
    \setlength{\cellspacebottomlimit}{4pt}

    \begin{document}

    \centering
    \begin{tabular}{|Oc|Oc|}\hline
    \multicolumn{1}{|Ol|}{\textbf{n\degres 1}} &\multicolumn{1}{Ol|}{\textbf{n\degres 2}} \\
    \chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]OH}&
    \chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]H}\\ \hline
    \multicolumn{1}{|Ol|}{\textbf{n\degres 3}} & \multicolumn{1}{Ol|}{\textbf{n\degres 4}}\\
    \chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]NH-CH_2-CH_3}&\chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]O-CH_2-CH_3}\\ \hline
    \end{tabular}

    \vskip 1cm
    {\fboxrule=1pt%
    \fbox{\begin{tabular}{Oc!{\quad}Oc}
    \multicolumn{1}{Ol}{\textbf{n\degres 1}} &\multicolumn{1}{Ol}{\textbf{n\degres 2}} \\
    \chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]OH}&
    \chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]H}\\
     & \\[1ex]
    \multicolumn{1}{Ol}{\textbf{n\degres 3}} & \multicolumn{1}{Ol}{\textbf{n\degres 4}}\\
    \chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]NH-CH_2-CH_3}&\chemfig[atom sep=2em]{CH_3-CH_2-C(=[:30]O)-[:-30]O-CH_2-CH_3}
    \end{tabular}}
    }%

    \end{document}

B.A.
espace_cellule.pdf
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par balf le vendredi 03 juillet 2020, 16:10, modifié 2 fois.

pianiste06
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 139
Inscription : mardi 05 mai 2020, 08:29

Re: Espace cellule

Message par pianiste06 »

Latex devient presque une science expérimentale... :lol: :lol: :lol:

pianiste06
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 139
Inscription : mardi 05 mai 2020, 08:29

Re: Espace cellule

Message par pianiste06 »

Bonjour à tous,

J'ai appliqué la méthode préconisée par Gigiair, qui marche vraiment bien.

Je l'ai testé sur un autre tableau, mais une partie des molécules se trouvent en bas, et les 2 dernières, sont trop hautes.
Je ne vois pas trop d'où vient le bug...
Toute suggestion est bienvenue.

Voici le code simplifié... (qui tourne !) :

Code : Tout sélectionner

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{array}
\usepackage{chemfig}
\usepackage{amsmath}
\begin{document}

\begin{center}
$\begin{array}{|c|c|c|c|c|}\hline
 \rule[-0.2cm]{0cm}{0.8cm}\chemfig[atom sep=2em]{=-[:-60]-OH}&
\chemfig[atom sep=2em]{-(-[:-90]OH)(-[:90])-}&\chemfig[atom sep=2em]{-(=_[:60]O)(-[:-60]O--[:60])}&\chemfig[atom sep=2em]{-[:30](=[:90]O)-[:-30]-[:30]}& \chemfig[atom sep=2em]{HO-[:30](=[:90]O)-[:-30]=_[:30]}\\ 
\text{Alcool allylique}&\text{Alcool ter-butylique}&\text{Acétate d'éthyle}&\text{butanone}&\text{Acide acrylique}\\ \hline
\end{array}$
\end{center}

\end{document}
D'avance merci!

balf
Utilisateur chevronné
Utilisateur chevronné
Messages : 3934
Inscription : mercredi 02 janvier 2008, 23:18

Re: Espace cellule

Message par balf »

Je vous propose cette solution, qui utilise l'extension makecell, dont la commande éponyme centre son contenu verticalement aussi bien qu'horizontalement, et qui a des commandes pour augmenter hauteur et profondeur des cellules. Cela, toujours en mode texte, puisque je n'ai pas encore compris le pourquoi le mode mathématique.

Code : Tout sélectionner

\documentclass[11pt, french]{article}
\usepackage[T1]{fontenc}
\usepackage{babel} 
\usepackage{array}
\usepackage{chemfig}
\usepackage{amsmath}
\usepackage{makecell} 

\begin{document}

\begin{center}
\setlength{\tabcolsep}{4pt}
\setcellgapes{4pt}\makegapedcells
\begin{tabular}{|*{5}{c|}}
\hline
\makecell{\chemfig[atom sep=2em]{=-[:-60]-OH}}&
\makecell{\chemfig[atom sep=2em]{-(-[:-90]OH)(-[:90])-}}&\makecell{\chemfig[atom sep=2em]{-(=_[:60]O)(-[:-60]O--[:60])}}
&\makecell{\chemfig[atom sep=2em]{-[:30](=[:90]O)-[:-30]-[:30]}}
&\makecell{ \chemfig[atom sep=2em]{HO-[:30](=[:90]O)-[:-30]=_[:30]}}\\
Alcool allylique & Alcool ter-butylique& Acétate d'éthyle & Butanone & Acide acrylique \\ 
\hline
\end{tabular}
\end{center}

\end{document} 
B. A.
espace_cellule_jjr.pdf
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.

pianiste06
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 139
Inscription : mardi 05 mai 2020, 08:29

Re: Espace cellule

Message par pianiste06 »

Merci Balf.
C'est vraiment exactement ce que je voulais !

Bon week end à vous.