0

I have 3 tblr sub-tables (inside a table environment), and I would like to put the first 2 tblr sub-tables one beside the other, and the third tblr sub-table under the first two ones. How can I do it? (please see the code below).

enter image description here

\documentclass[twocolumn,fleqn,10pt,dvipsnames,table]{wlscirep_modified}

\usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{multirow, booktabs, tabularx} \usepackage{makecell} \usepackage{xurl} \usepackage{caption} \usepackage{subcaption} \usepackage{tabularx} \usepackage{xfp} \usepackage{color} \usepackage{tabularray} \usepackage{tikz} \usepackage{textcomp,gensymb}

\usepackage{tabulary,longtable,afterpage} \makeatletter \newcommand{\aftertwo}[1]{\afterpage{\if@firstcolumn #1 \else\afterpage{#1}\fi}} \makeatother

\begin{document}

% ------------------- % Two columns \aftertwo{ \onecolumn % \begingroup \setlist[itemize]{label={--},nosep, leftmargin=, before=\vspace{-\baselineskip}} \setlength{\extrarowheight}{1.5pt} \begin{small} % -------------------

\begin{table}[ht] \centering \caption{A general description about subcaption \textbf{(a)}, subcaption \textbf{(b)} and subcaption \textbf{(c)}... } \subcaption{Some text for this subcaption ...} \begin{tblr} { width = \textwidth, colspec = {lllllllll}, hlines, row{1} = {font=\bfseries}, hline{1,Z}=0.8pt, hline{2}=0.4pt, hline{1-12}=solid, rowhead=1 } Feature & A & B & C \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ \end{tblr} \bigskip \subcaption{Some text here ...} \begin{tblr} { width = \textwidth, colspec = {lllllllll}, hlines, row{1} = {font=\bfseries}, hline{1,Z}=0.8pt, hline{2}=0.4pt, hline{1-12}=solid, rowhead=1 } Feature & A & B & C \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ \end{tblr} \bigskip \subcaption{Some other text here ...} \begin{tblr} { width = \textwidth, colspec = {lllllllll}, hlines, row{1} = {font=\bfseries}, hline{1,Z}=0.8pt, hline{2}=0.4pt, hline{1-12}=solid, rowhead=1 } Feature & A & B & C \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ \end{tblr} \end{table}

% ------------------- % Two columns \end{small} \endgroup \twocolumn } % -------------------

\end{document}

Zarko
  • 296,517
Ommo
  • 835
  • 1
    Is the class relevant? If yes, please add a link where we can get it from. If not, replace it with a standard class which is available in the normally used tex distributions. – samcarter_is_at_topanswers.xyz Dec 14 '23 at 09:45
  • 1
    You can probably use minipages to place your tables next to each other... – samcarter_is_at_topanswers.xyz Dec 14 '23 at 09:46
  • Hi, thanks for your comment :-) well, the class is not relevant (I think any solution should work with "article" and I can try to adapt it to "wlscirep")... However, the document class come from here: https://www.overleaf.com/project/657ad00b6c857c40a42ddbdb (source: https://www.nature.com/srep/author-instructions/submission-guidelines) – Ommo Dec 14 '23 at 09:51
  • Inspired by https://tex.stackexchange.com/questions/157222/putting-figures-side-by-side-using-minipage, I tried to wrap the first two tblr sub-tables (i.e.(a) and (b))with minipage, but I do not see any difference. This is what I added: \begin{minipage}{.5\textwidth}\centering \begin{tblr} ...my table... \end{tblr} \end{minipage} – Ommo Dec 14 '23 at 10:00
  • 1
    Does this: https://tex.stackexchange.com/a/461450/47927 or this https://tex.stackexchange.com/a/271522/47927 work? – Jasper Habicht Dec 14 '23 at 10:02
  • 1
    Note that a space between two minipages that are both .5\textwidth wide is already too much to have them in one single row. You probably need to add some % to suppress any space between them (or use .45\textwidth and put some \hfill between). – Jasper Habicht Dec 14 '23 at 10:04
  • I can try both solutions you have suggested, even though I would like to keep - if possible - the table and tblr environments... – Ommo Dec 14 '23 at 10:06
  • I tried both solutions, but I am not able to make them work....also, if I used https://tex.stackexchange.com/questions/461417/how-to-put-3-figures-in-latex-with-2-figures-side-by-side-and-1-below-these-side/461450#461450, I would get different subcaption titles for the sub-tables, i.e. something like "supplementary figure 1", instead of a simple "(a)".... – Ommo Dec 14 '23 at 10:12

4 Answers4

2

I have no idea about the document class you use, but you could try to use subcaptionblocks. In the below MWE, I kept as much as possible of your MWE and only changed the document class to article and loaded the enumitem pacakge as you used \setlist which I assumed made this necessary.

I used the option labelfont=bf when loading the subcaption package to render the labels of subcaptions in bold font. Note that inside a subcaptionblock, you should use \caption and not \subcaption but the former is interpreted as if you used the latter.

\documentclass[twocolumn, fleqn, 10pt, dvipsnames, table]{article}
\usepackage{enumitem}

\usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{multirow, booktabs, tabularx} \usepackage{makecell} \usepackage{xurl} \usepackage{caption} \usepackage[labelfont=bf]{subcaption} \usepackage{tabularx} \usepackage{xfp} \usepackage{color} \usepackage{tabularray} \usepackage{tikz} \usepackage{textcomp, gensymb}

\usepackage{tabulary, longtable, afterpage} \makeatletter \newcommand{\aftertwo}[1]{\afterpage{\if@firstcolumn #1 \else\afterpage{#1}\fi}} \makeatother

\begin{document}

% ------------------- % Two columns \aftertwo{ \onecolumn % \begingroup \setlist[itemize]{label={--},nosep, leftmargin=, before=\vspace{-\baselineskip}} \setlength{\extrarowheight}{1.5pt} \begin{small} % -------------------

\begin{table}[ht] \centering \caption{A general description about subcaption \textbf{(a)}, subcaption \textbf{(b)} and subcaption \textbf{(c)}... } \begin{subcaptionblock}{.5\textwidth} \caption{Some text for this subcaption ...} \begin{tblr} { width = \textwidth, colspec = {lllllllll}, hlines, row{1} = {font=\bfseries}, hline{1,Z}=0.8pt, hline{2}=0.4pt, hline{1-12}=solid, rowhead=1 } Feature & A & B & C \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ \end{tblr} \end{subcaptionblock}% \begin{subcaptionblock}{.5\textwidth} \caption{Some text here ...} \begin{tblr} { width = \textwidth, colspec = {lllllllll}, hlines, row{1} = {font=\bfseries}, hline{1,Z}=0.8pt, hline{2}=0.4pt, hline{1-12}=solid, rowhead=1 } Feature & A & B & C \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ \end{tblr} \end{subcaptionblock} \begin{subcaptionblock}{\textwidth} \centering\bigskip \caption{Some other text here ...} \begin{tblr} { width = \textwidth, colspec = {lllllllll}, hlines, row{1} = {font=\bfseries}, hline{1,Z}=0.8pt, hline{2}=0.4pt, hline{1-12}=solid, rowhead=1 } Feature & A & B & C \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ \end{tblr} \end{subcaptionblock} \end{table}

% ------------------- % Two columns \end{small} \endgroup \twocolumn } % -------------------

\end{document}

enter image description here

2
  • I haven't your document class. Instead I use article, but I'm pretty sure that proposed solution will work with yours too.
  • As I see, your tables shown in question are short and can be fit on one page, so they can be easely fit in table* environment (which span both columns in your document), hence there is not any need to switch from two columns to one columns and back.
  • You should be aware that table* will appear on top of the next page after its insertion in text.
  • if you estimate that it can be on the bottom of the same page, where it is inserted, than you can force it by use of the stfloats package (as I do in MWE below).
  • For sub tables I would use subfloat environment provided by subfig package or rather its emulation provided by subcaption package version 3.1 or newer. Using it table code is a bit shorter.
  • First tow sub tables I would separated by \hfill between the, for the third you only need to insert empty lines before it (and eventually add some vertical skip (for example \bigskip) for nicer formation of tables:
\documentclass[twocolumn, fleqn]{article}
%--------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%
\usepackage{lipsum}                              % for dummy text
%---------------------------------------------------------------%
\usepackage[T1]{fontenc}
\usepackage{textcomp,gensymb}
\usepackage{caption, subcaption}
% for inserting bit floats on page
    \renewcommand{\dbltopfraction}{0.9} % fit big float above 2-col. text
    \renewcommand{\textfraction}{0.07}  % allow minimal text w. figs

\usepackage{xfp} \usepackage{xcolor} % \usepackage{longtable, makecell, multirow, % tabulary, tabularx} % not needed in this particular case \usepackage{tabularray} \UseTblrLibrary{booktabs, siunitx}

\usepackage{stfloats} % for forcing floats to bottom of page

\usepackage{tikz}

\begin{document} \lipsum[1][1-3]

\begin{table*}[b]
\centering

\caption{A general description about subcaption \textbf{(a)}, subcaption \textbf{(b)} and subcaption \textbf{(c)}... } \subfloat[Some text for this subcaption ...]% {% \begin{tblr}{hline{1,Z}=0.8pt, hline{2}=0.4pt, colspec = {@{} l Q[c, si={table-format=1.3}] Q[c, si={table-format=4.2}] Q[c, si={table-format=1.3}] @{} }, row{1} = {guard, font=\bfseries}, rowsep = 0.5pt, row{even[4]} = {abovesep=1ex} } Feature & A & B & C \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ \end{tblr} } \hfill \subfloat[Some text for this subcaption ...]% {% \begin{tblr}{hline{1,Z}=0.8pt, hline{2}=0.4pt, colspec = {@{} l Q[c, si={table-format=1.3}] Q[c, si={table-format=4.2}] Q[c, si={table-format=1.3}] @{} }, row{1} = {guard, font=\bfseries}, rowsep = 0.5pt, row{even[4]} = {abovesep=1ex} } Feature & A & B & C \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ \end{tblr} }

\bigskip \subfloat[Some text for this subcaption ...]% {% \begin{tblr}{hline{1,Z}=0.8pt, hline{2}=0.4pt, colspec = {@{} l Q[c, si={table-format=1.3}] Q[c, si={table-format=4.2}] Q[c, si={table-format=1.3}] @{} }, row{1} = {guard, font=\bfseries}, rowsep = 0.5pt, row{even[4]} = {abovesep=1ex} } Feature & A & B & C \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ \end{tblr} } \end{table*} \lipsum[2-9]

\end{document}

Are you sure that you need all loaded packages for writing tables? Most of them can be easily replaced by tabularray package ...

enter image description here

(red lines indicate page layout)

Zarko
  • 296,517
  • Thanks a lot @Zarko! Nice answer! You are right, I do not probably need all of them, and this is just the result of not cleaning the document properly after many trials for a number of different tasks... I could obviously delete the unnecessary packages related to tabularray, but I do not know which one... :-) – Ommo Dec 14 '23 at 12:18
  • 1
    @Ommo, main point of my answer is that what you after you can simply achieve by table* float. Solution is also robust well proven. Remark for tables: just check your document, which kind of tables it contain and it they can be simple replaced by tabularray. For example, in this question all other tables can be removed. (I will added comment to my code ASAP) – Zarko Dec 14 '23 at 12:27
  • 1
    @Ommo, in your tables you specify nine columns but use only four. Please never do this. Define only columns which you needed, surplus defined can make only troubles! See, how are specified tables preambles in my answer. Resulted table has "professional" looks, i.e. to my taste are much nicer in comparison to your design. – Zarko Dec 14 '23 at 12:40
  • Thanks a lot for your comments, I modify the tables accordingly :-) – Ommo Dec 14 '23 at 13:57
  • 1
    @Ommo, do you upvote my answer :-) ((just curios) , I have filling that not)? By this you express your gratefulness .... – Zarko Dec 14 '23 at 14:08
  • Yes, yes, I upvoted your answer :-) ....I just do not know which answer to accept since all are working nicely... :-) – Ommo Dec 14 '23 at 14:16
  • @Ommo oh, accepting is simple: accept this one which fulfill your expectation on the best way or on the simplest way – Zarko Dec 14 '23 at 14:23
1

I might have found a solution, by using the following structure, proposed by @Guido Muscioni in "Align figure and tables in subfigure environment" (and using a customised horizontal space among the two top sub-tables, as suggested in "How do I add additional horizontal spacing between two figures in latex?", where I use \hspace{0.05\textwidth} instead of \hfill).

The basic idea is to use this structure:

\begin{table}\centering
\subfloat[legend]{\label{A}}\hfill
\subfloat[legend]{\label{B}}\par 
\subfloat[legend]{\label{C}}
\caption{my table}
\end{table}

and then add the tblr inside the \subfloat, as follows (just a MWE):

\begin{table}\centering
\subfloat[legend]{\label{A}\begin{tblr}{}Feature & A & B & C\\\end{tblr}}\hfill
\subfloat[legend]{\label{B}\begin{tblr}{}Feature & A & B & C\\\end{tblr}}\par 
\subfloat[legend]{\label{C}\begin{tblr}{}Feature & A & B & C\\\end{tblr}}
\caption{my table}
\end{table}

So, going back to my original post, this is the final result:


\documentclass[twocolumn,fleqn,10pt,dvipsnames,table]{wlscirep_SI}

\usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{multirow, booktabs, tabularx} \usepackage{makecell} \usepackage{xurl} \usepackage{caption} \usepackage{subcaption} \usepackage{tabularx} \usepackage{xfp} \usepackage{color} \usepackage{tabularray} \usepackage{tikz} \usepackage{textcomp,gensymb}

\usepackage{tabulary,longtable,afterpage} \makeatletter \newcommand{\aftertwo}[1]{\afterpage{\if@firstcolumn #1 \else\afterpage{#1}\fi}} \makeatother

\begin{document}

% ------------------- % Two columns \aftertwo{ \onecolumn % \begingroup \setlist[itemize]{label={--},nosep, leftmargin=, before=\vspace{-\baselineskip}} \setlength{\extrarowheight}{1.5pt} \begin{small} % -------------------

\begin{table}\centering \caption{A general description about subcaption \textbf{(a)}, subcaption \textbf{(b)} and subcaption \textbf{(c)}} \subfloat[Subcaption for subtable \textbf{(a)}]{\label{a}\begin{tblr} { width = \textwidth, colspec = {lllllllll}, hlines, row{1} = {font=\bfseries}, hline{1,Z}=0.8pt, hline{2}=0.4pt, hline{1-12}=solid, rowhead=1 } Feature & A & B & C \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ \end{tblr}} \hspace{0.05\textwidth} %\hfill \subfloat[Subcaption for subtable \textbf{(b)}] {\label{b}\begin{tblr} { width = \textwidth, colspec = {lllllllll}, hlines, row{1} = {font=\bfseries}, hline{1,Z}=0.8pt, hline{2}=0.4pt, hline{1-12}=solid, rowhead=1 } Feature & A & B & C \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ \end{tblr}}\par \bigskip \subfloat[Subcaption for subtable \textbf{(c)}] {\label{c}\begin{tblr} { width = \textwidth, colspec = {lllllllll}, hlines, row{1} = {font=\bfseries}, hline{1,Z}=0.8pt, hline{2}=0.4pt, hline{1-12}=solid, rowhead=1 } Feature & A & B & C \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ \end{tblr}} \end{table}

% ------------------- % Two columns \end{small} \endgroup \twocolumn } % -------------------

\end{document}

enter image description here

Ommo
  • 835
1

I don't know about wlscirep_modified, but I guess the presented solution also works with it.

  1. No need of tricks to get one column output, just use table*

  2. Use separate subtable environments

Here's the code, although I can't see why using tblr. I add a trick that allows to accommodate the float not in a page by itself.

\documentclass[twocolumn,fleqn,10pt,dvipsnames,table]{wlscirep}

\usepackage[T1]{fontenc} \usepackage{caption} \usepackage{subcaption} \usepackage{tabularray}

\usepackage{lipsum}% for context

\renewcommand\dblfloatpagefraction{0.7}% usual value 0.5

\begin{document}

\lipsum[1-4]

\begin{table*} \centering\small

\caption{A general description about subcaption \textbf{(a)}, subcaption \textbf{(b)} and subcaption \textbf{(c)}...}

\begin{subtable}{0.5\textwidth} \centering \subcaption{Some text for this subcaption ...}

\begin{tblr} { width = \textwidth, colspec = {lllllllll}, hlines, row{1} = {font=\bfseries}, hline{1,Z}=0.8pt, hline{2}=0.4pt, hline{1-12}=solid, rowhead=1 } Feature & A & B & C \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ \end{tblr} \end{subtable}% \begin{subtable}{0.5\textwidth} \centering

\subcaption{Some text here ...} \begin{tblr} { width = \textwidth, colspec = {lllllllll}, hlines, row{1} = {font=\bfseries}, hline{1,Z}=0.8pt, hline{2}=0.4pt, hline{1-12}=solid, rowhead=1 } Feature & A & B & C \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ \end{tblr} \end{subtable}

\bigskip

\begin{subtable}{0.5\textwidth} \centering

\subcaption{Some other text here ...} \begin{tblr} { width = \textwidth, colspec = {lllllllll}, hlines, row{1} = {font=\bfseries}, hline{1,Z}=0.8pt, hline{2}=0.4pt, hline{1-12}=solid, rowhead=1 } Feature & A & B & C \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \
A quite long text here & 0.84 & 3020.15 & 0.78 \ A quite long text here & 0.84 & 3020.15 & 0.78 \ \end{tblr} \end{subtable}

\end{table*}

\lipsum[5-21]

\end{document}

enter image description here

egreg
  • 1,121,712
  • Many thanks to everyone for your wonderful solutions! I really don't know who to grant the answer, since all of them are really nice – Ommo Dec 15 '23 at 22:14