LaTeX中算法环境设置

来源:互联网 发布:淘宝卖家公益怎么收费 编辑:程序博客网 时间:2024/06/06 10:51

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:

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.

shareeditflag
 
 
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?

\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

shareeditflag
 add comment

Your Answer


0 0
原创粉丝点击