3.2.3. Tex文章にアルゴリズム(疑似コード)を書く方法¶
3.2.3.1. はじめに¶
擬似コード (ぎじコード、英: pseudocode )とは、アルゴリズムなどを、架空の非常に高水準なプログラミング言語(擬似言語)で記述したものである。 フローチャートよりもプログラミング言語に近いので理解しやすいかもしれない。
この記事は
TeX論文にアルゴリズム(疑似コード)を書く方法 https://qiita.com/jirojiro/items/0ae13aac9112a804f8d5
algorithmicxを使いLaTeXに擬似コードを追加 https://qiita.com/tomoyk/items/6016123b5c9034bb0087
を参考にまとめた。
3.2.3.2. 準備¶
conf.py
の中の preamble
のところで:
\usepackage{algpseudocode}
\usepackage{algorithm}
と定義して、疑似コード用パッケージを呼び出す。 texlive-science
でpythonをインストールしておけば
algorithm2e
algorithmicx
algorithms
などが入っているのでパッケージの呼び出しに問題はないはずである。
最終的に、
のような形を目指す。
3.2.3.3. 書き方¶
上の例は、
.. raw:: latex
\makeatletter
\renewcommand{\ALG@name}{アルゴリズム}
\makeatother
\begin{algorithm}[tb]
\caption{疑似アルゴリズム記法:配列から最大値を求める関数}
\begin{algorithmic}[1]
\Function {max\_in\_array}{$array$}
\State $max \gets 0$
\ForAll {$element \gets array$}
\If {$element > max$}
\State $max \gets element$
\EndIf
\EndFor
\State \Return $max$
\EndFunction
\end{algorithmic}
\end{algorithm}
のようにsphinxからlatexのコマンドを直接呼び出す形となる。
3.2.3.4. 疑似コードの記述方法¶
以下、疑似アルゴリズムの記述方法を
TeX論文にアルゴリズム(疑似コード)を書く方法 https://qiita.com/jirojiro/items/0ae13aac9112a804f8d5
より転載。
単純代入:
\STATE <text>
if文:
\IF{<condition1>} \STATE some processing \ELSIF{<condition2>} \STATE some processing \ELSE \STATE some processing \ENDIF
forループ:
\FOR{<condition>} \STATE some processing \ENDFOR
whileループ:
\WHILE{<condition>} \STATE some processing \ENDWHILE
repeat-untilループ:
\REPEAT \STATE some processing \UNTIL{<condition>}
論理演算:
<expression> \AND <expression> <expression> \OR <expression> <expression> \XOR <expression> \NOT <expression>
前提条件:
\REQUIRE <condition>
事後条件:
\ENSURE <condition>
return文:
\RETURN <text>
真偽:
\RETURN \TRUE \RETURN \FALSE
文字のプリント:
\PRINT <text>
コメント:
\COMMENT{<comment>}