KTUGFaq

KTUG FAQ

로그인:
비밀번호:
가입
Even the smallest candle burns brighter in the dark.
FrontPage › Algorithm
Algorithms 은 Rogerio Brito 가 만든 알고리즘 표현 패키지이다. CS 분야에서는 각종 알고리즘을 표현해야 하는 경우가 많은데 이경우 편리하게 사용할 수 있다.

algorithmic 환경

algorithmic 환경은 item 을 기반으로 하기 때문에 제일 처음에 명령어가 나와야 한다. [1] 은 번호를 하나씩 붙이라는 의미가 된다.

\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 g.c.d. is b}
\EndProcedure
\end{algorithmic}

algorithm 환경

이를 float 하게 만들기 위해서는 algorithm 을 이용하면 된다.
\begin{algorithm}
\caption{Euclid’s algorithm}\label{euclid}
\begin{algorithmic}[1]
...
\end{algorithmic}
\end{algorithm}

\listofalgorithms 도 제공된다.

memoir 와의 충돌해결

float 때문에 memoir 를 사용하면 문제가 생긴다. 이는 다음과 같이 해결한다. 참고 KTUGOperate:18108

\documentclass{memoir}

\let\MEMOIRnewfloat\newfloat
\let\newfloat\relax
\usepackage{algorithm}
\usepackage{algpseudocode}
\let\newfloat\MEMOIRnewfloat

comment 모습 바꾸기

가끔 C++ 스타일로 커멘트를 만들고 싶을 때가 있다. 이경우는 다음과 같이 한다.

\renewcommand{\algorithmiccomment}[1]{\hfill// #1}

예제 및 결과

간단한 유클리드 알고리즘의 예이다.

\documentclass{memoir}

\let\MEMOIRnewfloat\newfloat
\let\newfloat\relax
\usepackage{algorithm}
\usepackage{algpseudocode}
\let\newfloat\MEMOIRnewfloat

\renewcommand{\algorithmiccomment}[1]{// #1}

\begin{document}

\listofalgorithms

\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 $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 g.c.d. is b}
\EndProcedure
\end{algorithmic}
\end{algorithm}

\end{document}

결과는 다음과 같다.
a.jpg

algorithmicx 패키지

algorithmic 패키지를 더 확장한 것이 algorithmicx 패키지이다. \usepackage{algpseudocode} 를 사용함으로서 자동적으로 이용하게 된다. 패키지 설명은 다음과 같다. @algorithmicx.pdf (191.55 KB)

Introduction to Algorithms, Second Edition.

알고리즘에 관해서 바이블 격인 이 책의 LaTeX clrscode.sty 는 다음의 위치에서 구할 수 있다. http://www.cs.dartmouth.edu/~thc/clrscode/

참고

다른 프로그래밍 관련 페이지는 SourceCodeListing을 보면 된다.

패키지 설명파일은 다음과 같다. @algorithms.pdf (320.39 KB)



^
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-01-11 01:30:26
Processing time 0.0459 sec