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.

JamesT
  • 3,169
  • 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. – Teddy van Jerry Jan 11 '23 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 '23 at 14:51
  • Do you want the caption in the same frame as the figure/table or in the first following frame? – John Kormylo Jan 11 '23 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 '23 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. – John Kormylo Jan 11 '23 at 17:39
  • Did you want the bottom table on page 3 (same as figure 2)? – John Kormylo Jan 11 '23 at 18:48
  • @JohnKormylo to be honest, what I am looking for is a more general way to set them if that makes sense? As in, I want the [b] table on page 3 to be able to go any page but the first and last and for the text to flow around it with the column lines not going through it etc, should I update the question so that is more specific? Essentially a method so I can set figures/tables to be either 1, 2 or 3 column width and be top or bottom etc – JamesT Jan 11 '23 at 18:59
  • Alas, that is not how flowfram works. You have to set up each page based on content. – John Kormylo Jan 11 '23 at 19:37
  • @JohnKormylo would manually setting them with whatever method you were going to use or create (i.e. set up the exact figures in those locations from the Q) be enough for me to adapt to different figures and tables in different documents AS LONG as I knew what was going where on each frame? If so, I would still create & award the bounty if it were time consuming/difficult to achieve whilst still balancing the end of the document – JamesT Jan 11 '23 at 19:45
  • You cannot use floats spanning two (or more) "flow frames" columns. What my linked answer show is that you can make some columns shorter to make room for "static frames" where you can insert non floating images and using the package caption to make captions without floats with \captionof. The position of that static images is up to you. – Fran Jan 12 '23 at 03:01
  • @Fran right, I get you, thanks for the advice, I am not very familiar with the flowfram package so I did not know that – JamesT Jan 12 '23 at 10:37

1 Answers1

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}

John Kormylo
  • 79,712
  • 3
  • 50
  • 120
  • 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 '23 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. – John Kormylo Jan 11 '23 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 '23 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). – John Kormylo Jan 12 '23 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, – John Kormylo Jan 13 '23 at 16:36
  • I will start tinkering with flowfram as it appears really useful, been prioritising TiKz as I am weak there. Are you sure you do not want a bounty? I respect what you said but also appreciate the time and effort – JamesT Jan 13 '23 at 17:15