|
はじめに
Mathematica のフロントエンドは,フロントエンドトークンというコマンド群をサポートしています.フロントエンドトークンでは,通常メニューコマンドで実行するノートブックの開閉等の動作を実行することができます.フロントエンドトークンを使うことで,カーネルから自動でフロントエンドの動作を制御することができるようになります.従って,ノートブックを操作するプログラムを作成している場合等に大変便利です.
フロントエンドトークンには,一般的なメニューコマンドに対応しているものがあります.例えば「New」,「Paste」というフロントエンドトークンはそれぞれ「ファイル」?「新規作成」,「編集」?「ペースト」のメニューコマンドに対応しています.また,少数ですが特定のメニューコマンドに対応していないフロントエンドトークンもあります.
フロントエンドトークンを呼び出すには,2つのコマンドFrontEndTokenとFrontEndExecuteを組み合せて使います.FrontEndTokenは引数をフロントエンドトークンとして認識します.FrontEndExecuteは引数をフロントエンドに送り実行させるカーネルコマンドです.例えば,以下のコマンドはフロントエンドに新規ノートブックを作成するよう指示しています.
In[1]:=
FrontEndTokenもFrontEndExecuteも引数としてリストを取ることができるので,1回の評価で複数のトークンを実行することが可能です.以下の例では,Map関数を使ってFrontEndTokenを2つのフロントエンドトークンのリストに適用しています.このコマンドを評価すると,フロントエンドはまず新規ノートブックを作成し,クリップボードの内容をそのノートブックにペーストします.
In[2]:=
フロントエンドトークンの種類
フロントエンドトークンは,シンプルトークンと複合トークン(パラメータを持つトークン)の2つのグループに分けられます.シンプルトークンは簡単なデフォルトの動作を実行するものです.複合トークンには,トークンの動作のある面をコントロールするために使える変数パラメータがあります.
シンプルトークン
シンプルトークンでは,FrontEndTokenが1つか2つの引数を持つことを必要とします.FrontEndTokenが引数を1つ持つ場合は,トークンは現行のノートブックに作用します.FrontEndTokenが引数を2つ持つ場合は,最初の引数はNotebookObjectでなければなりません.第2引数は希望のフロントエンドトークンです.
上のセクションで,「New」を使った例を挙げました.ここでは,FrontEndTokenExecuteで現行のノートブックを保存する「Save」を使ってみます.
In[2]:=
別のノートブックとして保存したい場合は,FrontEndTokenExecuteの引数2つあるタイプを使います.最初の引数は現行の評価を含むノートブックに対応するNotebookObjectで,第2引数はフロントエンドトークンです.
In[3]:=
注:コマンドFrontEndTokenExecute[token]を使ってシンプルトークンを実行することもできます.このコマンドは,FrontEndExecute[FrontEndToken[token]]と同じものです.短縮形の方が便利ですが,これでは複合トークンは実行できません.
複合トークン
複合トークンは,動作のある面をコントロールする変数パラメータを持ちます.このタイプのトークンは,引数を3つ持つタイプのFrontEndTokenを使って呼び出し,FrontEndExecuteでフロントエンドに送らなければなりません.引数を3つ持つタイプのFrontEndTokenでは,第1引数がターゲットノートブックオブジェクト,第2引数がトークン,第3引数がトークンパラメータの値です.下の例では,このコマンドでトークン「SaveRenameSpecial」を使って選択されたノートブックをテキストで保存します.
In[6]:=
パラメータを必要とするトークンを使用するときは,FrontEndTokenの第1引数には必ずターゲットノートブックオブジェクトを使わなければなりません.ターゲットノートブックを指定しなければ,エラーメッセージが表示されます.
|