Mac OS X での別の方法

トップページ  >>  ソフトウェア  >>  Mac OS X での別の方法

はじめに

『計量経済学の基礎』の中では,X11 環境において Octave (および gnuplot) を利用する方法を紹介していますが,これは,Mac OS X において Octave を使うための唯一の方法ではありません。ここでは,Mac OS X において Octave を使う別のやり方を紹介しましょう。

ここで説明する方法は,Mac OS X 10.3.x (Panther), 10.4.x (Tiger), 10.5.x (Leopard) で使えます。以下では Leopard と Tiger の場合について明示的に説明しますが,Panther の場合は 基本的に Tiger の場合の説明に準じます。

読者の目的や好みによっては,以下で説明する方法のほうが使いやすいと感じるかもしれません。コマンド・ラインでの作業に馴染みのない読者の方にとっては,Octave の使い始めの段階では,画面の様子などが完全に本に記述された通りであるほうが望ましいかもしれませんが,ある程度慣れてきたら,下記の方法も試してみるとよいでしょう。とくに,Leopard ユーザの読者は,以下の方法 1 の使い勝手が最もよいと感じるかもしれません。

以下では,既に実習用ソフトウェアを導入 (SoftwareInstaller*を実行) し,実習環境のセットアップ [HomeDirectorySetup (および Leopard の場合は AdditionalHDSetup) の実行] も終え,Octave 等が本に記述されている通りに (正常に) 機能しているものと仮定して話を始めます。

方法 1:ターミナルと X11 を併用する方法

uxterm (『計量経済学の基礎』1.1.1 項参照) の代わりに Mac OS X 付属の「ターミナル」 アプリケーションを使う方法です。他方,Octave (正確には gnuplot) によってプロットされるグラフの表示は,本の説明と同様に X11 に委ねます。

この方法の利点は,「ターミナル」が Mac OS X ネイティブなアプリケーションであるため,大部分の読者にとっては uxterm よりも扱いやすい (であろう) ことです。たとえば,Mac OS X の他のアプリケーションと同様に command-c で文字列のコピー,command-v でペーストができます。

ターミナル (Terminal.app) と X11 を併用して Octave を使う具体的な方法は次の通りです。

  1. Tiger の場合は,X11 を起動しておきます*1 (『計量経済学の基礎』1.1.1 項参照)。Leopard の場合は,その必要はありません (Octave からグラフをプロットする場合のように X11 環境が必要になると,X11 は自動的に起動します)。
  2. ターミナルは,アプリケーション → ユーティリティ・フォルダ内にあります。アイコンをダブル・クリックして起動します。
  3. すると,『計量経済学の基礎』図 1.1 に似たウィンドウが開きます。(複数のウィンドウを開くには,Leopard の場合,画面上部のメニュー・バーの「シェル」→「新規ウィンドウ」→ (たとえば)「Basic」を選びます。Tiger の場合,「ファイル」→「新規シェル」を選びます。)
  4. Tiger の場合,ターミナルが起動したらその (shell の) コマンド・プロンプトで
    export DISPLAY=:0
    を実行します (Leopard においてはこれは不要です)。
    これを ~/.bashrc に追記しておくと,shell 起動時に自動的に実行される (したがって,ターミナルを再起動後または次の新規ウィンドウから有効になります) ので,ターミナルを開くたびに実行せずに済みます(下記 補足説明も参照)。ファイル名の先頭に . の付くファイル (Finder では非表示) の編集の仕方については,install-mac.pdf の 5.4 項を参照してください。
  5. ターミナルの (shell の) コマンド・プロンプトで Octave を起動します (同書 1.2 節参照)。
  6. Octave (や shell) の利用法は,uxterm を使う場合と同じです。同書 1.1.1 項以降で登場する uxterm のウィンドウ内での操作はすべて,ターミナルのウィンドウ内での操作と読みかえてください。
  7. ターミナル (Terminal.app) を終了するには,メニュー・バーの「ターミナル」メニューから「ターミナルを終了」を選択します。

上述のように「ターミナル」は Mac OS X ネイティブなアプリケーションですから,Mac OS X に慣れた読者であれば,設定変更の方法なども容易に推測できるでしょう。 たとえば,Leopard の場合,「環境設定 ... 」の「テキスト」タブで 「フォント」をクリックすると,書体とサイズを変更することができます。Tiger の場合,これはメニュー・バーの「フォント」メニューから行います。

なお,ターミナルにおいても,バックスラッシュの入力は ¥キー (JIS キーボード) または \キー (US キーボード) で行うことができます。

方法 2:X11 をまったく使わない方法

方法 1 では,グラフの表示には X11 を使いました。ここで紹介する方法では,( uxterm の代わりにターミナルを使い) グラフの表示のために AquaTerm という Mac OS X 用のアプリケーションを利用します。[『計量経済学の基礎』の実習用ソフトウェア・インストーラ (SoftwareInstaller*) を使って Octave をインストールした場合,AquaTerm も既にインストールされています。AquaTerm (AquaTerm.app) は /em/Applications にあります。] したがって,この方法では,X11 をまったく使いません。

AquaTermで表示した実習 6.24 の図
AquaTermで表示した実習 6.24 の図 (クリックすると拡大します)

ターミナル と AquaTerm を使って (すなわち,X11 を使わずに) Octaveを利用する具体的な手順は下記の通りです。(ターミナルの起動・終了の方法等については方法 1 の説明を参照してください。)

  1. ターミナルを起動します。
  2. ターミナルの (shell の) コマンド・プロンプトで Octave を起動します (同書 1.2 節参照)。
  3. Leopard の場合,Octave が起動したらそのコマンド・プロンプトで
    Octave> __gnuplot_set__ terminal aqua
    を実行します。[Tiger においては (方法 1 で説明した DISPLAY 環境変数を設定していないならば) これは不要です。]
    Leopard において AquaTerm を常に利用する場合には,デフォルトのグラフ出力先を AquaTerm にしておけば上記コマンドを実行する必要がなくなります*2。それには,~/.bashrc に
    export GNUTERM=aqua
    と追記します(下記 補足説明も参照)。この設定は,一旦ターミナルを終了して再度起動するか,新規ウィンドウを開くと (そのウィンドウから) 有効になります。ファイル名の先頭に . の付くファイル (Finder では非表示) の編集の仕方については,install-mac-leopard.pdf (Leopard の場合) の 5.4 項を参照してください。
  4. Octave から (gnuplotによって) グラフをプロットすると,AquaTerm が起動してグラフを表示します (上図参照)。
  5. Octave (や shell) の利用法は,uxterm を使う場合と同じです。同書 1.1.1 項以降で登場する uxterm のウィンドウ内での操作はすべて,ターミナルのウィンドウ内での操作と読みかえてください。
  6. Octave やターミナルを終了しても AquaTerm は自動的には終了しません。AquaTerm を終了するには,メニュー・バーの「AquaTerm」メニューから「Quit AquaTerm」を選択します。

uxterm の代わりにターミナルを使うメリットについては,方法 1 の説明を参照してください。以下,AquaTerm を利用するメリット・デメリット (の一部) について簡単に触れます*3

AquaTerm は Mac OS X 用の GUI アプリケーションなので,言うまでもなく,Mac OS X に慣れたユーザには扱いやすいという利点があります。また,Mac OS X に備わっている機能を通常のやり方で簡単に利用できるので便利です。たとえば,メニュー・バーの「Edit」メニューから「Copy」を選んでグラフをコピーし,他のアプリケーション (たとえば,テキストエディット) にペーストすることができます。 あるいは,「File」メニューの「Print...」を選択すれば,グラフを印刷したり,PDF ファイルに保存したりすることができます (「File」メニューの「Save As...」からも PDF や EPS ファイルに保存できます)*4

他方,デメリットとしては,gnuplot の機能の一部が AquaTerm では利用できないことが挙げられます。たとえば,X11 の場合のようにマウスを使って3次元グラフを回転したり,伸縮したり (同書 4.1.3 項参照) することはできません。

なお,(付属 CD-ROM から) ~/emetrics ディレクトリ以下にインストールされているサンプル・スクリプトによってプロットされるグラフはすべて, X11 の利用を想定して見栄えを調整してあるため,AquaTerm で表示すると見にくい場合もあります。これは,線色/ポイントの指定番号と表示される色/形との対応関係や,デフォルトのポイント・サイズ/線幅等が,X11 の場合と AquaTerm の場合で少し異なるからです。(同書 4.1.1 項の最後に説明されている方法で両者における線種,線色,ポイント等の見本をそれぞれ表示してみると,具体的な違いがわかります。)

補足説明

上の 2 つの節では,単に目的を実現するための手順のみを記述しました。それらの中で実行するコマンドのいくつかについて,最後に補足しておきましょう。興味があれば,お読みください。

方法 1 のステップ 4 と 方法 2 のステップ 3 には,shell のコマンド・ラインでコマンドを実行したり,shell (bash) の設定ファイルにそれを記述したりすることが含まれています。また,方法 2 のステップ 3 では,Octave の __gnuplot_set__ というコマンドを使います。以下では,それらについてごく簡単に解説します*5

方法 1 のステップ 4

export DISPLAY=:0

これは,shell の環境変数 DISPLAY に :0 という値を設定するという意味です。: に続く数字はディスプレイ番号です。X11 環境下で動作するアプリケーション (X クライアント) はこの番号を見て,どこに表示等を行うかを決めます。通常は (ひとりのユーザが計算機を占有して使っている場合) ディスプレイ番号は 0 です*6。DISPLAY 環境変数が設定されていると,gnuplot のデフォルトのグラフ出力先が X11 になります。

上記の行を bash の環境設定ファイル .bashrc に記述しておくことで,ターミナルのウィンドウを開いたときに (bash の起動時に) 自動的に実行されるようになります。したがって,そうしておけば,ターミナルのウィンドウを開くたびに上記のコマンドを実行する必要がなくなります。

方法 2 のステップ 3

 Octave> __gnuplot_set__ terminal aqua

Octave の __gnuplot_set__ コマンドは,『計量経済学の基礎』4.6.1項において登場します。このコマンドを __gnuplot_set__ terminal ... という形で使うと,グラフの出力先を ... に変更することができます。Octave のコマンド・ラインで __gnuplot_set__ terminal x11   を実行すると,gnuplot のグラフは X11 で表示されるようになり,__gnuplot_set__ terminal aqua   を実行すると,グラフは AquaTerm を用いて表示されるようになります。(同書付属 CD-ROM に収録されている PDF 文書 appendix4.pdf の 4.7.3 項では, この形で __gnuplot_set__ コマンドを使って,グラフを様々な形式でファイルに保存する方法を説明しています。)

uxterm から Octave を起動したときは (すなわち,X11 環境下では),Leopard においても Tiger においても (shell の DISPLAY 環境変数が自動的に設定されており) グラフの出力先は X11 になっています 。これは,__gnuplot_set__ terminal x11   を実行したのと同じ状態です*7。しかし,ターミナルで Octave を起動したときには,Leopard の場合と Tiger の場合でデフォルトのグラフ出力先が異なります。すなわち,Leopard ではグラフ出力先が (uxterm で Octave を起動したときと同様) X11 になっているのに対して,Tiger では (方法 1 のステップ 4 で説明した DISPLAY 環境変数を設定していなければ) グラフ出力先が AquaTerm になっています。後者は,__gnuplot_set__ terminal aqua   を実行した状態と同じです。

__gnuplot_set__ terminal aqua (x11)   に続けて,様々なオプションを指定することも可能です。興味があれば,『計量経済学の基礎』4.6.1項で説明されている方法で,gnuplot のヘルプを調べてみましょう。(「set」→「terminal」→「aqua」あるいは「x11」の順で調べていきます。) なお,現在の出力先がどこになっているかは   __gnuplot_show__ terminal   (set ではなく show です) を実行すればわかります。

次に,

export GNUTERM=aqua

これは,shell の環境変数 GNUTERM に値 aqua を設定するという意味です。gnuplot はこの環境変数を見てデフォルトのグラフ出力先を決定します。

上記の行を bash の環境設定ファイル .bashrc に記述しておけば,ターミナルのウィンドウを開いたときに (bash の起動時に) 自動的に実行されるようになることは,DISPLAY 環境変数の設定の場合と同様です。


*1 そのとき開く xterm ウィンドウは,必要がなければ閉じてしまって構いません。
*2 __gnuplot_set__ コマンドで一時的にグラフ出力先を AquaTerm に変更したときは,figure 関数が正しく機能しないようです。次の方法でデフォルトのグラフ出力先を AquaTerm にしておけば,figure 関数は正常に機能します。
*3 筆者は AquaTerm を常用しているわけではないので,ここに列挙すべき(より)重要な点が他にもあるかもしれません。
*4 さらに,AquaTerm では,グラフのタイトルや凡例などに日本語を表示することも可能です。筆者は日本語表示のメリットをとくに感じないので,挙動を詳しく理解していませんが,機会があれば,調査のうえ説明を追加したいと思います。
*5 読者の方々の大半は Unix の知識を持たないと思われますので,以下の説明では簡潔さとわかりやすさを優先して,若干不正確な言い回しをしている部分もあります。
*6 しかし,たとえば,ファストユーザスイッチを使って 2 人のユーザが 1 台の Mac をシェアして利用しており,ともに X11.app を起動しているならば,一方のディスプレイ番号は 0 になり,他方のディスプレイ番号は 1 になります。したがって,後者のユーザは DISPLAY 環境変数の値を :1 に設定しなければなりません。なお,:0 は localhost:0.0 の省略形ですが,ここではこれ以上深入りしません。
*7 方法 1 では,Mac OS X 付属のターミナルを使って Octave を起動し,グラフ表示には X11 を利用するという形での,Mac OS X ネイティブなアプリケーションと X11 の併用について説明しましたが,いわばそれと逆の形での併用,すなわち,uxterm ウィンドウで Octave を起動し,グラフの表示には AquaTerm を使うことも可能です。そのためには,(Leopard においても Tiger においても) 方法 2 のステップ 3 と同じ操作ないし設定を行います。