Tableaux moins rigoureux

Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex.
[participation réservée aux utilisateurs inscrits]
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.
petitours
Utilisateur confirmé
Utilisateur confirmé
Messages : 33
Inscription : samedi 03 décembre 2022, 18:11
Statut actuel : Enseignant

Tableaux moins rigoureux

Message non lu par petitours »

Bonjour

Je m'arrache les cheveux à faire des tableaux avec autre chose qu'un contenu irréaliste où il n'y aurait qu'une ligne par cellule avec une largeur parfaite.

Existe t-il aujourd’hui mieux que le package array pour ne pas avoir à choisir entre sa santé et par exemple un saut de ligne dans une cellule ou une largeur de cellule contrôlée ?

Typiquement j'en suis a 2 jours de perdus (car toujours échec) pour faire un tableau qui ressemblerait à ça
tableau.jpg
tableau.jpg (15.92 Kio) Consulté 9242 fois
Merci
marco56
Utilisateur chevronné
Utilisateur chevronné
Messages : 1143
Inscription : jeudi 25 novembre 2010, 22:10

Re: Tableaux moins rigoureux

Message non lu par marco56 »

Un ecm ?
On peut penser à des boites (mbox ?).
petitours
Utilisateur confirmé
Utilisateur confirmé
Messages : 33
Inscription : samedi 03 décembre 2022, 18:11
Statut actuel : Enseignant

Re: Tableaux moins rigoureux

Message non lu par petitours »

Le moins pire que j'ai réussi à faire (et tant mieux c'est en utilisant le moins possible de package) c'est ca

Code : Tout sélectionner

\documentclass{article}
\usepackage{array}
\usepackage[table]{xcolor}   % pour pouvoir définir des couleurs plusu complexes

\begin{document}
	toto va (bien)
\begin{center}
	\renewcommand{\arraystretch}{1.6} % pour haugmenter la hauteur des lignes du tableau
	\begin{tabular}{| m{.3\textwidth} | m{.3\textwidth} | m{.3\textwidth} |}
		\hline  	
		\rowcolor[gray]{.9}\centering \textbf{A} & \centering \textbf{Bébé va bien} & \centering \textbf{C}\par kg \tabularnewline
		\hline
		 \centering \textbf{Machin de la mort qui tue} & Balbla super intéressant qui va tout changer & Foo\par Bar \tabularnewline 
		\hline  
		 \centering \textbf{Bidule} & Foo\par Bar & Balbla super intéressant qui va tout changer \tabularnewline 
		 \hline  
		 \centering \textbf{Bidule} & Foo qui est super long et tout et tout\par Bar qui est aussi super mega long & Balbla court \tabularnewline 
		\hline
	\end{tabular}
\end{center}
\end{document}
Le \par est ma découverte de l'instant pour pouvoir forcer un saut de ligne, j'ai l'impression de vivre un miracle en voyant le saut de ligne arriver.

Ce serait presque OK pour moi (bien que fort lourd à lire), il ne manquerait que
  • * comment ajouter des caractères facilement (exemple mettre entre () le kg dans la ligne de titre
    * comment ajouter un bloc itemize à la place du Foo \par Bar
anonyme74170
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 111
Inscription : jeudi 21 avril 2016, 11:34

Re: Tableaux moins rigoureux

Message non lu par anonyme74170 »

Bonjour,

ce billet reprend les package gérant les tableaux, indique les possiblités de ces packages. Ce pourrait être vous être utile :
https://texnique.fr/osqa/questions/3316 ... eur-propos
petitours
Utilisateur confirmé
Utilisateur confirmé
Messages : 33
Inscription : samedi 03 décembre 2022, 18:11
Statut actuel : Enseignant

Re: Tableaux moins rigoureux

Message non lu par petitours »

Très intéressant, merci.
cpierquet
Utilisateur confirmé
Utilisateur confirmé
Messages : 36
Inscription : dimanche 29 novembre 2020, 21:29
Statut actuel : Enseignant

Re: Tableaux moins rigoureux

Message non lu par cpierquet »

Il existe le package tabularray pour les tableaux un peu "exotiques" :-)

Code : Tout sélectionner

\documentclass[12pt,a4paper,french]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tabularray}
\begin{document}

\begin{tblr}
   {hlines,vlines,colspec={Q[2cm,c,m]Q[2cm,c,m]Q[2cm,l,m]},row{1}={font=\bfseries},stretch=2,cell{1}{3}={c},cell{2-4}{2}={l}}
   A&B&C \\
   Truc & {tutu \\ titi} & {>Toc \\ >Tic \\ >Tuc} \\
   {Machin de la mort qui tue} & toto & {>foo \\ >bar} \\
   Bidule & {Blabla super intéressant qui va tout changer} & {>Toc \\ >Tic \\ >Tuc} \\
\end{tblr}

\end{document}
sx-2023-03-27-211423-Compilation_de_fichiers_LaTeX_en_ligne_-_Personnel.png
petitours
Utilisateur confirmé
Utilisateur confirmé
Messages : 33
Inscription : samedi 03 décembre 2022, 18:11
Statut actuel : Enseignant

Re: Tableaux moins rigoureux

Message non lu par petitours »

ouha comme il a l'air bien ce tabularray, ça fait un paquet de blabla en moins a mettre dans les lignes, merci
Arathorn
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 297
Inscription : mercredi 24 avril 2013, 19:47
Statut actuel : Enseignant

Re: Tableaux moins rigoureux

Message non lu par Arathorn »

Avec tabularray, j'ai réussi à faire ceci.
Je ne maîtrise pas toutes les options.

Code : Tout sélectionner

\documentclass{article}
\usepackage{array,tabularray}
\UseTblrLibrary{varwidth}
\usepackage[table]{xcolor}   % pour pouvoir définir des couleurs plusu complexes
\usepackage[showframe]{geometry}
\usepackage[french]{babel}
\begin{document}
toto va (bien)
\begin{center}
\renewcommand{\arraystretch}{1.6} % pour haugmenter la hauteur des lignes du tableau
\begin{tabular}{| m{.3\textwidth} | m{.3\textwidth} | m{.3\textwidth} |}
\hline  	
\rowcolor[gray]{.9}\centering \textbf{A} & \centering \textbf{Bébé va bien} & \centering \textbf{C}\par kg \tabularnewline
\hline
\centering \textbf{Machin de la mort qui tue} & Balbla super intéressant qui va tout changer & Foo\par Bar \tabularnewline 
\hline  
\centering \textbf{Bidule} & Foo\par Bar & Balbla super intéressant qui va tout changer \tabularnewline 
\hline  
\centering \textbf{Bidule} & Foo qui est super long et tout et tout\par Bar qui est aussi super mega long & Balbla court \tabularnewline 
\hline
\end{tabular}
\end{center}


\begin{center}
\begin{tblr}{%
width = \linewidth, %
,stretch = 1.6%
,colspec = { X[1,c] X[1,l] X[1,l] }
,rowspec = { Q[m]  Q[m] Q[m]  Q[m]}
,hlines,%
,vlines%
,vline{1,4} = {1}{0pt}%
,row{1}	={gray!25}%
,cell{1}{1-3} = {cmd = \bfseries}%
,cell{1-4}{1}= {cmd = \bfseries}%
,measure=vbox%
 }
	 	
A & \SetCell[r=1,c=1]{c} Bébé va bien & \SetCell[r=1,c=1]{c} {C\\ \normalfont (kg)} \\
Machin de la mort qui tue & Balbla super intéressant qui va tout changer & {Foo\\ Bar} \\ 
Bidule & \begin{itemize}
	\item Foo \item Bar
\end{itemize} & Balbla super intéressant qui va tout changer \\
Bidule  & {Foo qui est super long et tout et tout\\ Bar qui est aussi super mega long} & Balbla court \\
\end{tblr}	
\end{center}

\end{document}

marco56
Utilisateur chevronné
Utilisateur chevronné
Messages : 1143
Inscription : jeudi 25 novembre 2010, 22:10

Re: Tableaux moins rigoureux

Message non lu par marco56 »

Cool, j'allais m'y coller mais je vois qu'il y a eu des réponses.
Edit, en restant sur la même base mais avec des parbox :

Code : Tout sélectionner

\documentclass{article}
\usepackage[table]{xcolor}   % pour pouvoir définir des couleurs plusu complexes

\begin{document}
toto va (bien)
\begin{center}
\begin{tabular}{| m{.3\textwidth} | m{.3\textwidth} | m{.3\textwidth} |}
\hline  	
\rowcolor[gray]{.9}\centering \textbf{A} & \centering \textbf{Bébé va bien} &  \parbox{3cm}{\centering \textbf{C} \\ kg} \tabularnewline
\hline
\centering \textbf{Machin de la mort qui tue} & Balbla super intéressant qui va tout changer & Foo\par Bar \tabularnewline 
\hline  
\centering \textbf{Bidule} & \parbox{2cm}{Foo \\ Bar} & \parbox{2cm}{Balbla super intéressant qui va tout changer} \tabularnewline 
\hline  
\centering \textbf{Bidule} & \parbox{3cm}{Foo qui est super long et tout et tout Bar qui est aussi super mega long} & Balbla court \tabularnewline 
\hline
\end{tabular}
\end{center}
\end{document}
F. Pantigny
Utilisateur confirmé
Utilisateur confirmé
Messages : 23
Inscription : dimanche 07 juillet 2019, 14:37

Re: Tableaux moins rigoureux

Message non lu par F. Pantigny »

Avec NiceTabular of nicematrix.

Code : Tout sélectionner

\documentclass{article}
\usepackage{nicematrix}

\begin{document}
        toto va (bien)
\begin{center}
        \renewcommand{\arraystretch}{1.6} % pour augmenter la hauteur des lignes du tableau
        \begin{NiceTabular}{>{\bfseries}m[c]{.3\textwidth}m{.3\textwidth}m{.3\textwidth}}[hvlines]
                \RowStyle[rowcolor=[gray]{0.9}]{\bfseries\centering}
                  A &  Bébé va bien &  C\par kg \\
                  Machin de la mort qui tue & Balbla super intéressant qui va tout changer & Foo\par Bar \\
                  Bidule & Foo\par Bar & Balbla super intéressant qui va tout changer \\
                  Bidule & Foo qui est super long et tout et tout\par Bar qui est aussi super mega long & Balbla court \\
        \end{NiceTabular}
\end{center}
\end{document}
L'un des avantages de nicematrix (par rapport, bien sûr à l'excellent tabularray) est que {NiceTabular} étend {tabular} (et donc que, dans un premier temps, en changeant le nom de l'environnement, on a un environnement correct que l'on peut compiler).