I've been trying to make a large table that automatically breaks across pages and columns similar to what's described here.
However, as you can see in the images, table breaks way too soon and the caption is placed awkwardly with away from the top. Here's my MWE (you can compile on overleaf here):
\documentclass[journal=nalefd,manuscript=letter]{achemso}
\usepackage{xtab}
\usepackage{array, booktabs, caption, multicol}
\makeatletter
\let\mcnewpage\newpage
\newcommand{\changenewpage}{%
\renewcommand\newpage{%
\if@firstcolumn
\hrule width\columnwidth height0pt
\columnbreak
\else
\mcnewpage
\fi
}}
\makeatother
\title{test}
\begin{document}
\begin{multicols*}{2}
\changenewpage
\tablehead{
\toprule
Symbol&Description&Unit&hi\\
\midrule
}
\tabletail{\midrule}
\tablelasttail{\bottomrule}
\topcaption{Caption}
\begin{xtabular}{*{4}{c}}
\centering
\input{data.txt}
\end{xtabular}
\end{multicols*}
\end{document}
Why is this happening and how can I fix it?

data.txtare not available to others, the ouput you show can not be reproduced. – leandriis Oct 13 '19 at 09:33