TeXでのアルゴリズム(擬似コードの記述) algorithms パッケージ
今回は少しマイナーな話になってしまうが、LaTeXで次のようなアルゴリズムを表現する方法について紹介する。
「TeXインストーラー3」のような標準的なインストーラには、このようなアルゴリズムを美しく出力するためのパッケージが含まれていないことが一般的なので、後から必要なものを個別に追加することになる。
今回は、algorithms というパッケージを使用する。
これは次のページからダウンロードできる。
■CTAN directory: /macros/latex/contrib/algorithms
http://tug.ctan.org/tex-archive/macros/latex/contrib/algorithms/
上記Webページの上部にある「zip file」のリンクからファイルをダウンロードして解凍する。
その後、コマンドプロンプトで解凍後のフォルダに移動して次のように入力して
C:\somewhere\algorithms\>platex algorithms.ins
とする。
このようにしてできた algorithmic.sty と algorithms.sty ファイルを、TeXのパスの通った場所に配置する。
一番簡単なのは、.tex ファイルと同じ場所に置くこと。
あとは、.tex の中に次のように記述すればよい。
\usepackage{algorithm} \usepackage{algorithmic}
これで問題無く使用できるといいのだが、私が使用した時には、algorithmic.sty でエラーが発生してしまったので、次の行をコメントアウトして対応した。
\newcommand{\AND}{\algorithmicand{} }
冒頭のアルゴリズム例はパッケージのマニュアルにあるもので、次のように記述されている。
詳しくは、ダウンロードしたファイルに含まれるマニュアル algorithms.pdf を参照すること。
\begin{algorithm} \caption{Calculate $y = x^n$} \label{alg1} \begin{algorithmic} \REQUIRE $n \geq 0 \vee x \neq 0$ \ENSURE $y = x^n$ \STATE $y \Leftarrow 1$ \IF{$n < 0$} \STATE $X \Leftarrow 1 / x$ \STATE $N \Leftarrow -n$ \ELSE \STATE $X \Leftarrow x$ \STATE $N \Leftarrow n$ \ENDIF \WHILE{$N \neq 0$} \IF{$N$ is even} \STATE $X \Leftarrow X \times X$ \STATE $N \Leftarrow N / 2$ \ELSE[$N$ is odd] \STATE $y \Leftarrow y \times X$ \STATE $N \Leftarrow N - 1$ \ENDIF \ENDWHILE \end{algorithmic} \end{algorithm}
以下、関連リンク
■LaTeX/Algorithms and Pseudocode (WIKI BOOKS)
■TeX入門/各種パッケージの利用 (TeX Wiki)
■algorithmic.sty の説明
関連エントリ
■ 論文での疑似コードの書き方
LaTeXの解説書としては、次の「LaTeX2ε美文書作成入門」が定番。一冊手元に置いておいて間違いはない。
- 作者: 奥村晴彦,黒木裕介
- 出版社/メーカー: 技術評論社
- 発売日: 2017/01/24
- メディア: 大型本
- この商品を含むブログ (2件) を見る
C言語による最新アルゴリズム事典 (ソフトウェアテクノロジー)
- 作者: 奥村晴彦
- 出版社/メーカー: 技術評論社
- 発売日: 1991/03/01
- メディア: 単行本
- 購入: 20人 クリック: 396回
- この商品を含むブログ (96件) を見る