Largeur de colonne dans un tableau

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Largeur de colonne dans un tableau

Messagepar goems » Samedi 22 Août 2009, 13:35

Bonjour,

Je désire fixer la largeur d'une colonne dans un de mes tableaux. De plus, j'aimerais que le texte de cette colonne soit centré. J'ai trouvé une technique pour faire cela dans la faqfr version 3.00 mais ça ne fonctionne pas.

Code: Tout sélectionner
\documentclass[a4paper,12pt]{report}
%Permet d'utiliser les accents dans winedt
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
%Définit la police utilisée
\usepackage{fouriernc}
%Permet de définir les marges des pages
\usepackage[
    paper=a4paper,
    tmargin=2.5cm,
    bmargin=2.5cm,
    lmargin=2.5cm,
    rmargin=2.5cm]{geometry}
\usepackage[frenchb]{babel}
%Permet de faire varier les paramètres des titres
\usepackage{sectsty}
%Permet de souligner
\usepackage[normalem]{ulem}
%Permet d'encadrer
\usepackage{fancybox}
%Permet la gestion des hauts et bas de page
\usepackage{fancyhdr}
%Permet la gestion des figures
\usepackage{graphicx,subfigure}
%******************************
\usepackage{shadow}
\usepackage{subfigure}
%Permet de colorier le texte ou de surligner
\usepackage{color}
%Gestion des colonnes dans les tableaux
\usepackage{multirow}
%Permet de changer les légendes
\usepackage[small,hang]{caption2}
%Pour la gestion des flottants
\usepackage{float}
%Permet l'utilisation de \topcaption
\usepackage{topcapt}
% Pour crer une liste de Symboles
\usepackage{nomencl}                           
%Crée la liste de symboles
%***************************************************************************

%Définit la commande \hlinewd pour les tableaux
%***************************************************************************
\makeatletter
\def\hlinewd#1{%
\noalign{\ifnum0=`}\fi\hrule \@height #1 %
\futurelet\reserved@a\@xhline}
\makeatother
%***************************************************************************

%Change la légende des figures et des tableaux
%***************************************************************************
\renewcommand{\captionfont}{\normalsize}            %taille de la légende
\renewcommand{\captionlabelfont}{\it \bf \small}    %?
\renewcommand{\captionlabeldelim}{\bf \space : }    %Un espace puis :
\renewcommand\captionlabelsep{\space }              %un espace après le :
\addto\captionsfrench{%                             % renomme les légende (pas nécessaire, mais cela enlève les majuscules
\renewcommand{\figurename}{{\bfseries\normalsize  Figure}}}
\addto\captionsfrench{%
\renewcommand{\tablename}{{\bfseries\normalsize Tableau}}}
%***************************************************************************

\begin{document}

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


\begin{table}
\begin{center}
       \caption{Un tableau avec une colonne problématique}
       
       \begin{tabular}[!t]{@{\vrule width 0.3mm\hskip\tabcolsep} c | c | >{\justify}m{3cm} @{\hskip\tabcolsep\vrule width 0.3mm} }
        \hlinewd{0,3mm}
                            & Normal      & Expérience problèmatique\tabularnewline
        \hlinewd{0,3mm}
        Masse               & 7800g       & 700g\tabularnewline
        \hlinewd{0,3mm}
       
        \end{tabular}
\end{center}
\end{table}

\end{document}


Le titre de colonne Normal est bel et bien centré sur la hauteur. Par contre, le titre suivant et le 700g ne sont pas centré par rapport à l'horizontale.

Merci
goems
Déca-utilisateur
 
Messages: 13
Inscription: Mercredi 20 Mai 2009, 10:32
Statut actuel: Post-bac | Ecole d'ingénieur

Publicité

Re: Largeur de colonne dans un tableau

Messagepar rebouxo » Samedi 22 Août 2009, 20:33

Ça c'est normal ! m{3cm} va centrer verticalement cette colonne et pas les autres.

Olivier
A line is a point that went for a walk. Paul Klee
Par solidarité, pas de MP
rebouxo
Modérateur
 
Messages: 6938
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: Largeur de colonne dans un tableau

Messagepar goems » Samedi 22 Août 2009, 20:42

D'accord, mais as-tu une solution?
goems
Déca-utilisateur
 
Messages: 13
Inscription: Mercredi 20 Mai 2009, 10:32
Statut actuel: Post-bac | Ecole d'ingénieur

Re: Largeur de colonne dans un tableau

Messagepar pg » Dimanche 23 Août 2009, 10:29

goems a écrit:le titre suivant et le 700g ne sont pas centré par rapport à l'horizontale

Pour centrer par rapport à l'horizontale, c'est plutôt :

Code: Tout sélectionner
>{\centering}m{3cm}
pg
Modérateur
 
Messages: 2595
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Largeur de colonne dans un tableau

Messagepar goems » Dimanche 23 Août 2009, 13:02

Merci beaucoup, tu as toujours solution à tout à ce que je vois.

Tant que j'y suis, voici une nouvelle colle: Je cherche à créer de nouvelles macro. Pour cela, j'utilise \makeatletter, \newcommand et \makeatother.

Voici le scipt.

Code: Tout sélectionner

\documentclass[a4paper,12pt]{report}
%Permet d'utiliser les accents dans winedt
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
%Définit la police utilisée
\usepackage{fouriernc}
%Permet de définir les marges des pages
\usepackage[
    paper=a4paper,
    tmargin=2.5cm,
    bmargin=2.5cm,
    lmargin=2.5cm,
    rmargin=2.5cm]{geometry}
\usepackage[frenchb]{babel}
%Permet de faire varier les paramètres des titres
\usepackage{sectsty}
%Permet de souligner
\usepackage[normalem]{ulem}
%Permet d'encadrer
\usepackage{fancybox}
%Permet la gestion des hauts et bas de page
\usepackage{fancyhdr}
%Permet la gestion des figures
\usepackage{graphicx,subfigure}
%******************************
\usepackage{shadow}
\usepackage{subfigure}
%Permet de colorier le texte ou de surligner
\usepackage{color}
%Gestion des colonnes dans les tableaux
\usepackage{multirow}
%Permet de changer les légendes
\usepackage[small,hang]{caption2}
%Pour la gestion des flottants
\usepackage{float}
%Permet l'utilisation de \topcaption
\usepackage{topcapt}
\usepackage{array}
% Pour crer une liste de Symboles
\usepackage{nomencl}                           
%Crée la liste de symboles
%***************************************************************************

%Définit la commande \hlinewd pour les tableaux
%***************************************************************************
\makeatletter
\def\hlinewd#1{%
\noalign{\ifnum0=`}\fi\hrule \@height #1 %
\futurelet\reserved@a\@xhline}
\makeatother
%***************************************************************************

%Définit la commande \vlinewd pour les tableaux
%***************************************************************************
\makeatletter
\def\vlinewd#1{%
\noalign{\ifnum0=`}\fi\vrule \@height #1 %
\futurelet\reserved@a\@xhline}
\makeatother
%***************************************************************************

%Change la légende des figures et des tableaux
%***************************************************************************
\renewcommand{\captionfont}{\normalsize}            %taille de la légende
\renewcommand{\captionlabelfont}{\it \bf \small}    %?
\renewcommand{\captionlabeldelim}{\bf \space : }    %Un espace puis :
\renewcommand\captionlabelsep{\space }              %un espace après le :
\addto\captionsfrench{%                             % renomme les légende (pas nécessaire, mais cela enlève les majuscules
\renewcommand{\figurename}{{\bfseries\normalsize  Figure}}}
\addto\captionsfrench{%
\renewcommand{\tablename}{{\bfseries\normalsize Tableau}}}
%***************************************************************************
\usepackage{tabularx}
\usepackage{longtable}
\usepackage{colortbl}
%Définition des couleurs utilisée*******************************************
\definecolor{rouge}{rgb}{0.9692,0.2,0}
\definecolor{orange}{rgb}{0.9808,0.5885,0.2033}
\definecolor{vert}{rgb}{0.4038,0.9769,0.1923}
\definecolor{blanc}{rgb}{1,1,1}
%***************************************************************************

\makeatletter
\newcommand{\lcol}{\vrule width 0.3mm\hskip\tabcolsep}
\makeatother

\makeatletter
\newcommand{\rcol}{\hskip\tabcolsep\vrule width 0.3mm}
\makeatother

\makeatletter
\newcommand{\col}{\hskip\tabcolsep\vrule width 0.3mm\hskip\tabcolsep}
\makeatother

\begin{document}

\begin{table}
\begin{center}
       \caption{Un tableau avec une colonne problématique}

       \begin{tabular}[!t]{@{\lcol} c | c | >{\centering}m{3cm} @{\rcol} }
        \hlinewd{0,3mm}
        & Normal      & Expérience problèmatique\tabularnewline
        \hlinewd{0,3mm}
        Masse               & 7800g  & \multicolumn{1}{|>{\color{blanc}\columncolor{rouge}}c @{\rcol}}{700g}\tabularnewline
        \hlinewd{0,3mm}
        \end{tabular}
\end{center}
\end{table}

\end{document}


J'ai donc utilisé par exemple :
\makeatletter
\newcommand{\rcol}{\hskip\tabcolsep\vrule width 0.3mm}
\makeatother

pour utiliser @{\rcol} à la place de @{\hskip\tabcolsep\vrule width 0.3mm}.

Est-il possible d'en créer une pour remplacer \color{blanc}\columncolor{rouge} en une macro plus courte? genre \c{b} et \c{r} ou \colB et \colR?

D'avance merci
goems
Déca-utilisateur
 
Messages: 13
Inscription: Mercredi 20 Mai 2009, 10:32
Statut actuel: Post-bac | Ecole d'ingénieur

Re: Largeur de colonne dans un tableau

Messagepar pg » Lundi 24 Août 2009, 11:25

goems a écrit:\makeatletter
\newcommand{\rcol}{\hskip\tabcolsep\vrule width 0.3mm}
\makeatother

\makeatletter et \makeatother sont inutiles ici car le code ne contient pas de @.

Est-il possible d'en créer une pour remplacer \color{blanc}\columncolor{rouge} en une macro plus courte? genre \c{b} et \c{r} ou \colB et \colR?

Le package array permet de définir de nouveaux types de colonnes. Par exemple :

Code: Tout sélectionner
\newcolumntype{a}{>{\color{blanc}\columncolor{rouge}}c}

(Le premier argument de \newcolumntype doit être une lettre et cette lettre ne doit pas être r, l, c, p, m, b ou toute autre lettre déjà prise dans ce contexte.) Ensuite, il suffira d'utiliser "\multicolumn{1}{|a@{\rcol}}{700g}". On peut aussi mettre le @{\rcol} dans la définition si c'est pratique :

Code: Tout sélectionner
\newcolumntype{a}{>{\color{blanc}\columncolor{rouge}}c@{\rcol}}

En tout, cela donnera :
Code: Tout sélectionner
\documentclass[a4paper,12pt]{report}
%Permet d'utiliser les accents dans winedt
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
%Définit la police utilisée
\usepackage{fouriernc}
%Permet de définir les marges des pages
\usepackage[
    paper=a4paper,
    tmargin=2.5cm,
    bmargin=2.5cm,
    lmargin=2.5cm,
    rmargin=2.5cm]{geometry}
\usepackage[frenchb]{babel}
%Permet de faire varier les paramètres des titres
\usepackage{sectsty}
%Permet de souligner
\usepackage[normalem]{ulem}
%Permet d'encadrer
\usepackage{fancybox}
%Permet la gestion des hauts et bas de page
\usepackage{fancyhdr}
%Permet la gestion des figures
\usepackage{graphicx,subfigure}
%******************************
\usepackage{shadow}
\usepackage{subfigure}
%Permet de colorier le texte ou de surligner
\usepackage{color}
%Gestion des colonnes dans les tableaux
\usepackage{multirow}
%Permet de changer les légendes
\usepackage[small,hang]{caption2}
%Pour la gestion des flottants
\usepackage{float}
%Permet l'utilisation de \topcaption
\usepackage{topcapt}
\usepackage{array}
% Pour crer une liste de Symboles
\usepackage{nomencl}                           
%Crée la liste de symboles
%***************************************************************************

%Définit la commande \hlinewd pour les tableaux
%***************************************************************************
\makeatletter
\def\hlinewd#1{%
\noalign{\ifnum0=`}\fi\hrule \@height #1 %
\futurelet\reserved@a\@xhline}
\makeatother
%***************************************************************************

%Définit la commande \vlinewd pour les tableaux
%***************************************************************************
\makeatletter
\def\vlinewd#1{%
\noalign{\ifnum0=`}\fi\vrule \@height #1 %
\futurelet\reserved@a\@xhline}
\makeatother
%***************************************************************************

%Change la légende des figures et des tableaux
%***************************************************************************
\renewcommand{\captionfont}{\normalsize}            %taille de la légende
\renewcommand{\captionlabelfont}{\it \bf \small}    %?
\renewcommand{\captionlabeldelim}{\bf \space : }    %Un espace puis :
\renewcommand\captionlabelsep{\space }              %un espace après le :
\addto\captionsfrench{%                             % renomme les légende (pas nécessaire, mais cela enlève les majuscules
\renewcommand{\figurename}{{\bfseries\normalsize  Figure}}}
\addto\captionsfrench{%
\renewcommand{\tablename}{{\bfseries\normalsize Tableau}}}
%***************************************************************************
\usepackage{tabularx}
\usepackage{longtable}
\usepackage{colortbl}
%Définition des couleurs utilisée*******************************************
\definecolor{rouge}{rgb}{0.9692,0.2,0}
\definecolor{orange}{rgb}{0.9808,0.5885,0.2033}
\definecolor{vert}{rgb}{0.4038,0.9769,0.1923}
\definecolor{blanc}{rgb}{1,1,1}
%***************************************************************************

\newcommand{\lcol}{\vrule width 0.3mm\hskip\tabcolsep}
\newcommand{\rcol}{\hskip\tabcolsep\vrule width 0.3mm}
\newcommand{\col}{\hskip\tabcolsep\vrule width 0.3mm\hskip\tabcolsep}

% nouveau type de colonne :
\newcolumntype{a}{>{\color{blanc}\columncolor{rouge}}c}

\begin{document}

\begin{table}
\begin{center}
       \caption{Un tableau avec une colonne problématique}

       \begin{tabular}[!t]{@{\lcol} c | c | >{\centering}m{3cm} @{\rcol} }
        \hlinewd{0,3mm}
        & Normal      & Expérience problèmatique\tabularnewline
        \hlinewd{0,3mm}
        Masse               & 7800g  & \multicolumn{1}{|a@{\rcol}}{700g}\tabularnewline
        \hlinewd{0,3mm}
        \end{tabular}
\end{center}
\end{table}

\end{document}
pg
Modérateur
 
Messages: 2595
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Largeur de colonne dans un tableau

Messagepar goems » Mercredi 26 Août 2009, 09:40

Encore une fois, merci beaucoup.
goems
Déca-utilisateur
 
Messages: 13
Inscription: Mercredi 20 Mai 2009, 10:32
Statut actuel: Post-bac | Ecole d'ingénieur


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Google [Bot], Grapeshot [Crawler] et 16 invités