[Résolu] Centrer avec tabularx

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.

[Résolu] Centrer avec tabularx

Messagepar nzdqrc » Dimanche 22 Octobre 2017, 08:05

Bonjour à tous,
Tout est dans le titre. Voici un exemple.

Code: Tout sélectionner
\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[francais]{babel}
\usepackage[left=1cm,right=1cm,top=1cm,bottom=1cm]{geometry}
\usepackage{tabularx}
\parindent=0cm

\begin{document}
\begin{tabularx}{\textwidth}{|X|X|X|}
\hline
un&deux&trois\\
\hline
blabla&blabla&blabla\\
\hline
\end{tabularx}
\end{document}

Je voudrais que ce qui est dans chaque case soit centré et que mon tableau occupe toujours toute la largeur de ma page. Cela ne marche pas si je remplace les "X" par "c". La largeur de mon tableau s'ajuste alors à mon texte. Si quelqu'un a la solution...
Merci !
Dernière édition par nzdqrc le Dimanche 22 Octobre 2017, 14:17, édité 1 fois.
nzdqrc
Déca-utilisateur
 
Messages: 27
Inscription: Lundi 11 Avril 2016, 07:43
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Centrer avec tabularx

Messagepar jcs » Dimanche 22 Octobre 2017, 10:01

Bonjour

\begin{tabularx}{\linewidth}{|*{2}{>{\centering \arraybackslash}X|}}

cordialement
jcs
Téra-utilisateur
 
Messages: 1351
Inscription: Lundi 24 Novembre 2008, 22:17
Statut actuel: Actif et salarié | Enseignant

Re: Centrer avec tabularx

Messagepar gigiair » Dimanche 22 Octobre 2017, 10:30

Je ne sais pas si le problème est posé complètement, mais s'il ne s'agit que de composer un tableau de trois colonnes de largeur données, l'environnement tabularx ne me paraît pas trop pertinent.
Avec le package array, en créant un type de colonne P dans un environnement tabular
Code: Tout sélectionner
\documentclass[a4paper,12pt]{article}
 \usepackage[T1]{fontenc}
 \usepackage[latin1]{inputenc}
 \usepackage[francais]{babel}
 \usepackage[left=1cm,right=1cm,top=1cm,bottom=1cm]{geometry}

 \usepackage{array}

 \parindent=0cm

 \begin{document}
 \newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}} 
 \begin{tabular}{|*{3}{P{.3333\textwidth}|}}
 \hline
 un&deux&trois\\
 \hline
 blabla&blabla&blabla\\
 \hline
 \end{tabular}

 \end{document}


Avec le package calc, on peut remplacer .3333\textwidth par \textwidth/\real{3} , mais je ne suis pas sûr que l'intérêt de le faire.
JJR.
LaTeXien migrateur.
gigiair
Exa-utilisateur
 
Messages: 2299
Inscription: Samedi 08 Juillet 2006, 19:56
Localisation: Saint Bonnet Elvert
Statut actuel: Actif et salarié

Re: Centrer avec tabularx

Messagepar balf » Dimanche 22 Octobre 2017, 11:00

gigiair a écrit:Je ne sais pas si le problème est posé complètement, mais s'il ne s'agit que de composer un tableau de trois colonnes de largeur données, l'environnement tabularx ne me paraît pas trop pertinent.
Avec le package array, en créant un type de colonne P dans un environnement tabular
Code: Tout sélectionner
  ...............
 \newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}} 
 \begin{tabular}{|*{3}{P{.333\textwidth}|}}
 \hline
 un&deux&trois\\
 \hline
 blabla&blabla&blabla\\
 \hline
 \end{tabular}

Oui, mais avec cette solution, le tableau va déborder dans la marge : très exactement, on récupère 1/1000 \textwidth = 0.19 mm pour les séparations inter-colonnes et les loignes verticales, qui font en tout 6 × 6pt+4 × 0,4pt, soit environ 13,2 mm.

On peut bien sûr programmer les calculs pour LaTeX, mais à quoi bon, puisque tabularx le fait très bien ?

B. A.
balf
Zetta-utilisateur
 
Messages: 3664
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: Centrer avec tabularx

Messagepar nzdqrc » Dimanche 22 Octobre 2017, 11:13

jcs a écrit:Bonjour

\begin{tabularx}{\linewidth}{|*{2}{>{\centering \arraybackslash}X|}}

cordialement


Merci, ça a l'air de coller, mais juste la première colonne, j'ai sûrement mal compris la solution. Pouvez-vous me corriger ?
Merci.
Code: Tout sélectionner
\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[francais]{babel}
\usepackage[left=1cm,right=1cm,top=1cm,bottom=1cm]{geometry}
\usepackage{tabularx}
\parindent=0cm

\begin{document}
\begin{tabularx}{\linewidth}{|*{2}{>{\centering \arraybackslash}X|X|X|}}
\hline
un&deux&trois\\
\hline
blabla&blabla&blabla\\
\hline
\end{tabularx}\par
\end{document}
nzdqrc
Déca-utilisateur
 
Messages: 27
Inscription: Lundi 11 Avril 2016, 07:43
Statut actuel: Actif et salarié | Enseignant

Re: Centrer avec tabularx

Messagepar balf » Dimanche 22 Octobre 2017, 12:20

Vouw avez défini un environnement tabularx avec 6 colonnes, pas 3. Voici le bon préambule pour la table :
Code: Tout sélectionner
 \begin{tabularx}{\linewidth}{|*{3}{>{\centering \arraybackslash}X|}}
Ça a l'air de coller parce que vous n'avez mis que 3 esperluètes. Mettez-en 6 et vous verrez.

Au passage, deux observations : l'option francais pour babel est obsolète et devrait être remplacée par french. De plus, les options de langue devraient figurer comme option de la clase de document, afin d'être sûr que toutes les extensions sensibles à la langue du document soient informées.

D'autre part, vous deviez indiquer utf8 comme codage d'entrée : c'est le seul encodage universel, avec ascii, et tous les éditeurs modernes comprennent utf8.

Pour finir, puisque toutes vos marges sont égales, vous pouvez raccourcir l'option pour geometry en
Code: Tout sélectionner
\usepackage[margin=1cm]{geometry

B. A.
balf
Zetta-utilisateur
 
Messages: 3664
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: Centrer avec tabularx

Messagepar nzdqrc » Dimanche 22 Octobre 2017, 13:27

balf a écrit:Vouw avez défini un environnement tabularx avec 6 colonnes, pas 3. Voici le bon préambule pour la table :
Code: Tout sélectionner
 \begin{tabularx}{\linewidth}{|*{3}{>{\centering \arraybackslash}X|}}
Ça a l'air de coller parce que vous n'avez mis que 3 esperluètes. Mettez-en 6 et vous verrez.

C'est résolu, merci beaucoup !
Encore deux choses s'il vous plaît : par curiosité, quelle est la différence entre "\linewidth" et "\textwidth" ?

balf a écrit:Au passage, deux observations : l'option francais pour babel est obsolète et devrait être remplacée par french. De plus, les options de langue devraient figurer comme option de la clase de document, afin d'être sûr que toutes les extensions sensibles à la langue du document soient informées.

D'autre part, vous deviez indiquer utf8 comme codage d'entrée : c'est le seul encodage universel, avec ascii, et tous les éditeurs modernes comprennent utf8.

Pour finir, puisque toutes vos marges sont égales, vous pouvez raccourcir l'option pour geometry en
Code: Tout sélectionner
\usepackage[margin=1cm]{geometry

B. A.


Je n'ai pas tout compris, je suis loin d'être expert en LaTeX. Pourriez vous m'écrire le bon préambule que je puisse faire copier-coller ?
Je vous remercie !
nzdqrc
Déca-utilisateur
 
Messages: 27
Inscription: Lundi 11 Avril 2016, 07:43
Statut actuel: Actif et salarié | Enseignant

Re: Centrer avec tabularx

Messagepar balf » Dimanche 22 Octobre 2017, 13:34

Voici un code complet :

Code: Tout sélectionner
    \documentclass[a4paper,12pt, french]{article}
    \usepackage[T1]{fontenc}
    \usepackage[utf8]{inputenc}
    \usepackage{babel}
    \usepackage[margin=1cm]{geometry}
    \usepackage{tabularx}
    \parindent=0cm

    \begin{document}

    \begin{tabularx}{\linewidth}{|*{3}{>{\centering\arraybackslash}X|}}
    \hline
    un&deux&trois\\
    \hline
    blabla&blabla&blabla\\
    \hline
    \end{tabularx}\par

     \end{document}

B. A.
balf
Zetta-utilisateur
 
Messages: 3664
Inscription: Mercredi 02 Janvier 2008, 23:18
Statut actuel: Actif et salarié | Maître de conférence

Re: Centrer avec tabularx

Messagepar nzdqrc » Dimanche 22 Octobre 2017, 13:39

J'ai trouvé ma réponse.
Je vous remercie tous de m'avoir consacré du temps, en particulier balf.
Bonne journée.
nzdqrc
Déca-utilisateur
 
Messages: 27
Inscription: Lundi 11 Avril 2016, 07:43
Statut actuel: Actif et salarié | Enseignant

Re: Centrer avec tabularx

Messagepar nzdqrc » Dimanche 22 Octobre 2017, 14:12

Message à supprimer, une erreur, je ne trouve pas comment on fait, désolé.
Bonne journée et merci encore à tous !
nzdqrc
Déca-utilisateur
 
Messages: 27
Inscription: Lundi 11 Avril 2016, 07:43
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 19 invités