105

I am trying to write pseudo code in my paper. Here is the snippet and image like what I want. Can some one please help me to format it.

\begin{algorithm}
\caption{Euclid’s algorithm}\label{euclid}
\begin{algorithmic}[1]
\Procedure{Euclid}{$a,b$}\Comment{The g.c.d. of a and b}

\State $stringlen\gets length of string$
\State $i\gets patlen$

top:
 \eIf{i > stringlen}{
   return false\;
   }
   {
   \State $j\gets patlen$
  }

loop:
 \eIf{ j == 0}{
   return j+1\;
   }
   {
         \eIf{string(i) > pat(j)}{
            \State $j\gets $j -1$
            \State $i\gets $i -1$
            \State goto loop
            \State Close.
           }
           {
           \State $j\gets patlen$
          }
  }

\EndWhile\label{euclidendwhile}
\EndProcedure
\end{algorithmic}
\end{algorithm}

it should look like this:

Image

Currently it looks messed up. Any help is appreciable ..

146

This is what can be done with algorithmicx:

enter image description here

Code:

\documentclass{article}
\usepackage{amsmath}
\usepackage{algorithm}
\usepackage[noend]{algpseudocode}

\makeatletter
\def\BState{\State\hskip-\ALG@thistlm}
\makeatother

\begin{document}
\begin{algorithm}
\caption{My algorithm}\label{euclid}
\begin{algorithmic}[1]
\Procedure{MyProcedure}{}
\State $\textit{stringlen} \gets \text{length of }\textit{string}$
\State $i \gets \textit{patlen}$
\BState \emph{top}:
\If {$i > \textit{stringlen}$} \Return false
\EndIf
\State $j \gets \textit{patlen}$
\BState \emph{loop}:
\If {$\textit{string}(i) = \textit{path}(j)$}
\State $j \gets j-1$.
\State $i \gets i-1$.
\State \textbf{goto} \emph{loop}.
\State \textbf{close};
\EndIf
\State $i \gets i+\max(\textit{delta}_1(\textit{string}(i)),\textit{delta}_2(j))$.
\State \textbf{goto} \emph{top}.
\EndProcedure
\end{algorithmic}
\end{algorithm}
\end{document} 
  • 2
    Yes it does. en.wikibooks.org/wiki/LaTeX/Algorithms – pratnala Nov 1 '15 at 21:24
  • 5
    It's having problems with seeing \def\BState{\State\hskip-\ALG@thistlm} - how can I fix this? - Undefinied control sequence \BState ->\State \hskip -\ALG ... – SwimBikeRun Nov 25 '15 at 9:08
  • 2
    I would rather recommend algorithm2e, since that is currently maintained: ctan.org/pkg/algorithm2e – lindhe Nov 25 '17 at 9:29
  • 2
    @lindhe notice first that this answer is more than 3 years old. Also, the fact that the latest version of algorithm2e is newer than algorithmicx doesn't mean that the latter is obsolete! – karlkoeller Nov 25 '17 at 18:36
  • 6
    Ah, but there's also a package called algorithmicx.. Why shoudn't I just use that one? – JHBonarius Mar 11 '18 at 14:44

protected by Community Aug 31 '18 at 7:55

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.