如何在我的伪算法中插入 end for 并使其更节省空间?

如何在我的伪算法中插入 end for 并使其更节省空间?

这是我的伪算法:

\begin{algorithm}[t]
\caption{Generate Disseminated Sequences}\label{euclid}
\begin{algorithmic}[1]
    \Function{output}{$memory,input$}
    \State $\text{initialize}~ B \gets  \text{all zeros}$
    \For{$i = 1$ to ${sizeIn}$\text{+1}} 
    \State $\text{return}~OUTPUT\gets \text{convert \textit{B} to decimal }$
    \For{$j = memorySize$ to $2$}
    \State $M[j+1] \gets M[j]$ 
    \EndFor
    \State $B[i] \gets inputString[i]$ 
    \EndFor
    \EndFunction
\end{algorithmic}
\end{algorithm}

我的问题是

  1. 当我运行它时,并没有得到结束。
  2. 我想减少它所占用的空间但是当我放置\vspace之后\end{algorithmic}\end{algorithm}最后一行时就会超出那些算法空间。

答案1

你可能正在使用

\usepackage[noend]{algpseudocode}

这将删除结构中的所有结束子句。请参阅algpseudocode无结束块文本. 删除noend恢复结束子句的选项。


环境algorithmic定义为列表。之后的空间可以使用etoolbox修补:

在此处输入图片描述

\documentclass{article}

\usepackage{algpseudocode,etoolbox}

\begin{document}

Something above \verb|algorithmic|.

\begin{algorithmic}[1]
  \State First state
  \State Second state
  \State Third state
  \State Last state
\end{algorithmic}

Something below \verb|algorithmic|.

\hrulefill

\AfterEndEnvironment{algorithmic}{\vspace{50pt}}

Something above \verb|algorithmic|.

\begin{algorithmic}[1]
  \State First state
  \State Second state
  \State Third state
  \State Last state
\end{algorithmic}

Something below \verb|algorithmic|.

\end{document}

不过,人们更习惯于在(即浮动块)algorithmic内使用环境。在这方面,请参阅algorithm删除图形后和文本前的空格改变与浮点数周围间距相关的任何参数。

具体来说,您可能有兴趣调整长度\textfloatsep\intextsep

相关内容