LaTeX

LaTeX 에서 알고리즘 pseudo code 넣기

ForceCore 2009. 3. 29. 14:07
우분투에서는
# apt-get install texlive-science
패키지를 설치하면 사용할 수 있게 된다.

latex algorithms 패키지를 쓰려고 했는데 안 되더군...
아마도 다른 패키지로 대체되어서 그런 듯 싶다.
algorithmicx 패키지를 쓰면 된다.

\usepackage{algorithm}
\usepackage{algpseudocode}

hyperref 를 쓰고 있다면 그것보다 뒤에 배치해야 됨.

\newcommand{\factorial}{\ensuremath{\mbox{\sc Factorial}}}
\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 gcd is b}
\EndProcedure
\end{algorithmic}
\end{algorithm}

원래 algorithmicx 패키지 매뉴얼에 있는 -_- 에제 코드이다.


이렇게 된다.

자세한 사용법은 설명하지 않아도 될 듯 하다 -_-;;;
웬만한 것은 위의 코드를 베끼면 될 것 같고, 더 자세한 것이 필요하면
algorithmicx 패키지 매뉴얼을 찾아서 읽어보라. 구글 검색으로;;

참고로 본문중에 알고리즘을 넣으려면... (다 대문자인데, 첫 대문자만 크고 나머지는 대문자이지만크기만 작은...)
\newcommand{\algname}[1]{{\sc #1}}

....
\algname{Euclid}
이런 식으로 명령어를 정의해서 쓰면 편하다?