Page 1 sur 1

[Résolu]Amélioration présentation d'un tableau

MessagePosté: Mardi 26 Juin 2018, 13:03
par pzorba75
Bonjour à tous,
J'essaie de recopier un tableau tel qu'il apparaît dans un livre de classe et j'ai rapidement des difficultés pour faire "pareil".
Voici un ECM montrant les améliorations désirées que je ne sais pas comment codifier en Latex :
Code: Tout sélectionner
\documentclass[a4paper,10pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[french]{babel}
\DecimalMathComma
\usepackage{mathrsfs,amssymb,mathtools}
\frenchbsetup{StandardLists=true}
\usepackage{enumitem}
\usepackage{geometry,url,varwidth}
\geometry{textwidth=130mm,textheight=260mm,top=2cm}
\usepackage[math]{cellspace}
%\usepackage{showframe}


\begin{document}

%\AddToShipoutPicture*{\ShowFramePicture}

\renewcommand{\arraystretch}{1.25}
\newcolumntype{C}{>{$\displaystyle}Sc<{$}}
\newcolumntype{D}{>{\centering$}S{m{1.25cm}}<{$}}
\cellspacetoplimit=3pt
\cellspacebottomlimit=3pt

\newcounter{nocas}%Création d'un compteur de lignes
\setcounter{nocas}{0}%initialisation du compteur
\newcommand{\cas}[1]{%Création d'une macro ayant un paramètre
\addtocounter{nocas}{1}%chaque fois que cette macro est appelée, elle ajoute 1 au compteur nocas
\,\textbf{\thenocas}\,%
}

\begin{center}
\begin{tabular}{|l|p{3.85cm}|p{6.85cm}|}
\hline
&\centering \textbf{Type d'équation ou d'inéquation}&\centering \textbf{Méthode à utiliser}\tabularnewline
\hline
\cas{}&\'Equation du premier degré&\begin{itemize}[itemsep=1pt,topsep=0pt,label=$\bullet$,leftmargin=*,wide=0pt]
\item On place l'ensemble des termes en $x$ dans un membre et les constantes dans l'autre membre.
\item On conclut.
\end{itemize}\tabularnewline
\hline
\cas{}&\'Equation de  la forme \linebreak$x^2=a$&\begin{itemize}[itemsep=1pt,topsep=0pt,label=$\bullet$,leftmargin=*,wide=0pt]
\item Si $a<0$, cette équation n'a pas de solution.;
\item Si $a=0$, cette équation a une solution unique $a=0$.
\item Si $a>0$, cette équation admet deux solutions : $-\sqrt{a}$ et $\sqrt{a}$.
\end{itemize}\tabularnewline
\hline
\cas{}&\'Equation produit&$A(x)\times B(x)=0$, où $A(x)$ et $B(x)$ sont des polynômes du premier degré en $x$, équivaut à $A(x)=0$ ou $B(x)=0$.\tabularnewline
\hline
\end{tabular}
\end{center}
\end{document}

Quelles sont les améliorations recherchées :
1) Centre verticalement le titre "Méthode à utiliser".
2) Diminuer les espaces en début et fin d'environnement itemize pour que toutes les cellules se présentent alignées comme la cellule du type 3 Equation produit.

Je remercie d'avance pour toute aide apportée et reste disponible s'il y besoin de précision sur ma demande.
Bonne journée à tous.
Pierre

Re: Amélioration présentation d'un tableau

MessagePosté: Mardi 26 Juin 2018, 14:18
par balf
Bonjour,
Je peux proposer ceci, qui repose sur une commande\compress, qui fait croire à LaTeX que la cellule est une minipage vierge, auquel cas les listes débutent sur la ligne de base, sans ajouter l'espacement habituel. À la sortie de l'environnement (et fin de la cellule), cet espacement est en revanche appliqué, et il faut donc compenser, ce qui se fait à l'aide de la clef after= qu'offre l'extension enumitem.

Pour ne pas avoir à répéter ces paramètres à chaque fois, j'ai défini un environnement ad hoc que j'ai appelé tabitemize.

Pour le problème des entête de colonnes, le mieux est d'utiliser l'extension makecell.

Pour finir, je me suis permis de remplacer l'encodage latin1 par utf8, et de charger l'option french de babel avec la classe de documents, ce qui est recommandé depuis la version 3.10, pour que les extensions sensibles au langage du document soient informées à coup sûr.

Code: Tout sélectionner
    \documentclass[a4paper, 10pt, french]{article}
    \usepackage[utf8]{inputenc}
    \usepackage[T1]{fontenc}
    \usepackage{lmodern}
    \usepackage{babel}
    \DecimalMathComma
    \usepackage{mathrsfs, amssymb, mathtools}
    \frenchbsetup{StandardLists=true}
    \usepackage{enumitem}
    \newlist{tabitemize}{itemize}{1}
    \setlist[tabitemize]{itemsep=1pt, topsep=0pt, label=\textbullet, leftmargin=*, wide=0pt, itemsep=1pt, leftmargin=*, after =\vspace{\dimexpr\partopsep-\baselineskip}}
    \usepackage{geometry, url, varwidth}
    \geometry{textwidth=130mm,textheight=260mm,top=2cm}
    \usepackage{makecell}
    \renewcommand{\theadfont}{\normalsize\bfseries}
    \usepackage[math]{cellspace}
    \cellspacetoplimit=3pt
    \cellspacebottomlimit=3pt

    \makeatletter
    \newcommand*{\compress}{\@minipagetrue}
    \makeatother

    \begin{document}
   
    \newcolumntype{C}{>{$\displaystyle}Sc<{$}}
    \newcolumntype{D}{>{\centering$}S{m{1.25cm}}<{$}}

    \newcounter{nocas}%Création d'un compteur de lignes
    \setcounter{nocas}{0}%initialisation du compteur
    \newcommand{\cas}[1]{%Création d'une macro ayant un paramètre
    \addtocounter{nocas}{1}%chaque fois que cette macro est appelée, elle ajoute 1 au compteur nocas
    \,\textbf{\thenocas}\,%
    }

    \begin{center}
    \begin{tabular}{|l|S{p{3.85cm}}| >{\compress}p{6.85cm}|}
    \hline
    & \thead{Type d'équation\\ ou d'inéquation} & \thead{Méthode à utiliser} \\%
    \hline
    \cas{}&\'Equation du premier degré&\begin{tabitemize}
    \item On place l'ensemble des termes en $x$ dans un membre et les constantes dans l'autre membre.
    \item On conclut.
    \end{tabitemize} \\%
    \hline
    \cas{}& Équation de la forme \linebreak$x^2=a$&\begin{tabitemize}
    \item Si $a<0$, cette équation n'a pas de solution.;
    \item Si $a=0$, cette équation a une solution unique $a=0$.
    \item Si $a>0$, cette équation admet deux solutions : $-\sqrt{a}$ et $\sqrt{a}$.
    \end{tabitemize} \\%
    \hline
    \cas{}& Équation-produit & $A(x)\times B(x)=0$, où $A(x)$ et $B(x)$ sont des polynômes du premier degré en $x$, équivaut à $A(x)=0$ ou $B(x)=0$.\tabularnewline
    \hline
    \end{tabular}
    \end{center}

    \end{document}
    ]

B. A.

Re: [Résolu]Amélioration présentation d'un tableau

MessagePosté: Mercredi 27 Juin 2018, 08:16
par pzorba75
Je valide la solution qui répond à mes demandes. Je suis vraiment très loin du niveau technique requis pour faire ce qui semble élémentaire quand on rédige des documents avec des présentations sous forme de tableaux récapitulatifs pour les méthodes comme c'était le cas dans ma demande.
Impossible à mon niveau de trouver la commande \compress ni le code pour régler le bas de la liste dans une cellule. Penser au package makecell pour faire un tableau que je qualifie de simple ne m'était pas venu à l'idée.
Les gourous de Mathematex me rendront encore de fiers services.
Merci à eux tous et bonnes vacances.
Pierre