11.13. アルゴリズム 67
11.13
アルゴリズム
研究室では文書にアルゴリズムを記述しなければならないときがあります.ここでは,algorithm環境を紹介しま
す.algorithm環境を使うときは,スタイルオプションに\algorithm"を指定します.例えば\documentstyle[algorithm]{jar
のように使います.algorithm.styはAlainMerigot作のフリーのスタイルファイルです.
Algorithm 11.1Approx-Vertex-Cover(G)
1 C 0
2 E 0
E[G]
3 while E 0
6=0do
4 (u;v )をE0の任意の辺とする
5 C C[fu;v g
6 E
0からu;vを端点とするすべての辺を取り除く
7 return C
\begin{algorithm}{Approx-Vertex-Cover($G$)}
\N $C$\=0
\\ $E'$\=$E[G]$
\\ \While $E'\neq 0$ \Do \>
\\ $(u,v)$を$E'$の任意の辺とする
\\ $C$\= $C\cup \{u,v\}$
\\ $E'$から$u,v$を端点とするすべての辺を取り除く\<
\\ \Return $C$
\end{algorithm}
algorithm環境では,引数として関数名をとります.そして,各行の先頭に,\\を入れます.最初の一行目だけ
は例外で,行番号をつけるときは,\Nで始めます.その後に,命令を書いていきます.
if,then,elseやwhileなど,予約語については,\If, \Then, \Else, \Whileなどのコマンド を使います.す ると,ボールド 体で表示されます.whileループなどで,インデントしたいときは,whileの後に\>を入れ,ルー プ終了の行の最後に\<を加えます.
もっと細かい使い方は,/usr/lo cal/share/tex/inputs/algorithm.styの先頭の部分に使い方が書いてありますの で,それを参照して下さい.
11.14 tgif
T
E
Xとは直接関係ないのですが,ついでということでtgifを紹介します.tgifとは図を描くアプ リケーション です.コマンド 名は\tgif"です.
以下で簡単に使用方法を紹介していきます.簡単なので,すぐに使えるようになるでしょう.なお,本文内の 各種名称などは本テキストの勝手な命名によるものであることを御了承下さい.
11.14.1 tgif
の基礎
tgifでは線分や図形,文字などを全てオブジェクト(パーツ)として扱います.つまり各オブジェクトごとに 移動や拡大縮小が任意に行なえるということです.そのため図の修正などが容易になります.
モード切替
用紙方向 プリント出力
表示倍率
ページ番号
回転
表示形式
フォント
フォントサイズ
フォントサイズ自由化 特殊図形
破線指定
線分形状 線分太さ 線分形式
背景模用
前景模用
色指定
プリンタ
文字強調
自由化有り
選択モード 文字入力モード 四角形モード 円モード 線分モード 多角形モード 扇形モード 丸長方形モード 自由描画モード 回転モード 特殊修正モード
[
モード切替メニュー] [
アイコン説明] [ tgifメニューバー ]
図11.1: tgifのメニューバーと各種説明
tgifでは操作モード として選択モード と描画モード の2つに大きくわけられます.選択モード ではオブジェク トの選択や移動,拡大縮小などを行ない,描画モード では各種図形を入力します.
モード の切替えはMo de メニューやマウスの右クリックで出てくるメニューから行ないます.\-"を選択すれ ば選択モード,それ以外なら各種描画モード です.
また,アイコンメニューの操作方法は基本的にマウスの右・左ボタンで内容変更,中ボタンでメニュー・一覧 操作ですが,アイコンによっても違いがあるのでそれぞれ確認して下さい.
プリント アウト
tgifで書いた図をプ リントアウトする場合は,プ リント出力アイコンをプ リンタに合わせてプ リント命令を出 せばOKです.プ リント出力アイコンの変更を忘れないようにしましょう.
T
E
Xへの取り込み
tgifで書いた図をTE
Xで利用する場合には,ファイルをeps形式で保存しなければなりません.プ リント出力 アイコンをLATEX(EPS)に合わせてプ リント命令を出せば(FileメニューからPrintを選択),epsファイルと して保存されます.ちなみにtgifの標準のファイル形式は\obj"形式です.
T
E
Xで取り込んでxdviで出力を確認する場合,epsファイルは内容(図)は表示されず,図の大きさを表す枠 だけが表示されます.これはxdviの処理を軽くするための処理です.どうしても図が見たい場合はxdviの右下 のほうにある\PSFig"というボタンを押すことによって,図の表示/非表示を切替えることができます.C-gで も可能です.
日本語入力
tgifは標準では日本語を使うことができません.日本語を使いたい場合はtgifとは別に,kinput2 &などと入
力してkinput2を起動しておく必要があります.
tgif での日本語入力操作はmuleなどとは違うので注意して下さい.文字入力モード(モード 切替え メニュー のT)で,C-[SAPCE]とすると日本語入力モード に入ります.C-jで変換,C-dで一文字削除,C-lで確定など ができます.カーソルの位置移動などはマウスで選んでしまうのが楽でしょう.また,TABキーで一時的に日本 語モード を抜けることもできます.これ以上の細かい操作については各自で調査して下さい.
日本語を使う場合は,フォントでちゃんと日本語フォントを指定しておかないと文字化けしてしまいますので,
その点も注意して下さい.
フォント 指定
日本語入力にも少し関連してきますが,tgifで使えるフォントは限られています.日本語ではRyumin(明朝
体),Gothicの二つ.英語ではTimesとCourierの二つです.英語の場合,他のフォントでも表示できますが,
プ リンタが上記2つの英語フォントしか印刷できないため,印刷時は強制的にフォントが変更されてしまいます.
使わないほうがいいでしょう.
プルダウンメニューウィンド ウの移動
プルダウンメニューのウィンド ウは表示位置を移動させることができます.プルダウンメニューを出した状態 からマウスをド ラッグするだけで移動できます.複数のメニューを画面内のあちこちに配置することも可能です.
このメニューのコマンド を実行したい場合は,マウスの真中のボタンを使います.うまく使えば,快適な操作環 境をつくれるかもしれません.
ショート カット キー
tgifのコマンド の多くにはショートカットキー(ホットキー)が設定されています.メニューのなかで,^と書 かれているものはコントロールキーを押しながら,#と書かれているものはメタキーを押しながら,^#と書かれ ているものはコントロールキーとメタキーを押しながら指定のキーを押せば実行できます.メニューを出す必要 がなく,ダ イレクトに操作できるので覚えれば操作のスピード アップが可能です.
選択モード における各種操作
領域の選択 マウスの左ボタンを押してそのままド ラッグしてボタンを離すと,ボタンを押した位置を左上,離し たところを右下とする四角形の領域を選択したことになります.こうすると,この領域内のオブジェクトを 全て選択できます.
オブジェクト の拡大縮小 オブジェクトを選択するとオブジェクトの 周囲に■が複数表示されます.この■をマウスで選んでド ラッ グすることによってオブジェクトの拡大や縮小が可能です.角 の■なら任意の拡大縮小が,辺の途中の■なら縦もしくは横方 向への拡大縮小ができます.
拡大縮小 移動
オブジェクト の移動 オブジェクトを選択した状態で,オブジェクトの前景部分(図そのものの部分)を選んでド ラッグするとオブジェクトの移動が可能です.もしくは,オブジェクトを選択した状態でキーボードの方向 キーでも移動できます.
図形入力のキャンセル
図形を指定している途中に間違えてしまった場合,図形を確定しておいてから削除でもいいですが,指定途中 でエスケープキーを押せば指定のキャンセルが可能です.ただし,何も指定していない状態まで戻ってしまうと いうことに留意しておいてください.もしかしたら確定してから修正した方が早いという場合もあるかもしれま せん.
Fileメニュー
保存したファイルのオープンやファイルの保存は「Fileメニュー」から行なうことができます.多くの形式の ファイルを読み込んだり,選択した一部のオブジェクトのみ保存することができます.
Editメニュー
オブジェクトの削除やコピーなど,オブジェクトそのものの編集をしたい時には「Edit メニュー 」から選び ます.
Arrangeメニュー
オブジェクトの性質(属性)を変更したい時には「Arrangeメニュー」から選びます.オブジェクトにはいろ いろな属性がついており,それを変更することで,様々な変化を表現することができます.
11.14.2 tgif
有効利用のコツ
以下ではtgifを使う上で知っていると美味しいなということを紹介しておきます.
オブジェクト の複数同時指定 マウスで領域を選択する以外にも,コントロールキーを押しながらオブジェクト を選択すると複数のオブジェクトを同時に選択することが可能です.複数選んだなかから一部だけを選択から外 すということもコンロールキーを押しながらやれば可能です.
オブジェクト の前後関係 全てのオブジェクトには前後関係が存在します.大きな黒い四角のオブジェクトと小 さな丸のオブジェクトがあった場合,大きいオブジェクトが小さいオブジェクトの前にあると,小さいオブジェク トは隠れてしまって見えなくなるでしょう.このような場合は前後関係を変更してやる必要があります.メニュー
のArrangeのFrontやBackで変更が可能です.ショートカットキーを覚えましょう.あとで触れるオブジェク
トの前景背景と組み合わせるといろいろと微妙な図形を書くことができます.
オブジェクト のグループ化 あるまとまった図形を移動させたりするのに,いちいち範囲指定などで全オブジェ クトを選択していては面倒です.そこでtgifにはオブジェクトのグループ化という概念が存在します.グループ 化されたオブジェクトは全体でひとつのオブジェクトとして扱うことができるので,移動や前後関係の変更も一 括で行なえます.当然グループを解除することもできますし,グループをさらにグループ化することも可能です.
コマンド はArrangeメニューのGroup,Ungroupです.ショートカットキーを覚えましょう.