7

The question is advanced version of my previous one. I need to name algorithms (package algorithmic) with arbitrary names so it appears like:

Algorithm MyAlgo

and \ref{...} will appear like MyAlgo.

Next code is (by cmhughes) puts A in front of a number:

\documentclass{article}

\usepackage{algorithm}
\usepackage{algpseudocode}
\renewcommand{\thealgorithm}{A\arabic{algorithm}}

\begin{document}

\begin{algorithm}
    \caption{Euclid’s algorithm}
    \label{alg:euclid}
    \begin{algorithmic}[1]
        \Procedure{Euclid}{$a,b$}\Comment{The g.c.d. of a and b}
        \State $r\gets a\bmod b$
        \While{$r\not=0$}\Comment{We have the answer if r is 0}
        \State $a\gets b$
        \State $b\gets r$
        \State $r\gets a\bmod b$
        \EndWhile\label{euclidendwhile}
       \State \textbf{return} $b$\Comment{The gcd is b}
       \EndProcedure
   \end{algorithmic}
\end{algorithm}

Test reference: \ref{alg:euclid}

\end{document}

But how to do it for arbitrary algorithm name?

EDIT: Maybe I was unclear in my question. What I need is assigning to algorithms arbitrary names without numbering, so that \ref{...} will appear as name of the algorithm.

2
  • Not sure I undestand: \renewcommand{\thealgorithm}{MyAlgo\arabic{algorithm}}? Commented Nov 15, 2012 at 20:24
  • I don't understand it too but it works to make names like Algorithm A1 instead Algorithm 1 A1. Now I want to give arbitrary names to algorithms. Commented Nov 15, 2012 at 20:28

1 Answer 1

6

Is this what you want to achieve?

\documentclass{article}

\usepackage{algorithm}
\usepackage{algpseudocode}

\newenvironment{varalgorithm}[1]
  {\algorithm\renewcommand{\thealgorithm}{#1}}
  {\endalgorithm}

\begin{document}

\begin{varalgorithm}{Euclid}
    \caption{Euclid's algorithm}
    \label{alg:euclid}
    \begin{algorithmic}[1]
        \Procedure{Euclid}{$a,b$}\Comment{The g.c.d. of a and b}
        \State $r\gets a\bmod b$
        \While{$r\not=0$}\Comment{We have the answer if r is 0}
        \State $a\gets b$
        \State $b\gets r$
        \State $r\gets a\bmod b$
        \EndWhile\label{euclidendwhile}
       \State \textbf{return} $b$\Comment{The gcd is b}
       \EndProcedure
   \end{algorithmic}
\end{varalgorithm}

\begin{varalgorithm}{Ten}
\caption{Count to ten}\label{alg:ten}
\begin{algorithmic}
\State $x \gets 1$ 
\While{$x < 10$} 
\State $x \gets x + 1$ 
\EndWhile 
\end{algorithmic}
\end{varalgorithm}

Test reference: \ref{alg:euclid}

Test reference: \ref{alg:ten}

\end{document}

enter image description here

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.