I offer three solutions:
- algorithm split into two floats
- non-floating algorithm with an automatic page break
- non-floating algorithm with a manual page break
Algorithm split into two floats
The structure is as follows. See below for a complete document.
\usepackage{algcompatible}
\newcommand{\AND}{\textbf{and}}
\newcommand{\OR}{\textbf{or}}
\newcommand{\TO}{\textbf{to}}
\usepackage{algorithm}% for the float 'algorithm'
\begin{document}
\begin{algorithm}
\caption{...}\label{...}
\begin{algorithmic}
...
\algstore{myalg}
\end{algorithmic}
\end{algorithm}
\begin{algorithm}
\caption{...}\label{...}
\begin{algorithmic}
\algrestore{myalg}
...
\end{algorithmic}
\end{algorithm}
Non-floating algorithm with an automatic page break
The structure is as follows. See below for a complete document.
\usepackage{algcompatible}
\newcommand{\AND}{\textbf{and}}
\newcommand{\OR}{\textbf{or}}
\newcommand{\TO}{\textbf{to}}
\begin{document}
\begin{algorithmic}
...
\end{algorithmic}
Non-floating algorithm with a manual page break
The structure is as follows. See below for a complete document.
\usepackage{algcompatible}
\newcommand{\AND}{\textbf{and}}
\newcommand{\OR}{\textbf{or}}
\newcommand{\TO}{\textbf{to}}
\begin{document}
\begin{algorithmic}
...
\algstore{myalg}
\end{algorithmic}
\newpage
\begin{algorithmic}
\algrestore{myalg}
...
\end{algorithmic}
Example: Algorithm split into two floats
Because of the extra fonts, use xelatex to typeset the sample code.
\documentclass[a4paper,11pt]{book}
\usepackage{amsthm,amssymb}
\usepackage{unicode-math}
\usepackage{algcompatible}
\usepackage{algorithm}
\makeatletter
\renewcommand\thealgorithm{\thechapter.\arabic{algorithm}}
\@addtoreset{algorithm}{chapter}
\makeatother
\newcommand{\AND}{\textbf{and}}
\newcommand{\OR}{\textbf{or}}
\newcommand{\TO}{\textbf{to}}
\usepackage{xepersian}
\settextfont[Scale=1]{XB Zar}
\setlatintextfont[Scale=1]{Times New Roman}
\setdigitfont[Scale=1]{XM Yekan}
\begin{document}
\begin{algorithm}
\caption{\textbf{استخراج یک شبکهٔ لایهای}}
\label{alg:3-6-e-1}
\begin{algorithmic}
\begin{LTR}
\STATE \textbf{procedure }LAYER$(G_{L},l,\text{stpath});$
\STATE \rl{
$\rbrace$فرایند، شبکهٔ لایهای $G_{L}=\left(V_{L},E_{L}\right)$ با $l$ لایه را از شبکهٔ $G$ با طرح جریان $F$ استخراج میکند. اگر هیچ مسیر $s-t$ ای وجود نداشته باشد، \lr{stpath} مقدار \lr{false} میگیرد.$\lbrace$}
\STATE INITIALIZATION:
\STATE $\text{stpath}\leftarrow\text{true};$
\FORALL{$v\in V$}
\STATE\textbf{begin}
\STATE $\text{label}(v)\leftarrow-1;$
\STATE $\text{succ}(v)\leftarrow\varnothing;$\hspace{5mm}$\lbrace$\rl{جانشینان و سلفهای گرهها در شبکهٔ لایهای}$\rbrace$
\STATE $\text{pred}(v)\leftarrow\varnothing$
\ENDFOR
\STATE $V_{1}\leftarrow\lbrace s\rbrace;$
\STATE $\text{label}(s)\leftarrow1;$
\STATE $E_{L}\leftarrow\varnothing;$\hspace{5mm}$\lbrace$\rl{$E_{L}$ مجموعهٔ یالهای شبکهٔ لایهای}$\rbrace$
\STATE $i\leftarrow1;$\hspace{5mm}$\lbrace$\rl{عدد لایهٔ کنونی $i$ است}$\rbrace$
\STATE ITERATION: \hspace{10mm}$\lbrace$\rl{پیمایش پیشرو و برچسبزنی}$\rbrace$
\WHILE{$(V_{i}\neq\varnothing),,$\AND$,,(\text{label}(t)=-1)$}
\STATE\textbf{begin}
\STATE $V_{i+1}\leftarrow\varnothing;$
\FORALL{$x\in V_{i}$}
\STATE\textbf{begin}
\FOR{\rl{هر یال خروجی $(x,y)$ از $x$، اگر $f_{x y}<c_{x y}$ و برای هر یال ورودی $(y,x)$ به $x$ اگر $f_{y x}>0,,$}\AND $,,(\text{label}(y)=-1,,$\OR$,,\text{label}(y)=i+1)$}
\STATE\textbf{begin}
\STATE $V_{i+1}\leftarrow V_{i+1}\cup\lbrace y\rbrace;$
\STATE $\text{label}(y)\leftarrow i+1;$
\STATE $\text{succ}(x)\leftarrow\text{succ}(x)\cup\lbrace y\rbrace;$
\STATE $\text{pred}(y)\leftarrow\text{pred}(y)\cup\lbrace x\rbrace;$
\STATE $E_{L}\leftarrow E_{L}\cup\lbrace\left(x,y\right)\rbrace$
\ENDFOR
\ENDFOR
\STATE $i\leftarrow i+1$
\ENDWHILE
\algstore{myalg}
\end{LTR}
\end{algorithmic}
\end{algorithm}
\begin{algorithm}
\caption{\textbf{استخراج یک شبکهٔ لایهای}}
\label{alg:3-6-e-2}
\begin{algorithmic}
\begin{LTR}
\algrestore{myalg}
\STATE $l\leftarrow i;$
\STATE ITERATION$:$\hspace{10mm}$\lbrace$\rl{پیمایش پسرو و هرسکردن}
\IF{$\text{label}(t)=-1$}
\STATE $\text{stpath}\leftarrow\text{false}$\hspace{5mm}\rl{خروج}
\STATE \rl{چون مسیر مفیدی از $s$ به $t$ وجود ندارد، برچسبزنی ممکن نیست}
\STATE\textbf{else}
\STATE\rl{یالها و گرههای پراکنده \lr{stray} را حذف کن}
\STATE\textbf{begin}
\STATE $j\leftarrow i;$
\WHILE{$j\neq1$}
\STATE\textbf{begin}
\FORALL{$w\in V_{j}$}
\IF{$\left(\text{succ}(u)=\varnothing\right),,$\AND$,,\left(w\neq t\right)$}
\STATE \textbf{begin}
\FORALL{$x\in\text{pred}(w)$}
\STATE \textbf{begin}
\STATE $E_{L}\leftarrow E_{L}-\left{\left(x,w\right)\right};$
\STATE $\text{succ}(x)\leftarrow\text{succ}(x)-\left{w\right}$
\ENDFOR
\STATE $V_{j}\leftarrow V_{j}-\left{w\right};$
\STATE $\text{pred}(w)\leftarrow\varnothing$
\ENDIF
\STATE $j\leftarrow j-1$
\ENDFOR
\ENDWHILE
\ENDIF
\end{LTR}
\end{algorithmic}
\end{algorithm}
\end{document}
Example: Non-floating algorithm with an automatic page break

Because of the extra fonts, use xelatex to typeset the sample code.
\documentclass[a4paper,11pt]{book}
\usepackage{amsthm,amssymb}
\usepackage{unicode-math}
\usepackage{algcompatible}
\newcommand{\AND}{\textbf{and}}
\newcommand{\OR}{\textbf{or}}
\newcommand{\TO}{\textbf{to}}
\usepackage{xepersian}
\settextfont[Scale=1]{XB Zar}
\setlatintextfont[Scale=1]{Times New Roman}
\setdigitfont[Scale=1]{XM Yekan}
\begin{document}
\begin{algorithmic}
\begin{LTR}
\STATE \textbf{procedure }LAYER$(G_{L},l,\text{stpath});$
\STATE \rl{
$\rbrace$فرایند، شبکهٔ لایهای $G_{L}=\left(V_{L},E_{L}\right)$ با $l$ لایه را از شبکهٔ $G$ با طرح جریان $F$ استخراج میکند. اگر هیچ مسیر $s-t$ ای وجود نداشته باشد، \lr{stpath} مقدار \lr{false} میگیرد.$\lbrace$}
\STATE INITIALIZATION:
\STATE $\text{stpath}\leftarrow\text{true};$
\FORALL{$v\in V$}
\STATE\textbf{begin}
\STATE $\text{label}(v)\leftarrow-1;$
\STATE $\text{succ}(v)\leftarrow\varnothing;$\hspace{5mm}$\lbrace$\rl{جانشینان و سلفهای گرهها در شبکهٔ لایهای}$\rbrace$
\STATE $\text{pred}(v)\leftarrow\varnothing$
\ENDFOR
\STATE $V_{1}\leftarrow\lbrace s\rbrace;$
\STATE $\text{label}(s)\leftarrow1;$
\STATE $E_{L}\leftarrow\varnothing;$\hspace{5mm}$\lbrace$\rl{$E_{L}$ مجموعهٔ یالهای شبکهٔ لایهای}$\rbrace$
\STATE $i\leftarrow1;$\hspace{5mm}$\lbrace$\rl{عدد لایهٔ کنونی $i$ است}$\rbrace$
\STATE ITERATION: \hspace{10mm}$\lbrace$\rl{پیمایش پیشرو و برچسبزنی}$\rbrace$
\WHILE{$(V_{i}\neq\varnothing)\,\,$\AND$\,\,(\text{label}(t)=-1)$}
\STATE\textbf{begin}
\STATE $V_{i+1}\leftarrow\varnothing;$
\FORALL{$x\in V_{i}$}
\STATE\textbf{begin}
\FOR{\rl{هر یال خروجی $(x,y)$ از $x$، اگر $f_{x y}<c_{x y}$ و برای هر یال ورودی $(y,x)$ به $x$ اگر $f_{y x}>0\,\,$}\AND $\,\,(\text{label}(y)=-1\,\,$\OR$\,\,\text{label}(y)=i+1)$}
\STATE\textbf{begin}
\STATE $V_{i+1}\leftarrow V_{i+1}\cup\lbrace y\rbrace;$
\STATE $\text{label}(y)\leftarrow i+1;$
\STATE $\text{succ}(x)\leftarrow\text{succ}(x)\cup\lbrace y\rbrace;$
\STATE $\text{pred}(y)\leftarrow\text{pred}(y)\cup\lbrace x\rbrace;$
\STATE $E_{L}\leftarrow E_{L}\cup\lbrace\left(x,y\right)\rbrace$
\ENDFOR
\ENDFOR
\STATE $i\leftarrow i+1$
\ENDWHILE
\STATE $l\leftarrow i;$
\STATE ITERATION$:$\hspace{10mm}$\lbrace$\rl{پیمایش پسرو و هرسکردن}
\IF{$\text{label}(t)=-1$}
\STATE $\text{stpath}\leftarrow\text{false}$\hspace{5mm}\rl{خروج}
\STATE \rl{چون مسیر مفیدی از $s$ به $t$ وجود ندارد، برچسبزنی ممکن نیست}
\STATE\textbf{else}
\STATE\rl{یالها و گرههای پراکنده \lr{stray} را حذف کن}
\STATE\textbf{begin}
\STATE $j\leftarrow i;$
\WHILE{$j\neq1$}
\STATE\textbf{begin}
\FORALL{$w\in V_{j}$}
\IF{$\left(\text{succ}(u)=\varnothing\right)\,\,$\AND$\,\,\left(w\neq t\right)$}
\STATE \textbf{begin}
\FORALL{$x\in\text{pred}(w)$}
\STATE \textbf{begin}
\STATE $E_{L}\leftarrow E_{L}-\left\{\left(x,w\right)\right\};$
\STATE $\text{succ}(x)\leftarrow\text{succ}(x)-\left\{w\right\}$
\ENDFOR
\STATE $V_{j}\leftarrow V_{j}-\left\{w\right\};$
\STATE $\text{pred}(w)\leftarrow\varnothing$
\ENDIF
\STATE $j\leftarrow j-1$
\ENDFOR
\ENDWHILE
\ENDIF
\end{LTR}
\end{algorithmic}
\end{document}
Example: Non-floating algorithm with a manual page break

Because of the extra fonts, use xelatex to typeset the sample code.
\documentclass[a4paper,11pt]{book}
\usepackage{amsthm,amssymb}
\usepackage{unicode-math}
\usepackage{algcompatible}
\newcommand{\AND}{\textbf{and}}
\newcommand{\OR}{\textbf{or}}
\newcommand{\TO}{\textbf{to}}
\usepackage{xepersian}
\settextfont[Scale=1]{XB Zar}
\setlatintextfont[Scale=1]{Times New Roman}
\setdigitfont[Scale=1]{XM Yekan}
\begin{document}
\begin{algorithmic}
\begin{LTR}
\STATE \textbf{procedure }LAYER$(G_{L},l,\text{stpath});$
\STATE \rl{
$\rbrace$فرایند، شبکهٔ لایهای $G_{L}=\left(V_{L},E_{L}\right)$ با $l$ لایه را از شبکهٔ $G$ با طرح جریان $F$ استخراج میکند. اگر هیچ مسیر $s-t$ ای وجود نداشته باشد، \lr{stpath} مقدار \lr{false} میگیرد.$\lbrace$}
\STATE INITIALIZATION:
\STATE $\text{stpath}\leftarrow\text{true};$
\FORALL{$v\in V$}
\STATE\textbf{begin}
\STATE $\text{label}(v)\leftarrow-1;$
\STATE $\text{succ}(v)\leftarrow\varnothing;$\hspace{5mm}$\lbrace$\rl{جانشینان و سلفهای گرهها در شبکهٔ لایهای}$\rbrace$
\STATE $\text{pred}(v)\leftarrow\varnothing$
\ENDFOR
\STATE $V_{1}\leftarrow\lbrace s\rbrace;$
\STATE $\text{label}(s)\leftarrow1;$
\STATE $E_{L}\leftarrow\varnothing;$\hspace{5mm}$\lbrace$\rl{$E_{L}$ مجموعهٔ یالهای شبکهٔ لایهای}$\rbrace$
\STATE $i\leftarrow1;$\hspace{5mm}$\lbrace$\rl{عدد لایهٔ کنونی $i$ است}$\rbrace$
\STATE ITERATION: \hspace{10mm}$\lbrace$\rl{پیمایش پیشرو و برچسبزنی}$\rbrace$
\WHILE{$(V_{i}\neq\varnothing)\,\,$\AND$\,\,(\text{label}(t)=-1)$}
\STATE\textbf{begin}
\STATE $V_{i+1}\leftarrow\varnothing;$
\FORALL{$x\in V_{i}$}
\STATE\textbf{begin}
\FOR{\rl{هر یال خروجی $(x,y)$ از $x$، اگر $f_{x y}<c_{x y}$ و برای هر یال ورودی $(y,x)$ به $x$ اگر $f_{y x}>0\,\,$}\AND $\,\,(\text{label}(y)=-1\,\,$\OR$\,\,\text{label}(y)=i+1)$}
\STATE\textbf{begin}
\STATE $V_{i+1}\leftarrow V_{i+1}\cup\lbrace y\rbrace;$
\STATE $\text{label}(y)\leftarrow i+1;$
\STATE $\text{succ}(x)\leftarrow\text{succ}(x)\cup\lbrace y\rbrace;$
\STATE $\text{pred}(y)\leftarrow\text{pred}(y)\cup\lbrace x\rbrace;$
\STATE $E_{L}\leftarrow E_{L}\cup\lbrace\left(x,y\right)\rbrace$
\ENDFOR
\ENDFOR
\STATE $i\leftarrow i+1$
\ENDWHILE
\algstore{myalg}
\end{LTR}
\end{algorithmic}
\newpage
\begin{algorithmic}
\begin{LTR}
\algrestore{myalg}
\STATE $l\leftarrow i;$
\STATE ITERATION$:$\hspace{10mm}$\lbrace$\rl{پیمایش پسرو و هرسکردن}
\IF{$\text{label}(t)=-1$}
\STATE $\text{stpath}\leftarrow\text{false}$\hspace{5mm}\rl{خروج}
\STATE \rl{چون مسیر مفیدی از $s$ به $t$ وجود ندارد، برچسبزنی ممکن نیست}
\STATE\textbf{else}
\STATE\rl{یالها و گرههای پراکنده \lr{stray} را حذف کن}
\STATE\textbf{begin}
\STATE $j\leftarrow i;$
\WHILE{$j\neq1$}
\STATE\textbf{begin}
\FORALL{$w\in V_{j}$}
\IF{$\left(\text{succ}(u)=\varnothing\right)\,\,$\AND$\,\,\left(w\neq t\right)$}
\STATE \textbf{begin}
\FORALL{$x\in\text{pred}(w)$}
\STATE \textbf{begin}
\STATE $E_{L}\leftarrow E_{L}-\left\{\left(x,w\right)\right\};$
\STATE $\text{succ}(x)\leftarrow\text{succ}(x)-\left\{w\right\}$
\ENDFOR
\STATE $V_{j}\leftarrow V_{j}-\left\{w\right\};$
\STATE $\text{pred}(w)\leftarrow\varnothing$
\ENDIF
\STATE $j\leftarrow j-1$
\ENDFOR
\ENDWHILE
\ENDIF
\end{LTR}
\end{algorithmic}
\end{document}
\newcommand{\AND}{\textbf{and}} \newcommand{\OR}{\textbf{or}} \newcommand{\TO}{\textbf{to}}added to your preamble. – Werner Oct 25 '23 at 22:40\begin{document}and\end{document}Algorithm is a float, and you can't have a two page float. If algorithmic were breakable, you could manually break it into two floats. But since it isn't breakable, see https://tex.stackexchange.com/questions/204703/multicols-not-breaking-procedures-in-algorithm2e – John Kormylo Oct 26 '23 at 00:17algorithmenvironment, there was no problem. So I guess the error you see originates from somewhere else. You can download the two versions (with and without algorithm) from here. It will expire in 6 days. – gernot Oct 29 '23 at 15:40\begin{document}was buried midline. (And I couldn't compile the code to check because I certainly do get errors as those are not standard fonts.) [For the record, I wasn't suggesting you were lying, in any case. It's much more common for people to simply be mistaken.] – cfr Oct 31 '23 at 03:11