# Write pseudo code in latex

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:

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

This is what can be done with algorithmicx:

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}

• Yes it does. en.wikibooks.org/wiki/LaTeX/Algorithms – pratnala Nov 1 '15 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 '15 at 9:08
• I would rather recommend algorithm2e, since that is currently maintained: ctan.org/pkg/algorithm2e – lindhe Nov 25 '17 at 9:29
• @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
• 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?