\begin{table*} [h] % interdit?

Bonjour,
Je souhaiterais dans un mulcicols{2} positionner un tableau sur les
deux colonnes, mais un endroit prcis (i.e. non “flottant”).
Normalement c’est le job de {table*}, mais il semble incompatible
avec le H, le tableau disparat.
Il semble que cela dpend du compilateur.
Si quelqu’un un truc robuste ?
Merci et bonne journe,
Lionel

%------------------------------------------------------------- DEBUT ECM
\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{booktabs}
\usepackage{float} % float H

\begin{document}

\begin{multicols}{2}
\lipsum[1]
\begin{table*} %[H] %<— ICI !
\centering
\begin{tabular}{ccc}
\toprule
\textbf{Col 1} & \textbf{Col 2} & \textbf{Col 3}\
\midrule
a,a & e,g & Plus \
a,b & e,c & Moins\
c,d & c,e & Plus \
\bottomrule
\end{tabular}
\end{table*}
\lipsum[2-4]
\end{multicols}

\lipsum[1-3]

\end{document}
%------------------------------------------------------------- FIN ECM

Bonjour,

Il n’est pas clair si vous souhaitez un tableau avec une légende ou sans légende. Votre exemple COMPLET minimal (ECM) semble indiquer que vous souhaitez un tableau sans légende.

Dans ce cas : supprimez \centering et remplacez l’environnement table* par center (si vous ne voulez pas de flottant, n’employez pas d’environnement de flottant, tout simplement…).

Ce qui donne :

%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{booktabs}

\begin{document}

\begin{multicols}{2}
\lipsum[1]
\begin{center}
\begin{tabular}{ccc}
\toprule
\textbf{Col 1} & \textbf{Col 2} & \textbf{Col 3}\
\midrule
a,a & e,g & Plus \
a,b & e,c & Moins\
c,d & c,e & Plus \
\bottomrule
\end{tabular}
\end{center}
\lipsum[2-4]
\end{multicols}

\lipsum[1-3]

\end{document}
%%%%%%%%%%%%%%%%%%%%

Dans le cas où vous souhaitez une légende, utilisez en plus la commande \captionof (elle provient du package caption) :

%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{booktabs}
\usepackage{caption}

\begin{document}

\begin{multicols}{2}
\lipsum[1]
\begin{center}
\begin{tabular}{ccc}
\toprule
\textbf{Col 1} & \textbf{Col 2} & \textbf{Col 3}\
\midrule
a,a & e,g & Plus \
a,b & e,c & Moins\
c,d & c,e & Plus \
\bottomrule
\end{tabular}
\captionof{table}{Ceci est un tableau !}
\end{center}
\lipsum[2-4]
\end{multicols}

\lipsum[1-3]

\end{document}
%%%%%%%%%%%%%%%%%%%%

Remarque : je ne vois pas le rapport avec le compilateur…

Le 3 juin 2022 à 09:24, xyz@xyz.tld a écrit :

Bonjour,
Je souhaiterais dans un mulcicols{2} positionner un tableau sur les deux colonnes, mais à un endroit précis (i.e. non “flottant”).
Normalement c’est le job de {table*}, mais il semble incompatible avec le H, le tableau disparaît.
Il semble que cela dépend du compilateur.
Si quelqu’un à un truc robuste ?
Merci et bonne journée,
Lionel

%------------------------------------------------------------- DEBUT ECM
\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{booktabs}
\usepackage{float} % float H

\begin{document}

\begin{multicols}{2}
\lipsum[1]
\begin{table*} %[H] %<— ICI !
\centering
\begin{tabular}{ccc}
\toprule
\textbf{Col 1} & \textbf{Col 2} & \textbf{Col 3}\
\midrule
a,a & e,g & Plus \
a,b & e,c & Moins\
c,d & c,e & Plus \
\bottomrule
\end{tabular}
\end{table*}
\lipsum[2-4]
\end{multicols}

\lipsum[1-3]

\end{document}
%------------------------------------------------------------- FIN ECM

Rebonjour,
Merci pour la rponse,
La lgende est peu importante dans mon cas.
Il faudrait surtout que le tableau aille sur les 2 colonnes l’endroit voulu.
La solution qui consiste enlever le " table* " fait une
superposition du texte et du tableau, en tout cas c’est ce que
j’obtiens avec a :

%------------------------------------------------------------- DEBUT ECM
\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{booktabs}
\usepackage{float} % float H

\begin{document}

\begin{multicols}{2}
\lipsum[1]
%\begin{table*} %[H] %<— ICI !
{\centering
\begin{tabular}{cccccccc}
\toprule
\textbf{Col A} & \textbf{Col B} & \textbf{Col C} & \textbf{Col
D} & \textbf{Col E} & \textbf{Col CF} & \textbf{Col G} & \textbf{Col H} \
\midrule
a1 & b1 & c1 & d1 & e1 & f1 & g1 & h1 \
a2 & b2 & c2 & d2 & e2 & f2 & g2 & h2 \
a3 & b3 & c3 & d3 & e3 & f3 & g3 & h3 \
a4 & b4 & c4 & d4 & e4 & f4 & g4 & h4 \
\bottomrule
\end{tabular}
}
%\end{table*}
\lipsum[2-4]
\end{multicols}

\lipsum[1-2]
\end{document}
%------------------------------------------------------------- FIN ECM

En bref je voudrais en mode deux colonnes un tableau non flottant sur
toute la largeur de la page.

Dsol si mon message est peu clair.
Bonne journe,
Lionel

@ 10:28 03/06/2022, >>>quark67<<< Wrote ------------------------:wq!

Content-Transfer-Encoding: 8bit

Bonjour,

Il n’est pas clair si vous souhaitez un tableau avec une lgende ou
sans lgende. Votre exemple COMPLET minimal (ECM) semble indiquer
que vous souhaitez un tableau sans lgende.

Dans ce cas : supprimez \centering et remplacez l’environnement
table* par center (si vous ne voulez pas de flottant, n’employez pas
d’environnement de flottant, tout simplement).

Ce qui donne :

%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{booktabs}

\begin{document}

\begin{multicols}{2}
\lipsum[1]
\begin{center}
\begin{tabular}{ccc}
\toprule
\textbf{Col 1} & \textbf{Col 2} & \textbf{Col 3}\
\midrule
a,a & e,g & Plus \
a,b & e,c & Moins\
c,d & c,e & Plus \
\bottomrule
\end{tabular}
\end{center}
\lipsum[2-4]
\end{multicols}

\lipsum[1-3]

\end{document}
%%%%%%%%%%%%%%%%%%%%

Dans le cas o vous souhaitez une lgende, utilisez en plus la
commande \captionof (elle provient du package caption) :

%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{booktabs}
\usepackage{caption}

\begin{document}

\begin{multicols}{2}
\lipsum[1]
\begin{center}
\begin{tabular}{ccc}
\toprule
\textbf{Col 1} & \textbf{Col 2} & \textbf{Col 3}\
\midrule
a,a & e,g & Plus \
a,b & e,c & Moins\
c,d & c,e & Plus \
\bottomrule
\end{tabular}
\captionof{table}{Ceci est un tableau !}
\end{center}
\lipsum[2-4]
\end{multicols}

\lipsum[1-3]

\end{document}
%%%%%%%%%%%%%%%%%%%%

Remarque : je ne vois pas le rapport avec le compilateur…

Le 3 juin 2022 09:24, xyz@xyz.tld a crit :

Bonjour,
Je souhaiterais dans un mulcicols{2} positionner un tableau sur
les deux colonnes, mais un endroit prcis (i.e. non “flottant”).
Normalement c’est le job de {table*}, mais il semble incompatible
avec le H, le tableau disparat.
Il semble que cela dpend du compilateur.
Si quelqu’un un truc robuste ?
Merci et bonne journe,
Lionel

%------------------------------------------------------------- DEBUT ECM
\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{booktabs}
\usepackage{float} % float H

\begin{document}

\begin{multicols}{2}
\lipsum[1]
\begin{table*} %[H] %<— ICI !
\centering
\begin{tabular}{ccc}
\toprule
\textbf{Col 1} & \textbf{Col 2} & \textbf{Col 3}\
\midrule
a,a & e,g & Plus \
a,b & e,c & Moins\
c,d & c,e & Plus \
\bottomrule
\end{tabular}
\end{table*}
\lipsum[2-4]
\end{multicols}

\lipsum[1-3]

\end{document}
%------------------------------------------------------------- FIN ECM

Le 03/06/2022 à 12:49, xyz@xyz.tld a écrit :

Rebonjour,
Merci pour la réponse,
La légende est peu importante dans mon cas.
Il faudrait surtout que le tableau aille sur les 2 colonnes à l’endroit
voulu.

Et avec ça ?

\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{booktabs}
\usepackage{float} % float H

\begin{document}

\begin{multicols}{2}
\lipsum[1]
% \begin{table*} %[H] %<— ICI !
\end{multicols}
{\centering
\begin{tabular}{cccccccc}
\toprule
\textbf{Col A} & \textbf{Col B} & \textbf{Col C} & \textbf{Col D}
& \textbf{Col E} & \textbf{Col CF} & \textbf{Col G} & \textbf{Col H} \
\midrule
a1 & b1 & c1 & d1 & e1 & f1 & g1 & h1 \
a2 & b2 & c2 & d2 & e2 & f2 & g2 & h2 \
a3 & b3 & c3 & d3 & e3 & f3 & g3 & h3 \
a4 & b4 & c4 & d4 & e4 & f4 & g4 & h4 \
\bottomrule
\end{tabular}
}
% \end{table*}
\begin{multicols}{2}
\lipsum[2-4]
\end{multicols}

\lipsum[1-2]
\end{document}

jqça


Yvon Henel

Cette demande semble typographiquement complexe à gérer. Imaginez que vous soyez quasiment en bas de la première colonne et que vous exigez que le tableau soit affiché à cet endroit impérativement. Évidemment, il n’y a plus assez de place verticalement. Alors on fait quoi ? On laisse la seconde colonne vide et on commence le tableau immédiatement en haut de la seconde page ?

Voir la remarque donnée par l’auteur de la réponse https://tex.stackexchange.com/a/89463/132405 https://tex.stackexchange.com/a/89463/132405 sur TeX StackExchange : For table* and figure*, the only available options are t (top of next page) or p (end of document). b and h have been disabled on purpose, there is probably a strong typographical reason behind it.

La réponse datant de 2013, peut-être qu’entre temps un package répondant à votre problème est apparu (enfin, répondant au problème si la position demandée pour l’insertion du tableau est assez haut dans la page pour que tout le tableau tienne sur la même page).

Je vois qu’entre temps Yvon propose une solution qui, si elle n’est pas celle espérée (j’imagine que vous souhaitiez que le texte de la première colonne se poursuive sous le tableau), est probablement la meilleure solution si l’on ne veut pas de tableau flottant.

Le 3 juin 2022 à 12:49, xyz@xyz.tld a écrit :

Rebonjour,
Merci pour la réponse,
La légende est peu importante dans mon cas.
Il faudrait surtout que le tableau aille sur les 2 colonnes à l’endroit voulu.
La solution qui consiste à enlever le " table* " fait une superposition du texte et du tableau, en tout cas c’est ce que j’obtiens avec ça :

%------------------------------------------------------------- DEBUT ECM
\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{booktabs}
\usepackage{float} % float H

\begin{document}

\begin{multicols}{2}
\lipsum[1]
%\begin{table*} %[H] %<— ICI !
{\centering
\begin{tabular}{cccccccc}
\toprule
\textbf{Col A} & \textbf{Col B} & \textbf{Col C} & \textbf{Col D} & \textbf{Col E} & \textbf{Col CF} & \textbf{Col G} & \textbf{Col H} \
\midrule
a1 & b1 & c1 & d1 & e1 & f1 & g1 & h1 \
a2 & b2 & c2 & d2 & e2 & f2 & g2 & h2 \
a3 & b3 & c3 & d3 & e3 & f3 & g3 & h3 \
a4 & b4 & c4 & d4 & e4 & f4 & g4 & h4 \
\bottomrule
\end{tabular}
}
%\end{table*}
\lipsum[2-4]
\end{multicols}

\lipsum[1-2]
\end{document}
%------------------------------------------------------------- FIN ECM

En bref je voudrais en mode deux colonnes un tableau non flottant sur toute la largeur de la page.

Désolé si mon message est peu clair.
Bonne journée,
Lionel

@ 10:28 03/06/2022, >>>quark67<<< Wrote ------------------------:wq!

Content-Transfer-Encoding: 8bit

Bonjour,

Il n’est pas clair si vous souhaitez un tableau avec une légende ou sans légende. Votre exemple COMPLET minimal (ECM) semble indiquer que vous souhaitez un tableau sans légende.

Dans ce cas : supprimez \centering et remplacez l’environnement table* par center (si vous ne voulez pas de flottant, n’employez pas d’environnement de flottant, tout simplement
).

Ce qui donne :

%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{booktabs}

\begin{document}

\begin{multicols}{2}
\lipsum[1]
\begin{center}
\begin{tabular}{ccc}
\toprule
\textbf{Col 1} & \textbf{Col 2} & \textbf{Col 3}\
\midrule
a,a & e,g & Plus \
a,b & e,c & Moins\
c,d & c,e & Plus \
\bottomrule
\end{tabular}
\end{center}
\lipsum[2-4]
\end{multicols}

\lipsum[1-3]

\end{document}
%%%%%%%%%%%%%%%%%%%%

Dans le cas où vous souhaitez une légende, utilisez en plus la commande \captionof (elle provient du package caption) :

%%%%%%%%%%%%%%%%%%%%
\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{booktabs}
\usepackage{caption}

\begin{document}

\begin{multicols}{2}
\lipsum[1]
\begin{center}
\begin{tabular}{ccc}
\toprule
\textbf{Col 1} & \textbf{Col 2} & \textbf{Col 3}\
\midrule
a,a & e,g & Plus \
a,b & e,c & Moins\
c,d & c,e & Plus \
\bottomrule
\end{tabular}
\captionof{table}{Ceci est un tableau !}
\end{center}
\lipsum[2-4]
\end{multicols}

\lipsum[1-3]

\end{document}
%%%%%%%%%%%%%%%%%%%%

Remarque : je ne vois pas le rapport avec le compilateur…

Le 3 juin 2022 à 09:24, xyz@xyz.tld a écrit :

Bonjour,
Je souhaiterais dans un mulcicols{2} positionner un tableau sur les deux colonnes, mais à un endroit précis (i.e. non “flottant”).
Normalement c’est le job de {table*}, mais il semble incompatible avec le H, le tableau disparaît.
Il semble que cela dépend du compilateur.
Si quelqu’un à un truc robuste ?
Merci et bonne journée,
Lionel

%------------------------------------------------------------- DEBUT ECM
\documentclass{article}
\usepackage{lipsum}
\usepackage{multicol}
\usepackage{booktabs}
\usepackage{float} % float H

\begin{document}

\begin{multicols}{2}
\lipsum[1]
\begin{table*} %[H] %<— ICI !
\centering
\begin{tabular}{ccc}
\toprule
\textbf{Col 1} & \textbf{Col 2} & \textbf{Col 3}\
\midrule
a,a & e,g & Plus \
a,b & e,c & Moins\
c,d & c,e & Plus \
\bottomrule
\end{tabular}
\end{table*}
\lipsum[2-4]
\end{multicols}

\lipsum[1-3]

\end{document}
%------------------------------------------------------------- FIN ECM

Le 03/06/2022 à 13:51, quark67 a écrit :

Cette demande semble typographiquement complexe à gérer. Imaginez que
vous soyez quasiment en bas de la première colonne et que vous exigez
que le tableau soit affiché à cet endroit impérativement. Évidemment, il
n’y a plus assez de place verticalement. Alors on fait quoi ? On laisse
la seconde colonne vide et on commence le tableau immédiatement en haut
de la seconde page ?

Bonne question ! :slight_smile:

Voir la remarque donnée par l’auteur de la réponse
https://tex.stackexchange.com/a/89463/132405
https://tex.stackexchange.com/a/89463/132405 sur TeX StackExchange :
/For table* and figure*, the only available options are t (top of next
page) or p (end of document). b and h have been disabled on purpose,
there is probably a strong typographical reason behind it./

La réponse datant de 2013, peut-être qu’entre temps un package répondant
à votre problème est apparu (enfin, répondant au problème si la position
demandée pour l’insertion du tableau est assez haut dans la page pour
que tout le tableau tienne sur la même page).

Le package ‘dblcfloatfix’ améliore un peu les ‘table*’ et ‘figure*’ en
autorisant le placement ‘[tbp]’ (au lieu de ‘[tp]’). Il date du 31
décembre 2012. Je ne l’ai jamais essayé et je ne peux donc pas dire s’il
marche bien. Ceci étant, il ne répond pas à la demande formulée.

Cordialement,

 Paul Gaborit