如何縮排for循環

如何縮排for循環

我有以下演算法程式碼

\begin{algorithm}[t]
    \caption{my algo}
    \label{my algo}
     \begin{algorithmic}[] 
        \State \textbf{Input:}{ abc}
        \State \textbf{Output:}{ xyz}
        \State \textbf{Launch:}{I want to indent the body of this algo afterwards }
        % I want to indent the following body:
        \For{i=0,i<5,i++}
        \For {j=0,i<5,j++ }
        \State{Kill}
            \State{Now}
            \State{There}
             \If {this}
             \State{then this}}
            
        \EndIf    
        \For {z=0,z<10,z++ }
        \State{Action performed on z}
        \EndFor
        \State{abc processed }
        \State{xyz produced}
               
    \EndFor
    % \State{processing done}
    \EndFor
    \end{algorithmic}
   \end{algorithm} 

在第三個「State」語句之後,我想從 for 迴圈開始縮排演算法主體。我怎樣才能做到這一點?目前,for 迴圈直接在「Launch」語句下啟動。

答案1

我用這個技巧解決了同樣的問題(改為\transparent{0.5}生產\transparent{0})。

\begin{algorithm}[!t]
\caption{}\label{}
\begin{algorithmic}

  \STATE whatever

  \transparent{0.5}
  \vspace{-1\baselineskip}
  \IF fake indentation
  \transparent{1}

  \FOR {this for loop gets now indented}
    \STATE whatever
  \ENDFOR

  \transparent{0.5}
  \vspace{-1\baselineskip}
  \ENDIF
  \transparent{1}

\end{algorithmic}
\end{algorithm}

相關內容