0

I was looking at a solution by John Kormylo to a question entitled flowfram package - balance 3 columns and extend columnsep line to end of text and tried to use it to include figures and tables, which did not work. Previous Q/A's about spanning floats in flowfram do not seem to work including this answer by Fran. I do not understand the solution by @John Kormylo nor how to modify it to meet what I desire, hence the question. The document looks like so -

3 column spanning figure:

enter image description here

3 column spanning table:

enter image description here

2 column spanning figure:

enter image description here

2 column spanning table:

enter image description here

How can the text wrap around the floats using the (-M)WE as a basis point?

The ideal solution would have the caption spanning the appropriate number of columns (it is currently just spanning 1), the text to wrap around the float, the column lines to respect the float space and be present for the text section of the page and for a customisable way to specify like

\begin{1}{2}{t}{customTable}

or something similar with the first number specifying starting column, second number specifying end column and the third with the positioning on the page. There will never be a float on the first page so that is not an issue.

The (-M)WE is quite lengthy, due to wanting to include necessary packages (for my ends) so if there are any complications they can arise, my apologies for the length of it. Using lipsum in the main text would not work as there was a bug with the lettrine package that I would like to use so I used a lipsum generator and copied the text in.

(-M)WE:

\documentclass[9pt]{extarticle}

\usepackage{graphicx} % Demo for MWE
\usepackage{amsmath}
\usepackage[a4paper,inner=1.2cm,outer=1.2cm,top=2cm,bottom=2cm,columnsep=20pt]{geometry}
\usepackage{flowfram} % http://ctan.org/pkg/flowfram
\usepackage{lipsum}  % http://ctan.org/pkg/lipsum
\usepackage{refcount}
\usepackage{xcolor}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{microtype}
\usepackage{fix-cm} % Required for lettrine package
\usepackage{lettrine}
\usepackage{fancyhdr}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage[compact]{titlesec} 
\usepackage{caption}
\usepackage[style=numeric,url=false]{biblatex}
\usepackage[hidelinks]{hyperref}
\usepackage{cleveref}
\usepackage[nonumberlist,nopostdot,nogroupskip]{glossaries}

\newcommand\abstractText{\lipsum[3]}
\newcommand\headerText{state-of-the-art review}
\newcommand\titleText{\lipsum[1][1-2]}
\newcommand\authorText{First Middle Last-Name}
\newcommand\uniName{University of Nowhere}

\addbibresource{biblatex-examples.bib}
\renewcommand*{\bibfont}{\normalfont\small}

\newcommand\firstLetterText[2]{\lettrine[lines=#1]{#2}{}} % For lettrine package

\fancyhead{} 
\fancyfoot{}
\fancyhead[L]{First LastName Research Group}
\fancyfoot[R]{\thepage}
\renewcommand{\headrulewidth}{0.05pt}
\pagestyle{fancy}

\captionsetup[figure]{font=small,labelfont=small,labelfont={bf},labelsep=period}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                       Flowfram stuff                                                                              %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%---------------- Flowfram stuff from:  https://tex.stackexchange.com/a/637236/273733. Also adapted
\newsavebox{\titlebox}
\setlength{\columnwidth}{\dimexpr \textwidth-2\columnsep}
\divide\columnwidth by 3

\makeatletter
\renewenvironment{abstract}{\begin{lrbox}{\titlebox}% \maketitle inside \titlebox
  \begin{minipage}{\dimexpr 2\columnwidth+\columnsep}%
  \@twocolumntrue
  \begin{flushleft}%
    {\color{gray}   \sffamily \MakeUppercase \headerText \par}%
    \vskip 0.5em%
    {\LARGE \bfseries \@title \par}%
    \vskip 1.5em%
    {\large
     \lineskip .75em%
%      \begin{tabular}[t]{l}%
        \noindent\@author
 %     \end{tabular}
    \par}%
      \vskip 1.5em%
%    {\large \@date \par}%
  \end{flushleft}\par
  }% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BODY
{  \bigskip\smallskip
  \end{minipage}%
  \end{lrbox}%
  \global\setbox\titlebox=\copy\titlebox
}
\makeatother

\title{\titleText}% must go before abstract

\author{%
    {\normalsize\bfseries \authorText} \\[1ex]
    \normalsize \uniName \\
    }
    
\date{\today}

\begin{abstract}% must go before flowfram setup
    \noindent \abstractText
\end{abstract}

% First page setup
\newstaticframe[1]{\dimexpr 2\columnwidth+\columnsep}{\dimexpr \ht\titlebox+\dp\titlebox}
  {0pt}{\dimexpr \textheight-\ht\titlebox-\dp\titlebox}[titleabstract]
\newflowframe[1]{\columnwidth}{\dimexpr \textheight-\ht\titlebox-\dp\titlebox}
  {0pt}{0pt}[shortleftcolumn]
\newflowframe[1]{\columnwidth}{\dimexpr \textheight-\ht\titlebox-\dp\titlebox}
  {\dimexpr \columnwidth+\columnsep}{0pt}[shortcentercolumn]
\newflowframe[1]{\columnwidth}{\textheight}{\dimexpr \textwidth-\columnwidth}{0pt}[shortrightcolumn]

\getflowid{\IDleft}{shortleftcolumn}
\getflowid{\IDcenter}{shortcentercolumn}
\getflowid{\IDright}{shortrightcolumn}
\insertvrule{flow}{\IDleft}{flow}{\IDcenter}
\insertvrule{flow}{\IDcenter}{flow}{\IDright}
  
\InputIfFileExists{FFsetup}{}{}% args not useful

\makeatletter
\@ifundefined{lastpage}{% first time only
  \newflowframe[>1]{\columnwidth}{\textheight}{0pt}{0pt}[leftcolumn]
  \newflowframe[>1]{\columnwidth}{\textheight}{\dimexpr \columnwidth+\columnsep}{0pt}[centercolumn]
  \newflowframe[>1]{\columnwidth}{\textheight}{\dimexpr \textwidth-\columnwidth}{0pt}[rightcolumn]
  \getflowid{\IDleft}{leftcolumn}
  \getflowid{\IDcenter}{centercolumn}
  \getflowid{\IDright}{rightcolumn}
  \insertvrule{flow}{\IDleft}{flow}{\IDcenter}
  \insertvrule{flow}{\IDcenter}{flow}{\IDright}%
}{% \lastpage and \lastheight defined
  \ifnum\lastpage>2\relax
    \newcommand{\nextlastpage}{\the\numexpr \lastpage-1}%
    \newflowframe[2-\nextlastpage]{\columnwidth}{\textheight}{0pt}{0pt}[leftcolumn]%
    \newflowframe[2-\nextlastpage]{\columnwidth}{\textheight}{\dimexpr \columnwidth+\columnsep}{0pt}[centercolumn]%
    \newflowframe[2-\nextlastpage]{\columnwidth}{\textheight}{\dimexpr \textwidth-\columnwidth}{0pt}[rightcolumn]%
    \getflowid{\IDleft}{leftcolumn}%
    \getflowid{\IDcenter}{centercolumn}%
    \getflowid{\IDright}{rightcolumn}%
    \insertvrule{flow}{\IDleft}{flow}{\IDcenter}%
    \insertvrule{flow}{\IDcenter}{flow}{\IDright}%
  \fi
  \newflowframe[\lastpage]{\columnwidth}{\lastheight}
    {0pt}{\dimexpr \textheight-\lastheight}[topleftcolumn]%
  \newflowframe[\lastpage]{\columnwidth}{\lastheight}
    {\dimexpr \columnwidth+\columnsep}{\dimexpr \textheight-\lastheight}[topcentercolumn]
  \newflowframe[\lastpage]{\columnwidth}{\lastheight}
    {\dimexpr \textwidth-\columnwidth}{\dimexpr \textheight-\lastheight}[toprightcolumn]
  \getflowid{\IDleft}{topleftcolumn}%
  \getflowid{\IDcenter}{topcentercolumn}%
  \getflowid{\IDright}{toprightcolumn}%
  \insertvrule{flow}{\IDleft}{flow}{\IDcenter}%
  \insertvrule{flow}{\IDcenter}{flow}{\IDright}%
% excess text
  \newflowframe[>\lastpage]{\columnwidth}{\textheight}{0pt}{0pt}%
  \newflowframe[>\lastpage]{\columnwidth}{\textheight}{\dimexpr \columnwidth+\columnsep}{0pt}%
  \newflowframe[>\lastpage]{\columnwidth}{\textheight}{\dimexpr \textwidth-\columnwidth}{0pt}%
}

\newcommand{\firstFFsetup}{% first time
  \edef\lastpage{\arabic{page}}%
  \dimen0=\dimexpr \textheight-\pagegoal+\pagetotal+2\baselineskip\relax
  \ifnum\value{displayedframe}>1 \advance\dimen0 by \textheight \fi
  \ifnum\value{displayedframe}>2 \advance\dimen0 by \textheight \fi
  \count1=\numexpr \dimen0/\baselineskip\relax
  \divide\count1 by 3
  \dimen0=\baselineskip
  \multiply\dimen0 by \count1
  \edef\lastheight{\the\dimen0}}

\newcommand{\secondFFsetup}{% same last page
  \dimen0=\dimexpr \lastheight-\pagegoal+\pagetotal+2\baselineskip\relax
  \ifnum\value{displayedframe}>1 \advance\dimen0 by \lastheight \fi
  \ifnum\value{displayedframe}>2 \advance\dimen0 by \lastheight \fi
  \count1=\numexpr \dimen0/\baselineskip\relax
  \divide\count1 by 3
  \dimen0=\baselineskip
  \multiply\dimen0 by \count1
  \edef\lastheight{\the\dimen0}}
  
\newcommand{\extraFFsetup}{% extra pages
  \dimen0=\lastheight\relax
  \multiply\dimen0 by 3
  \advance\dimen0 by \dimexpr \textheight-\pagegoal+\pagetotal+2\baselineskip\relax
  \ifnum\value{displayedframe}>1 \advance\dimen0 by \textheight \fi
  \ifnum\value{displayedframe}>2 \advance\dimen0 by \textheight \fi
  \count1=\value{page}%
  \ifdim\dimen0<3\textheight\relax
    \advance\count1 by -1
  \else
    \advance\dimen0 by -3\textheight
  \fi
  \edef\lastpage{\number\count1}%
  \count1=\numexpr \dimen0/\baselineskip\relax
  \divide\count1 by 3
  \dimen0=\baselineskip
  \multiply\dimen0 by \count1
  \edef\lastheight{\the\dimen0}}

\AtEndDocument{\@ifundefined{lastpage}{% first time
  \firstFFsetup
}{%
  \ifnum\lastpage>\value{page}\relax
    \firstFFsetup
  \else\ifnum\lastpage=\value{page}\relax
      \secondFFsetup
    \else
      \extraFFsetup
    \fi
  \fi
}%
  \newwrite\FFid
  \immediate\openout\FFid=FFsetup
  \immediate\write\FFid{\string\gdef\string\lastpage{\lastpage}}%
  \immediate\write\FFid{\string\gdef\string\lastheight{\lastheight}}%\thedisplayedframe
  \closeout\FFid}
\makeatother

\begin{staticcontents*}{titleabstract}
  \box\titlebox
\end{staticcontents*}

%%% End of flowfram stuff from: https://tex.stackexchange.com/a/637236/273733


\begin{document}
\sloppy
\firstLetterText{4}{L}orem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut tristique et egestas quis ipsum suspendisse ultrices gravida. Nibh ipsum consequat nisl vel pretium. Molestie nunc non blandit massa enim nec dui nunc mattis. Facilisi cras fermentum odio eu feugiat pretium nibh. Suspendisse faucibus interdum posuere lorem ipsum dolor sit amet consectetur. Varius morbi enim nunc faucibus a. Pellentesque elit eget gravida cum sociis natoque penatibus. Arcu risus quis varius quam quisque. Lacus vel facilisis volutpat est velit egestas dui id ornare. Facilisi etiam dignissim diam quis enim lobortis. Amet consectetur adipiscing elit ut aliquam purus. Gravida in fermentum et sollicitudin.

\lipsum[1-5]

\section{Section 1}
\lipsum[1-2]
Proin libero nunc consequat interdum varius sit. Tortor aliquam nulla facilisi cras fermentum odio eu feugiat. Pellentesque eu tincidunt tortor aliquam nulla facilisi cras fermentum odio. Ac ut consequat semper viverra nam libero justo laoreet. Blandit volutpat maecenas volutpat blandit. Potenti nullam ac tortor vitae purus faucibus ornare suspendisse. Sem nulla pharetra diam sit amet nisl. A iaculis at erat pellentesque. Laoreet id donec ultrices tincidunt arcu non sodales neque sodales. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque. Cursus metus aliquam eleifend mi. Lectus arcu bibendum at varius vel pharetra vel turpis. Nisl nunc mi ipsum faucibus vitae.

\begin{figure}[t]
\includegraphics[width=\textwidth]{example-image-c}
\caption{\lipsum[1][1-2]}
\end{figure}

Quam vulputate dignissim suspendisse in est. Potenti nullam ac tortor vitae purus faucibus. Accumsan in nisl nisi scelerisque eu ultrices vitae. Blandit volutpat maecenas volutpat blandit aliquam etiam erat velit scelerisque. Ac ut consequat semper viverra nam libero justo. Id velit ut tortor pretium viverra suspendisse potenti nullam. Id neque aliquam vestibulum morbi. Lacinia at quis risus sed vulputate. Laoreet non curabitur gravida arcu ac tortor dignissim convallis aenean. Vulputate ut pharetra sit amet aliquam id diam. Quis blandit turpis cursus in. Odio facilisis mauris sit amet massa. Dictum sit amet justo donec enim. Ultrices neque ornare aenean euismod elementum nisi quis. Egestas congue quisque egestas diam in arcu cursus. Mattis vulputate enim nulla aliquet porttitor. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Nibh mauris cursus mattis molestie a. Et netus et malesuada fames ac turpis egestas. Ut aliquam purus sit amet luctus.

Metus vulputate eu scelerisque felis imperdiet proin fermentum leo vel. Eget felis eget nunc lobortis mattis aliquam faucibus purus in. Purus gravida quis blandit turpis cursus in hac habitasse platea. Mi in nulla posuere sollicitudin aliquam. Orci ac auctor augue mauris augue neque gravida. Turpis egestas maecenas pharetra convallis. Mauris vitae ultricies leo integer malesuada nunc vel risus commodo. Amet facilisis magna etiam tempor orci eu lobortis. Proin sagittis nisl rhoncus mattis rhoncus urna neque viverra. Orci phasellus egestas tellus rutrum tellus pellentesque eu tincidunt. Proin sagittis nisl rhoncus mattis rhoncus urna neque viverra. Eget mi proin sed libero enim sed faucibus.
\cite{aksin,angenendt,baez/article,bertram}

Fermentum et sollicitudin ac orci phasellus egestas tellus rutrum. Hendrerit dolor magna eget est lorem ipsum dolor sit amet. Amet facilisis magna etiam tempor. Nibh venenatis cras sed felis eget velit. Neque egestas congue quisque egestas diam in arcu. In ornare quam viverra orci sagittis eu volutpat odio facilisis. Vestibulum lectus mauris ultrices eros in cursus turpis. Gravida rutrum quisque non tellus orci ac. At varius vel pharetra vel turpis nunc eget lorem dolor. Amet tellus cras adipiscing enim. Id neque aliquam vestibulum morbi blandit cursus. Sem integer vitae justo eget magna fermentum. Proin sed libero enim sed. Magna etiam tempor orci eu lobortis elementum nibh. Vitae justo eget magna fermentum iaculis eu. Adipiscing diam donec adipiscing tristique risus nec feugiat. Ac felis donec et odio pellentesque diam. Amet consectetur adipiscing elit pellentesque habitant morbi tristique. Pharetra convallis posuere morbi leo urna molestie at elementum. Ante in nibh mauris cursus.

Proin libero nunc consequat interdum varius sit. Tortor aliquam nulla facilisi cras fermentum odio eu feugiat. Pellentesque eu tincidunt tortor aliquam nulla facilisi cras fermentum odio. Ac ut consequat semper viverra nam libero justo laoreet. Blandit volutpat maecenas volutpat blandit. Potenti nullam ac tortor vitae purus faucibus ornare suspendisse. Sem nulla pharetra diam sit amet nisl. A iaculis at erat pellentesque. Laoreet id donec ultrices tincidunt arcu non sodales neque sodales. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque. Cursus metus aliquam eleifend mi. Lectus arcu bibendum at varius vel pharetra vel turpis. Nisl nunc mi ipsum faucibus vitae.

Quam vulputate dignissim suspendisse in est. Potenti nullam ac tortor vitae purus faucibus. Accumsan in nisl nisi scelerisque eu ultrices vitae. Blandit volutpat maecenas volutpat blandit aliquam etiam erat velit scelerisque. Ac ut consequat semper viverra nam libero justo. Id velit ut tortor pretium viverra suspendisse potenti nullam. Id neque aliquam vestibulum morbi. Lacinia at quis risus sed vulputate. Laoreet non curabitur gravida arcu ac tortor dignissim convallis aenean. Vulputate ut pharetra sit amet aliquam id diam. Quis blandit turpis cursus in. Odio facilisis mauris sit amet massa. Dictum sit amet justo donec enim. Ultrices neque ornare aenean euismod elementum nisi quis. Egestas congue quisque egestas diam in arcu cursus. Mattis vulputate enim nulla aliquet porttitor. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Nibh mauris cursus mattis molestie a. Et netus et malesuada fames ac turpis egestas. Ut aliquam purus sit amet luctus.

Fermentum et sollicitudin ac orci phasellus egestas tellus rutrum. Hendrerit dolor magna eget est lorem ipsum dolor sit amet. Amet facilisis magna etiam tempor. Nibh venenatis cras sed felis eget velit. Neque egestas congue quisque egestas diam in arcu. In ornare quam viverra orci sagittis eu volutpat odio facilisis. Vestibulum lectus mauris ultrices eros in cursus turpis. Gravida rutrum quisque non tellus orci ac. At varius vel pharetra vel turpis nunc eget lorem dolor. Amet tellus cras adipiscing enim. Id neque aliquam vestibulum morbi blandit cursus. Sem integer vitae justo eget magna fermentum. Proin sed libero enim sed. Magna etiam tempor orci eu lobortis elementum nibh. Vitae justo eget magna fermentum iaculis eu. Adipiscing diam donec adipiscing tristique risus nec feugiat. Ac felis donec et odio pellentesque diam. Amet consectetur adipiscing elit pellentesque habitant morbi tristique. Pharetra convallis posuere morbi leo urna molestie at elementum. Ante in nibh mauris cursus.

Proin libero nunc consequat interdum varius sit. Tortor aliquam nulla facilisi cras fermentum odio eu feugiat. Pellentesque eu tincidunt tortor aliquam nulla facilisi cras fermentum odio. Ac ut consequat semper viverra nam libero justo laoreet. Blandit volutpat maecenas volutpat blandit. Potenti nullam ac tortor vitae purus faucibus ornare suspendisse. Sem nulla pharetra diam sit amet nisl. A iaculis at erat pellentesque. Laoreet id donec ultrices tincidunt arcu non sodales neque sodales. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque. Cursus metus aliquam eleifend mi. Lectus arcu bibendum at varius vel pharetra vel turpis. Nisl nunc mi ipsum faucibus vitae.

\begin{figure}[t]
\includegraphics[width=.6\textwidth]{example-image-b}
\caption{\lipsum[1][1-2].}
\end{figure}

\begin{table*}[b]
\caption{\lipsum[1][1]}
\label{table:stats}
\sisetup{
table-alignment-mode = format,
table-number-alignment = center,
}
\setlength\tabcolsep{0pt}
\begin{tabularx}{\textwidth}{@{\extracolsep{\fill}}cccccccccc@{}}
\toprule
\multicolumn{1}{c}{\textbf{Year}} &
  \multicolumn{1}{c}{\textbf{\begin{tabular}[c]{@{}c@{}}Num. of\\ Samples\end{tabular}}} &
  \multicolumn{1}{c}{\textbf{\begin{tabular}[c]{@{}c@{}}Mean\\ (\unit{\nano\gram\per\litre})\end{tabular}}} &
  \multicolumn{1}{c}{\textbf{\begin{tabular}[c]{@{}c@{}}SD\\ (\unit{\nano\gram\per\litre})\end{tabular}}} &
  \multicolumn{1}{c}{\textbf{CoV}} &
  \multicolumn{1}{c}{\textbf{\begin{tabular}[c]{@{}c@{}}Lower\\ range\end{tabular}}} &
  \multicolumn{1}{c}{\textbf{25}} &
  \multicolumn{1}{c}{\textbf{Median}} &
  \multicolumn{1}{c}{\textbf{75}} &
  \multicolumn{1}{c}{\textbf{\begin{tabular}[c]{@{}c@{}}Upper\\ range\end{tabular}}} \\ \midrule
2005 & 2   & 5.21  & 0.34  & 0.0653 & 4.87   & 5.04  & 5.21   & 5.38  & 5.55 \\
2008 & 30  & 1.15  & 0.632 & 0.55   & 0.506  & 0.762 & 0.9195 & 1.36  & 3.31 \\
2012 & 104 & 6.86  & 6.8   & 0.991  & 0.825  & 2.68  & 4.14   & 8.86  & 34.2 \\
2013 & 403 & 7     & 8.08  & 1.15   & 0.5    & 1.83  & 3.92   & 9.06  & 50.4 \\
2014 & 103 & 7.67  & 7.47  & 0.974  & 0.52   & 2.45  & 5.57   & 9.65  & 36.9 \\
2016 & 31  & 1.15  & 1.47  & 1.28   & 0.166  & 0.335 & 0.539  & 1.02  & 6.15 \\
2017 & 34  & 1.67  & 2.25  & 1.35   & 0.163  & 0.346 & 0.6195 & 1.48  & 8.13 \\
2018 & 51  & 1.56  & 1.65  & 1.06   & 0.0536 & 0.531 & 1.03   & 1.67  & 8.81 \\
2019 & 127 & 1.09  & 1.55  & 1.42   & 0.032  & 0.296 & 0.49   & 1.04  & 11   \\
2020 & 32  & 1.94  & 3.76  & 1.94   & 0.15   & 0.385 & 0.52   & 1.35  & 20   \\
2021 & 349 & 0.503 & 0.8   & 1.59   & 0.03   & 0.13  & 0.29   & 0.57  & 10   \\
2022 & 28  & 0.278 & 0.342 & 1.23   & 0.034  & 0.09  & 0.15   & 0.303 & 1.6 \\ \bottomrule
\end{tabularx}
\end{table*}

Quam vulputate dignissim suspendisse in est. Potenti nullam ac tortor vitae purus faucibus. Accumsan in nisl nisi scelerisque eu ultrices vitae. Blandit volutpat maecenas volutpat blandit aliquam etiam erat velit scelerisque. Ac ut consequat semper viverra nam libero justo. Id velit ut tortor pretium viverra suspendisse potenti nullam. Id neque aliquam vestibulum morbi. Lacinia at quis risus sed vulputate. Laoreet non curabitur gravida arcu ac tortor dignissim convallis aenean. Vulputate ut pharetra sit amet aliquam id diam. Quis blandit turpis cursus in. Odio facilisis mauris sit amet massa. Dictum sit amet justo donec enim. Ultrices neque ornare aenean euismod elementum nisi quis. Egestas congue quisque egestas diam in arcu cursus. Mattis vulputate enim nulla aliquet porttitor. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Nibh mauris cursus mattis molestie a. Et netus et malesuada fames ac turpis egestas. Ut aliquam purus sit amet luctus.

Fermentum et sollicitudin ac orci phasellus egestas tellus rutrum. Hendrerit dolor magna eget est lorem ipsum dolor sit amet. Amet facilisis magna etiam tempor. Nibh venenatis cras sed felis eget velit. Neque egestas congue quisque egestas diam in arcu. In ornare quam viverra orci sagittis eu volutpat odio facilisis. Vestibulum lectus mauris ultrices eros in cursus turpis. Gravida rutrum quisque non tellus orci ac. At varius vel pharetra vel turpis nunc eget lorem dolor. Amet tellus cras adipiscing enim. Id neque aliquam vestibulum morbi blandit cursus. Sem integer vitae justo eget magna fermentum. Proin sed libero enim sed. Magna etiam tempor orci eu lobortis elementum nibh. Vitae justo eget magna fermentum iaculis eu. Adipiscing diam donec adipiscing tristique risus nec feugiat. Ac felis donec et odio pellentesque diam. Amet consectetur adipiscing elit pellentesque habitant morbi tristique. Pharetra convallis posuere morbi leo urna molestie at elementum. Ante in nibh mauris cursus.

Proin libero nunc consequat interdum varius sit. Tortor aliquam nulla facilisi cras fermentum odio eu feugiat. Pellentesque eu tincidunt tortor aliquam nulla facilisi cras fermentum odio. Ac ut consequat semper viverra nam libero justo laoreet. Blandit volutpat maecenas volutpat blandit. Potenti nullam ac tortor vitae purus faucibus ornare suspendisse. Sem nulla pharetra diam sit amet nisl. A iaculis at erat pellentesque. Laoreet id donec ultrices tincidunt arcu non sodales neque sodales. Mauris rhoncus aenean vel elit scelerisque mauris pellentesque. Cursus metus aliquam eleifend mi. Lectus arcu bibendum at varius vel pharetra vel turpis. Nisl nunc mi ipsum faucibus vitae.

Quam vulputate dignissim suspendisse in est. Potenti nullam ac tortor vitae purus faucibus. Accumsan in nisl nisi scelerisque eu ultrices vitae. Blandit volutpat maecenas volutpat blandit aliquam etiam erat velit scelerisque. Ac ut consequat semper viverra nam libero justo. Id velit ut tortor pretium viverra suspendisse potenti nullam. Id neque aliquam vestibulum morbi. Lacinia at quis risus sed vulputate. Laoreet non curabitur gravida arcu ac tortor dignissim convallis aenean. Vulputate ut pharetra sit amet aliquam id diam. Quis blandit turpis cursus in. Odio facilisis mauris sit amet massa. Dictum sit amet justo donec enim. Ultrices neque ornare aenean euismod elementum nisi quis. Egestas congue quisque egestas diam in arcu cursus. Mattis vulputate enim nulla aliquet porttitor. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Nibh mauris cursus mattis molestie a. Et netus et malesuada fames ac turpis egestas. Ut aliquam purus sit amet luctus.
  
Fermentum et sollicitudin ac orci phasellus egestas tellus rutrum. Hendrerit dolor magna eget est lorem ipsum dolor sit amet. Amet facilisis magna etiam tempor. Nibh venenatis cras sed felis eget velit. Neque egestas congue quisque egestas diam in arcu. In ornare quam viverra orci sagittis eu volutpat odio facilisis. Vestibulum lectus mauris ultrices eros in cursus turpis. Gravida rutrum quisque non tellus orci ac. At varius vel pharetra vel turpis nunc eget lorem dolor. Amet tellus cras adipiscing enim. Id neque aliquam vestibulum morbi blandit cursus. Sem integer vitae justo eget magna fermentum. Proin sed libero enim sed. Magna etiam tempor orci eu lobortis elementum nibh. Vitae justo eget magna fermentum iaculis eu. Adipiscing diam donec adipiscing tristique risus nec feugiat. Ac felis donec et odio pellentesque diam. Amet consectetur adipiscing elit pellentesque habitant morbi tristique. Pharetra convallis posuere morbi leo urna molestie at elementum. Ante in nibh mauris cursus.

\lipsum[1-2]

\begin{table}[t]
\caption{\lipsum[1][1]}
\label{tab:my-table}
\begin{tabular}{@{}lccc@{}}
\toprule
\multicolumn{1}{c}{\multirow{2}{*}{\textbf{Samples}}} & \textbf{E1}     & \multicolumn{1}{c}{\textbf{E2}} & \textbf{EE2}    \\
\multicolumn{1}{c}{}                                  & \textbf{Values} & \textbf{Values}                  & \textbf{Values} \\ \midrule
Total                                     & 1294   & 1640   & 1498   \\
Average per year                          & 107.83 & 136.67 & 124.83 \\
Average per year (2000-2022)              & 56.26  & 71.30  & 65.13  \\
Average per month                         & 8.99   & 11.39  & 10.40  \\
Average per month (2000-2022)             & 4.69   & 5.94   & 5.43   \\
Average per week                          & 2.07   & 2.63   & 2.40   \\
Average per week (2000-2022)              & 1.08   & 1.37   & 1.25   \\
Average per day (assuming 365 days)       & 0.30   & 0.37   & 0.34   \\
Average per day (2000-2022)               & 0.15   & 0.20   & 0.18   \\
Days between each measurement             & 3.38   & 2.67   & 2.92   \\
Days between each measurement (2000-2022) & 6.49   & 5.12   & 5.60   \\ \bottomrule
\end{tabular}
\end{table}

\lipsum[1-4]

\printbibliography
\end{document}

I am compiling with arara using:

% arara: clean: {extensions: [abb, abrn, aux, bbl, bib, bcf, blg, glg, glo, gls, ist, log, nom, ntn, run.xml,def,dfn, out]}
% arara: pdflatex: {options: [-halt-on-error]}
% arara: biber
% arara: pdflatex: {options: [-halt-on-error]}
% arara: pdflatex: {options: [-halt-on-error]}
% arara: clean: {extensions: [abb, abrn, aux, bbl, bib, bcf, blg, glg, glo, gls, ist, log, nom, ntn, run.xml,def,dfn, out]}
% arara: clean: {files: [FFsetup.tex]}

Please feel free to comment any questions, I hope a solution is possible.

11
  • It seems the column height is not configured correctly from the second frame? Maybe my cheatsheet design with flowfram can help. // It seems it is very difficult to dynamically wrap contents without specifying the location of each frame. Jan 11, 2023 at 14:51
  • @TeddyvanJerry one of the issues and why I want to award such a bounty is the code by John Kormylo balances the end of the document, that will change the page size. If your example could work then I'd be happy to use it if it can do what I need :)
    – JamesT
    Jan 11, 2023 at 14:51
  • Do you want the caption in the same frame as the figure/table or in the first following frame? Jan 11, 2023 at 17:08
  • @JohnKormylo I would like the float captions to be placed where they typically would in an article i.e. table above, figure below if this is possible please!
    – JamesT
    Jan 11, 2023 at 17:12
  • 1
    The first page is set up perfectly. The last page assumes all the columns are the same height, and they aren't. I got a bit confused at \firstFFsetup, but discovered it works just as well without all that code. Jan 11, 2023 at 17:39

1 Answer 1

1

There is a limit on how large an answer can be, so I am deleting and replacing the old answer.

This version uses commands to simplify the setup. Also, I moved the bottom two-column block from left to right (last thing on page).

I never did figure out why your first tabular throws errors when inside a minipage, but it isn't FlowFram related (just annoying).

Regarding balancing the last page, I'm thinking of creating starred versions of the commands (starting with \FFnormal*). It would greatly simplify the code to only balance the final version of the document.

\documentclass[9pt]{extarticle}

\usepackage{graphicx} % Demo for MWE
\usepackage{amsmath}
\usepackage[a4paper,inner=1.2cm,outer=1.2cm,top=2cm,bottom=2cm,columnsep=20pt]{geometry}
\usepackage{flowfram} % http://ctan.org/pkg/flowfram
\usepackage{lipsum}  % http://ctan.org/pkg/lipsum
\usepackage{refcount}
\usepackage{xcolor}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{microtype}
\usepackage{fix-cm} % Required for lettrine package
\usepackage{lettrine}
\usepackage{fancyhdr}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage[compact]{titlesec} 
\usepackage{caption}
\usepackage[style=numeric,url=false]{biblatex}
\usepackage[hidelinks]{hyperref}
\usepackage{cleveref}
\usepackage[nonumberlist,nopostdot,nogroupskip]{glossaries}

\usepackage{capt-of}

\newcommand\abstractText{\lipsum[3]}
\newcommand\headerText{state-of-the-art review}
\newcommand\titleText{\lipsum[1][1-2]}
\newcommand\authorText{First Middle Last-Name}
\newcommand\uniName{University of Nowhere}

\addbibresource{biblatex-examples.bib}
\renewcommand*{\bibfont}{\normalfont\small}

\newcommand\firstLetterText[2]{\lettrine[lines=#1]{#2}{}} % For lettrine package

\fancyhead{} 
\fancyfoot{}
\fancyhead[L]{First LastName Research Group}
\fancyfoot[R]{\thepage}
\renewcommand{\headrulewidth}{0.05pt}
\pagestyle{fancy}

\captionsetup[figure]{font=small,labelfont=small,labelfont={bf},labelsep=period}


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                       Flowfram stuff                                                                              %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newsavebox{\titlebox}
\newsavebox{\topbox}
\newsavebox{\bottombox}
\setlength{\columnwidth}{\dimexpr \textwidth-2\columnsep}
\divide\columnwidth by 3

\makeatletter
\renewenvironment{abstract}{\begin{lrbox}{\titlebox}% \maketitle inside \titlebox
  \begin{minipage}{\dimexpr 2\columnwidth+\columnsep}%
  \@twocolumntrue
  \begin{flushleft}%
    {\color{gray}   \sffamily \MakeUppercase \headerText \par}%
    \vskip 0.5em%
    {\LARGE \bfseries \@title \par}%
    \vskip 1.5em%
    {\large
     \lineskip .75em%
%      \begin{tabular}[t]{l}%
        \noindent\@author
 %     \end{tabular}
    \par}%
      \vskip 1.5em%
%    {\large \@date \par}%
  \end{flushleft}\par
  }% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% BODY
{%\bigskip\smallskip
  \end{minipage}%
  \end{lrbox}%
  \global\setbox\titlebox=\copy\titlebox
}
\makeatletter
\newenvironment{twocolbox}[2][\empty]{% #1 = float type (optional), #2 = savebox
  \global\let\FFbox=#2%
  \ifx\empty#1\relax
  \else
    \def\@captype{#1}%
  \fi
  \begin{lrbox}{\FFbox}\begin{minipage}{\dimexpr 2\columnwidth+\columnsep}}% BODY
{\end{minipage}\end{lrbox}%
  \global\setbox\FFbox=\copy\FFbox}
%
\newenvironment{threecolbox}[2][\empty]{% #1 = float type (optional), #2 = savebox
  \global\let\FFbox=#2%
  \ifx\empty#1\relax
  \else
    \def\@captype{#1}%
  \fi
  \begin{lrbox}{\FFbox}\begin{minipage}{\textwidth}}% BODY
{\end{minipage}\end{lrbox}%
  \global\setbox\FFbox=\copy\FFbox}
\makeatother
% Flowfram commands
\newcommand{\FFrules}[1]{% #1 = page number
  \getflowid{\IDleft}{leftcolumn#1}%
  \getflowid{\IDcenter}{centercolumn#1}%
  \getflowid{\IDright}{rightcolumn#1}%
  \insertvrule{flow}{\IDleft}{flow}{\IDcenter}%
  \insertvrule{flow}{\IDcenter}{flow}{\IDright}%
}
\newcommand{\FFnormal}[1]{% #1 = page number
  \newflowframe[#1]{\columnwidth}{\textheight}{0pt}{0pt}[leftcolumn#1]%
  \newflowframe[#1]{\columnwidth}{\textheight}{\dimexpr \columnwidth+\columnsep}{0pt}[centercolumn#1]%
  \newflowframe[#1]{\columnwidth}{\textheight}{\dimexpr \textwidth-\columnwidth}{0pt}[rightcolumn#1]%
  \FFrules{#1}%
}
\newcommand{\FFtoptwo}[2]{% #1 = page number, #2 = savebox
  \setlength{\dimen0}{\dimexpr \textheight-\ht#2-\dp#2}%
  \newstaticframe[#1]{\dimexpr 2\columnwidth+\columnsep}{\dimexpr \ht#2+\dp#2}%
    {0pt}{\dimen0}[top#1]%
  \advance\dimen0 by -\textfloatsep
  \newflowframe[#1]{\columnwidth}{\dimen0}{0pt}{0pt}[leftcolumn#1]%
  \newflowframe[#1]{\columnwidth}{\dimen0}{\dimexpr \columnwidth+\columnsep}{0pt}[centercolumn#1]%
  \newflowframe[#1]{\columnwidth}{\textheight}{\dimexpr \textwidth-\columnwidth}{0pt}[rightcolumn#1]%
  \FFrules{#1}%
  \begin{staticcontents*}{top#1}%
    \box#2
  \end{staticcontents*}%
}
\newcommand{\FFtopthree}[2]{% #1 = page number, #2 = savebox
  \setlength{\dimen0}{\dimexpr \textheight-\ht#2-\dp#2}%
  \newstaticframe[#1]{\textwidth}{\dimexpr \ht#2+\dp#2}%
    {0pt}{\dimen0}[top#1]%
  \advance\dimen0 by -\textfloatsep
  \newflowframe[#1]{\columnwidth}{\dimen0}{0pt}{0pt}[leftcolumn#1]%
  \newflowframe[#1]{\columnwidth}{\dimen0}{\dimexpr \columnwidth+\columnsep}{0pt}[centercolumn#1]%
  \newflowframe[#1]{\columnwidth}{\dimen0}{\dimexpr \textwidth-\columnwidth}{0pt}[rightcolumn#1]%
  \FFrules{#1}%
  \begin{staticcontents*}{top#1}%
    \box#2
  \end{staticcontents*}%
}
\newcommand{\FFbottomtwo}[2]{% #1 = page number, #2 = savebox
  \newstaticframe[#1]{\dimexpr 2\columnwidth+\columnsep}{\dimexpr \ht#2+\dp#2}%
    {\dimexpr \columnwidth+\columnsep}{0pt}[bottom#1]%
  \setlength{\dimen1}{\dimexpr \ht#2+\dp#2+\textfloatsep}%
  \setlength{\dimen0}{\dimexpr \textheight-\dimen1}%
  \newflowframe[#1]{\columnwidth}{\textheight}{0pt}{0pt}[leftcolumn#1]%
  \newflowframe[#1]{\columnwidth}{\dimen0}{\dimexpr \columnwidth+\columnsep}{\dimen1}[centercolumn#1]%
  \newflowframe[#1]{\columnwidth}{\dimen0}{\dimexpr \textwidth-\columnwidth}{\dimen1}[rightcolumn#1]%
  \FFrules{#1}%
  \begin{staticcontents*}{bottom#1}%
    \box#2
  \end{staticcontents*}%
}
\newcommand{\FFbottomthree}[2]{% #1 = page number, #2 = savebox
  \newstaticframe[#1]{\textwidth}{\dimexpr \ht#2+\dp#2}{0pt}{0pt}[bottom#1]%
  \setlength{\dimen1}{\dimexpr \ht#2+\dp#2+\textfloatsep}%
  \setlength{\dimen0}{\dimexpr \textheight-\dimen1}%
  \newflowframe[#1]{\columnwidth}{\dimen0}{0pt}{\dimen1}[leftcolumn#1]%
  \newflowframe[#1]{\columnwidth}{\dimen0}{\dimexpr \columnwidth+\columnsep}{\dimen1}[centercolumn#1]%
  \newflowframe[#1]{\columnwidth}{\dimen0}{\dimexpr \textwidth-\columnwidth}{\dimen1}[rightcolumn#1]%
  \FFrules{#1}%
  \begin{staticcontents*}{bottom#1}%
    \box#2
  \end{staticcontents*}%
}
\newcommand{\FFthreethree}[3]{% #1 = page number, #2 = top, #3 = bottom
    \setlength{\dimen0}{\dimexpr \textheight-\ht#2-\dp#2}% bottom of top
  \newstaticframe[#1]{\textwidth}{\dimexpr \ht#2+\dp#2}%
    {0pt}{\dimen0}[top#1]%
  \setlength{\dimen1}{\dimexpr \ht#3+\dp#3+\floatsep}% bottom of text
  \setlength{\dimen0}{\dimexpr \dimen0-\textfloatsep-\dimen1}% height of text
  \newflowframe[#1]{\columnwidth}{\dimen0}{0pt}{\dimen1}[leftcolumn#1]%
  \newflowframe[#1]{\columnwidth}{\dimen0}{\dimexpr \columnwidth+\columnsep}{\dimen1}[centercolumn#1]%
  \newflowframe[#1]{\columnwidth}{\dimen0}{\dimexpr \textwidth-\columnwidth}{\dimen1}[rightcolumn#1]%
  \FFrules{#1}%
  \newstaticframe[#1]{\textwidth}{\dimexpr \ht#3+\dp#3}{0pt}{0pt}[bottom#1]%
  \begin{staticcontents*}{top#1}%
    \box#2
  \end{staticcontents*}%
  \begin{staticcontents*}{bottom#1}%
    \box#3
  \end{staticcontents*}%
}
\newcommand{\FFthreetwo}[3]{% #1 = page number, #2 = top, #3 = bottom
    \setlength{\dimen0}{\dimexpr \textheight-\ht#2-\dp#2}% bottom of top
  \newstaticframe[#1]{\textwidth}{\dimexpr \ht#2+\dp#2}%
    {0pt}{\dimen0}[top#1]%
  \setlength{\dimen1}{\dimexpr \ht#3+\dp#3+\floatsep}% bottom of text
  \setlength{\dimen0}{\dimexpr \dimen0-\textfloatsep-\dimen1}% height of text
  \newflowframe[#1]{\columnwidth}{\dimexpr \dimen0+\dimen1}{0pt}{0pt}[leftcolumn#1]%
  \newflowframe[#1]{\columnwidth}{\dimen0}{\dimexpr \columnwidth+\columnsep}{\dimen1}[centercolumn#1]%
  \newflowframe[#1]{\columnwidth}{\dimen0}{\dimexpr \textwidth-\columnwidth}{\dimen1}[rightcolumn#1]%
  \FFrules{#1}%
  \newstaticframe[#1]{\dimexpr 2\columnwidth+\columnsep}{\dimexpr \ht#3+\dp#3}%
    {\dimexpr \columnwidth+\columnsep}{0pt}[bottom#1]%
  \begin{staticcontents*}{top#1}%
    \box#2
  \end{staticcontents*}%
  \begin{staticcontents*}{bottom#1}%
    \box#3
  \end{staticcontents*}%
}
\newcommand{\FFtwothree}[3]{% #1 = page number, #2 = top, #3 = bottom
  \setlength{\dimen0}{\dimexpr \textheight-\ht#2-\dp#2}% bottom of top
  \newstaticframe[#1]{\dimexpr 2\columnwidth+\columnsep}{\dimexpr \ht#2+\dp#2}%
    {0pt}{\dimen0}[top#1]%
  \setlength{\dimen1}{\dimexpr \ht#3+\dp#3+\floatsep}% bottom of text
  \setlength{\dimen0}{\dimexpr \dimen0-\textfloatsep-\dimen1}% height of text
  \newflowframe[#1]{\columnwidth}{\dimen0}{0pt}{\dimen1}[leftcolumn#1]%
  \newflowframe[#1]{\columnwidth}{\dimen0}{\dimexpr \columnwidth+\columnsep}{\dimen1}[centercolumn#1]%
  \newflowframe[#1]{\columnwidth}{\dimexpr \textheight-\dimen1}%
    {\dimexpr \textwidth-\columnwidth}{\dimen1}[rightcolumn#1]%
  \FFrules{#1}%
  \newstaticframe[#1]{\textwidth}{\dimexpr \ht#3+\dp#3}{0pt}{0pt}[bottom#1]%
  \begin{staticcontents*}{top#1}%
    \box#2
  \end{staticcontents*}%
  \begin{staticcontents*}{bottom#1}%
    \box#3
  \end{staticcontents*}%
}
\newcommand{\FFtwotwo}[3]{% #1 = page number, #2 = top, #3 = bottom
  \setlength{\dimen0}{\dimexpr \textheight-\ht#2-\dp#2}% bottom of top
  \newstaticframe[#1]{\dimexpr 2\columnwidth+\columnsep}{\dimexpr \ht#2+\dp#2}%
    {0pt}{\dimen0}[top#1]%
  \setlength{\dimen1}{\dimexpr \ht#3+\dp#3+\floatsep}% bottom of text
  \setlength{\dimen2}{\dimexpr \dimen0-\textfloatsep-\dimen1}% height of text
  \newflowframe[#1]{\columnwidth}{\dimexpr \dimen2+\dimen1}{0pt}{0pt}[leftcolumn#1]%
  \newflowframe[#1]{\columnwidth}{\dimen2}{\dimexpr \columnwidth+\columnsep}{\dimen1}[centercolumn#1]%
  \newflowframe[#1]{\columnwidth}{\dimexpr \textheight-\dimen1}%
    {\dimexpr \textwidth-\columnwidth}{\dimen1}[rightcolumn#1]%
  \FFrules{#1}%
  \newstaticframe[#1]{\dimexpr 2\columnwidth+\columnsep}{\dimexpr \ht#3+\dp#3}%
    {\dimexpr \columnwidth+\columnsep}{0pt}[bottom#1]%
  \begin{staticcontents*}{top#1}%
    \box#2
  \end{staticcontents*}%
  \begin{staticcontents*}{bottom#1}%
    \box#3
  \end{staticcontents*}%
}
% end of flowfram commands

\title{\titleText}% must go before abstract

\author{%
    {\normalsize\bfseries \authorText} \\[1ex]
    \normalsize \uniName \\
    }
    
\date{\today}

\begin{abstract}% must go before flowfram setup
    \noindent \abstractText
\end{abstract}
\FFtoptwo{1}{\titlebox}

% Second page setup
\begin{threecolbox}[figure]{\topbox}
  \includegraphics[width=\textwidth]{example-image-c}
  \caption{\lipsum[1][1-2]}
\end{threecolbox}
\begin{twocolbox}[table]{\bottombox}
  \caption{\lipsum[1][1]}
  \label{table:stats}
  \sisetup{
    table-alignment-mode = format,
    table-number-alignment = center,
  }
  \setlength\tabcolsep{0pt}
  \begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}cccccccccc@{}}
  \toprule
  \multicolumn{1}{c}{\textbf{Year}} &
  \multicolumn{1}{c}{\textbf{\begin{tabular}[c]{@{}c@{}}Num. of\\ Samples\end{tabular}}} &
  \multicolumn{1}{c}{\textbf{\begin{tabular}[c]{@{}c@{}}Mean\\ (\unit{\nano\gram\per\litre})\end{tabular}}} &
  \multicolumn{1}{c}{\textbf{\begin{tabular}[c]{@{}c@{}}SD\\ (\unit{\nano\gram\per\litre})\end{tabular}}} &
  \multicolumn{1}{c}{\textbf{CoV}} &
  \multicolumn{1}{c}{\textbf{\begin{tabular}[c]{@{}c@{}}Lower\\ range\end{tabular}}} &
  \multicolumn{1}{c}{\textbf{25}} &
  \multicolumn{1}{c}{\textbf{Median}} &
  \multicolumn{1}{c}{\textbf{75}} &
  \multicolumn{1}{c}{\textbf{\begin{tabular}[c]{@{}c@{}}Upper\\ range\end{tabular}}} \\ \midrule
  2005 & 2   & 5.21  & 0.34  & 0.0653 & 4.87   & 5.04  & 5.21   & 5.38  & 5.55 \\
  2008 & 30  & 1.15  & 0.632 & 0.55   & 0.506  & 0.762 & 0.9195 & 1.36  & 3.31 \\
  2012 & 104 & 6.86  & 6.8   & 0.991  & 0.825  & 2.68  & 4.14   & 8.86  & 34.2 \\
  2013 & 403 & 7     & 8.08  & 1.15   & 0.5    & 1.83  & 3.92   & 9.06  & 50.4 \\
  2014 & 103 & 7.67  & 7.47  & 0.974  & 0.52   & 2.45  & 5.57   & 9.65  & 36.9 \\
  2016 & 31  & 1.15  & 1.47  & 1.28   & 0.166  & 0.335 & 0.539  & 1.02  & 6.15 \\
  2017 & 34  & 1.67  & 2.25  & 1.35   & 0.163  & 0.346 & 0.6195 & 1.48  & 8.13 \\
  2018 & 51  & 1.56  & 1.65  & 1.06   & 0.0536 & 0.531 & 1.03   & 1.67  & 8.81 \\
  2019 & 127 & 1.09  & 1.55  & 1.42   & 0.032  & 0.296 & 0.49   & 1.04  & 11   \\
  2020 & 32  & 1.94  & 3.76  & 1.94   & 0.15   & 0.385 & 0.52   & 1.35  & 20   \\
  2021 & 349 & 0.503 & 0.8   & 1.59   & 0.03   & 0.13  & 0.29   & 0.57  & 10   \\
  2022 & 28  & 0.278 & 0.342 & 1.23   & 0.034  & 0.09  & 0.15   & 0.303 & 1.6 \\ \bottomrule
  \end{tabular*}
\end{twocolbox}
\FFthreetwo{2}{\topbox}{\bottombox}

% third page setup
\begin{twocolbox}[table]{\bottombox}
\caption{\lipsum[1][1]}
\label{tab:my-table}
\centering
\begin{tabular}{@{}lccc@{}}
\toprule
\multicolumn{1}{c}{\multirow{2}{*}{\textbf{Samples}}} & \textbf{E1}     & \multicolumn{1}{c}{\textbf{E2}} & \textbf{EE2}    \\
\multicolumn{1}{c}{}                                  & \textbf{Values} & \textbf{Values}                  & \textbf{Values} \\ \midrule
Total                                     & 1294   & 1640   & 1498   \\
Average per year                          & 107.83 & 136.67 & 124.83 \\
Average per year (2000-2022)              & 56.26  & 71.30  & 65.13  \\
Average per month                         & 8.99   & 11.39  & 10.40  \\
Average per month (2000-2022)             & 4.69   & 5.94   & 5.43   \\
Average per week                          & 2.07   & 2.63   & 2.40   \\
Average per week (2000-2022)              & 1.08   & 1.37   & 1.25   \\
Average per day (assuming 365 days)       & 0.30   & 0.37   & 0.34   \\
Average per day (2000-2022)               & 0.15   & 0.20   & 0.18   \\
Days between each measurement             & 3.38   & 2.67   & 2.92   \\
Days between each measurement (2000-2022) & 6.49   & 5.12   & 5.60   \\ \bottomrule
\end{tabular}
\end{twocolbox}
\FFbottomtwo{3}{\bottombox}

\FFnormal{4}

\begin{document}
\sloppy
\firstLetterText{4}{L}orem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut tristique et egestas quis ipsum suspendisse ultrices gravida. Nibh ipsum consequat nisl vel pretium. Molestie nunc non blandit massa enim nec dui nunc mattis. Facilisi cras fermentum odio eu feugiat pretium nibh. Suspendisse faucibus interdum posuere lorem ipsum dolor sit amet consectetur. Varius morbi enim nunc faucibus a. Pellentesque elit eget gravida cum sociis natoque penatibus. Arcu risus quis varius quam quisque. Lacus vel facilisis volutpat est velit egestas dui id ornare. Facilisi etiam dignissim diam quis enim lobortis. Amet consectetur adipiscing elit ut aliquam purus. Gravida in fermentum et sollicitudin.

\lipsum[1-5]

\section{Section 1}
\lipsum[1-20]
  
\printbibliography
\end{document}
6
  • I'm getting this error when compiling: ! Undefined control sequence. \@BTswitch ->{\CT@arc@ \hrule \@height \@thisrulewidth }\futurenonspacelet \... l.190 \end{minipage}}. Is it compiling on your system? I am assuming my TeX live versions are older. I commented out the tables and the figures are exactly what I am looking for
    – JamesT
    Jan 11, 2023 at 20:04
  • 1
    I could possibly create a command to format a page, but if you allow more than one static frame per page it gets complicated. Not today, however. Jan 11, 2023 at 21:22
  • That's fine thank you, I will put the bounty up tomorrow so there is plenty of time, I do not understand your code otherwise I would give it a go. Is it advisable for me to update my TeX live version to the most recent one to potentially get rid of the error I get that you don't?
    – JamesT
    Jan 12, 2023 at 10:38
  • 1
    The bounty means nothing to me, as there are no more super powers to ge gained. Also, I remembered what the setup stuff was all about (aux file replacement). Jan 12, 2023 at 16:19
  • 1
    One can use normal one column floats, but the caption numbers will be out of sequence. There are a number of ways to fix this. I'm leaning toward a solution using dynamic frames instead of static frames, Jan 13, 2023 at 16:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .