您的位置:首页 > 其它

LaTeX中算法环境设置

2014-01-26 12:44 651 查看
http://tex.stackexchange.com/questions/82888/algorithmic-arbitrary-names-for-algorithms


algorithmic,
arbitrary names for algorithms

up
vote7down
votefavorite

1

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


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

Next code is (by cmhughes) puts A in front of a number:
[code]\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.

cross-referencing algorithms naming
shareeditflag
edited Nov
17 '12 at 18:47




lockstep

114k21295488

asked Nov 15 '12 at 20:19





msh

43228

Not sure I undestand:
\renewcommand{\thealgorithm}{MyAlgo\arabic{algorithm}}
? – Peter
GrillNov
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
start a bounty


1 Answer

activeoldestvotes

up
vote6down
voteaccepted
Is this what you want to achieve?
[code]\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}




shareeditflag
answered Nov 17 '12 at 20:36




egreg

251k206491304

add
comment


Your Answer

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: