疑似アルゴリズムに 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. 実行しても End For を取得できません。
  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

関連情報