一页中三种以上算法的间距问题

一页中三种以上算法的间距问题

我使用算法和 algpseudocode 包。问题是,当我尝试启动第四个过程\函数时,无论第一页剩余多少空间,第四个过程\函数都会从下一页的中间开始,而不是从第三个过程\函数的正下方开始。

然后我尝试放入更多程序。看来多余的程序会自动均匀分布在第二页。(将安排两个额外的程序均匀分布在第二页,等等。)

这个真的很麻烦啊,有谁能告诉我怎么让第四个算法显示在第三个算法下面,就像第三个算法显示在第二个算法下面一样,避免自动排列的问题吗?

\documentclass[12pt]{article}
\usepackage[margin=1in]{geometry}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}


\begin{document}

\begin{algorithm}
\begin{algorithmic}
\Function{ABC}{S}
\If {A}
    \State A
\EndIf
\EndFunction
\end{algorithmic}
\end{algorithm}

\begin{algorithm}
\begin{algorithmic}
\Function{ABC}{S}
\If {A}
    \State A
\EndIf
\EndFunction
\end{algorithmic}
\end{algorithm}

\begin{algorithm}
\begin{algorithmic}
\Function{ABC}{S}
\If {A}
    \State A
\EndIf
\EndFunction
\end{algorithmic}
\end{algorithm}

\begin{algorithm}
\begin{algorithmic}
\Function{ABC}{S}
\If {A}
    \State A
\EndIf
\EndFunction
\end{algorithmic}
\end{algorithm}

\begin{algorithm}
\begin{algorithmic}
\Function{ABC}{S}
\If {A}
    \State A
\EndIf
\EndFunction
\end{algorithmic}
\end{algorithm}

\end{document}

答案1

您的问题严重缺乏具体说明,因此我们只能猜测,但假设您将每个算法设为单独的浮点数,那么它将受浮点参数控制。这些参数由类设置(您没有说明您正在使用哪个类),但在文章中,主要参数是

\setcounter{topnumber}{2}
\renewcommand\topfraction{.7}
\setcounter{bottomnumber}{1}
\renewcommand\bottomfraction{.3}
\setcounter{totalnumber}{3}
\renewcommand\textfraction{.2}
\renewcommand\floatpagefraction{.5}

totalnumber因此,除非您增加或使用[!]忽略参数的选项,否则一页上不能有超过三个浮点数。

MWE 补充道:

\documentclass[12pt]{article}
\usepackage[margin=1in]{geometry}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}

\begin{document}

\begin{algorithm}[!t]
\begin{algorithmic}
\Function{ABC}{S}
\If {A}
    \State A
\EndIf
\EndFunction
\end{algorithmic}
\end{algorithm}

\begin{algorithm}[!t]
\begin{algorithmic}
\Function{ABC}{S}
\If {A}
    \State A
\EndIf
\EndFunction
\end{algorithmic}
\end{algorithm}

\begin{algorithm}[!t]
\begin{algorithmic}
\Function{ABC}{S}
\If {A}
    \State A
\EndIf
\EndFunction
\end{algorithmic}
\end{algorithm}

\begin{algorithm}[!t]
\begin{algorithmic}
\Function{ABC}{S}
\If {A}
    \State A
\EndIf
\EndFunction
\end{algorithmic}
\end{algorithm}

\begin{algorithm}[!t]
\begin{algorithmic}
\Function{ABC}{S}
\If {A}
    \State A
\EndIf
\EndFunction
\end{algorithmic}
\end{algorithm}

\end{document}

相关内容