分割长算法(存储IF和ELSE结构)

分割长算法(存储IF和ELSE结构)

我有一个很长的算法,我想把它分成两页。像这样:

\documentclass{article}
\usepackage{algorithm}
\usepackage{algpseudocode}  

\begin{document}

\begin{algorithm}
\caption{function}\label{function}
\begin{algorithmic}[1]
\Function{function}{}
    \State $x \gets y$;
    \While{$x < y$}
        \If{$x = y$}
            \State $split \gets split$; %%SPLIT HERE
        \ElsIf{$x = y$} 
            \State $x \gets y$;
        \ElsIf{$x < y$} 
            \State $x \gets y$;
            \State $x \gets y$;  
        \Else 
            \State $x \gets y$;
            \State $x \gets y$;
        \EndIf
    \EndWhile
    \If{$x = y$}
          \If{$x = y$}
              \State $x \gets y$;
          \ElsIf{$x = y$}
              \State $x \gets y$;
          \ElsIf{$x <= y$}
              \State $x \gets y$;
              \State $x \gets y$;
          \Else
              \State $x \gets y$;
              \State $x \gets y$;
          \EndIf
    \ElsIf{$x = y$}
        \State $x \gets y$;
    \EndIf
    \State \Return $x$
\EndFunction
\end{algorithmic}
\end{algorithm}

\end{document}

我找到了一个使用 的解决方案\algstore,但是当将其放在 IF-ELSE 结构中时,它不起作用。我读过一些关于\vsplit- 的内容,但我不确定如何使用它来拆分我的代码。

答案1

不要使用algorithm环境:

\documentclass{article}
\usepackage{algorithm}
\usepackage{algpseudocode}  

\begin{document}

\section{Function}\label{function}

\begin{algorithmic}[1] \Function{function}{}
    \State $x \gets y$;
    \While{$x < y$}
        \If{$x = y$}
            \State $split \gets split$; %%SPLIT HERE
        \ElsIf{$x = y$} 
            \State $x \gets y$;
        \ElsIf{$x < y$} 
            \State $x \gets y$;
            \State $x \gets y$;  
        \Else 
            \State $x \gets y$;
            \State $x \gets y$;
        \EndIf
    \EndWhile
    \While{$x < y$}
        \If{$x = y$}
            \State $split \gets split$; %%SPLIT HERE
        \ElsIf{$x = y$} 
            \State $x \gets y$;
        \ElsIf{$x < y$} 
            \State $x \gets y$;
            \State $x \gets y$;  
        \Else 
            \State $x \gets y$;
            \State $x \gets y$;
        \EndIf
    \EndWhile
    \While{$x < y$}
        \If{$x = y$}
            \State $split \gets split$; %%SPLIT HERE
        \ElsIf{$x = y$} 
            \State $x \gets y$;
        \ElsIf{$x < y$} 
            \State $x \gets y$;
            \State $x \gets y$;  
        \Else 
            \State $x \gets y$;
            \State $x \gets y$;
        \EndIf
    \EndWhile
    \While{$x < y$}
        \If{$x = y$}
            \State $split \gets split$; %%SPLIT HERE
        \ElsIf{$x = y$} 
            \State $x \gets y$;
        \ElsIf{$x < y$} 
            \State $x \gets y$;
            \State $x \gets y$;  
        \Else 
            \State $x \gets y$;
            \State $x \gets y$;
        \EndIf
    \EndWhile
    \If{$x = y$}
          \If{$x = y$}
              \State $x \gets y$;
          \ElsIf{$x = y$}
              \State $x \gets y$;
          \ElsIf{$x <= y$}
              \State $x \gets y$;
              \State $x \gets y$;
          \Else
              \State $x \gets y$;
              \State $x \gets y$;
          \EndIf
    \ElsIf{$x = y$}
        \State $x \gets y$;
    \EndIf
    \State \Return $x$
\EndFunction
\end{algorithmic}

\end{document}

在此处输入图片描述

相关内容