気になっていたので、無理やり(かな?)課題を解消& .aux への書き込みが lineno とタイミングが合っていなかったので ....
>- 課題 figure 環境はフロートなので BoiledEgg は場所が特定できないようで間違ってる
対処案
- プリアンブルに \usepackage{needspace} を追加
- フロートなオブジェクトの直前で、そのオブジェクトがそのページに治るかおおよその高さをチェックし無ければ\newpage 発行しフロート状態を解消
具体例 ... 5行位の図の場合
+\needspace{5\baselineskip} % 5行分の余白がなければ改ページ(段) \begin{figure}[tb] .... \end{figure}
.aux に書き込むタイミングを lineno と同じにした方が良いと思うので \immediate でなく \protected@write にした方が見た目にも良い
- \immediate\@auxout{\string\newlabel{columnside:#1}{{\left@right}{\left@right}}}% + \protected@write\@auxout{}{\string\newlabel{columnside:#1}{{\left@right}{\left@right}}}%