Take the 2-minute tour ×
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.

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.

share|improve this question
    
Not sure I undestand: \renewcommand{\thealgorithm}{MyAlgo\arabic{algorithm}}? –  Peter Grill Nov 15 '12 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. –  msh Nov 15 '12 at 20:28
add comment

1 Answer

up vote 6 down vote accepted

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

share|improve this answer
add comment

Your Answer

 
discard

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.