의사 알고리즘에 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}

이렇게 하면 구조에서 모든 end-clause가 제거됩니다. 보다algpseudocode끝 블록 텍스트 없음. noendend-clause를 복원하는 옵션을 제거합니다 .


환경 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.

관련 정보