Sign up ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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.

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

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

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

 \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$


it should look like this:


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

share|improve this question
Welcome to TeX.SX! You can have a look at our starter guide to familiarize yourself further with our format. – karlkoeller Mar 5 '14 at 9:07

1 Answer 1

up vote 49 down vote accepted

This is what can be done with algorithmicx:

enter image description here




\caption{My algorithm}\label{euclid}
\State $\textit{stringlen} \gets \text{length of }\textit{string}$
\State $i \gets \textit{patlen}$
\BState \emph{top}:
\If {$i > \textit{stringlen}$} \Return false
\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};
\State $i \gets i+\max(\textit{delta}_1(\textit{string}(i)),\textit{delta}_2(j))$.
\State \textbf{goto} \emph{top}.
share|improve this answer
Does it do while as well? – Thomas Ahle Jun 4 '14 at 9:36
Yes it does. – pratnala Nov 1 at 21:24
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 at 9:08

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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