Go to the first, previous, next, last section, table of contents.


憑依時のモード設定

憑依モードでは、ちょっと複雑なメカニズムを使って 憑依式(embedded formula)の取扱いモードを設定します。 それはモードを指定する注釈をファイルに付加するのですが、 ファイル全体のモードを一括指定したり、特定の式にのみ指定したりできます。 後者の場合は、憑依時に異なるモードが指定できます。

憑依時に m f (分数モード) や d s (科学記法)のような モード設定コマンドを与えると、 憑依モードは式開始デリミタの直前に次のような行を付け加えます。

% [calc-mode: fractions: t]
% [calc-mode: float-format: (sci 0)]

Calc は埋込み式(embedded formula)を解析するときに、 式の前方にあるこのようなモード指定注釈をスキャンし、 Calc バッファのモードをそれに合わせます。 ファイル中に明示的に指定されていないモードは変りません。 Calc は前方方向に次のような行までスキャンし続け、 無ければファイル先頭までスキャンします。

% [calc-defaults]

この行は、モード設定の異なる領域の境界に置いてバリヤにしたり、 またスキャンが遅いと感じたら、適当な場所にこの行を置いておく手もあります。

ファイル中に、同種のモードについての異なる指定注釈がある時は、 式より前方で直近の指定が採用されます。 式より後方の指定注釈は無効です(ただし後述するグローバル指定は有効)。

スキャンは行頭の `%' に関係なく、 カギ括弧に囲まれたテキストだけを探します。 モード設定注釈は、望みのコンテキストに合わせたスタイルに変えられます。 注釈スタイルの変え方は、憑依モードのカスタマイズ 参照 。 文法を知っていれば、ユーザーが自分でファイルに書込めます。 文法を知るいちばん簡単な方法は、一度 Calc に書かせてそれを観察することです。

式のすぐ上に、すでに設定注釈が付いているモードに対して変更コマンドを与えると、 Calc は対立する設定注釈をまた加えるのではなく、 先行する設定注釈を修正します。

モード設定注釈はコロンで区切られた3つの部分からなります。 (コロンの後のスペースは省略可能です。) 最初はモード設定の種類、2番目はモードの名称、3番目はモードの値であって リスプ記号か数かリスト形式で表現されます。 最初と2番目の部分が認識できない設定注釈は無視されます。 3番目の値はその型や範囲が適正かどうか確認されません。 もし手動で書込む場合は、注意して正しい値を与えないと、結果は予想できません。 モード設定注釈は大文字小文字を区別します。

憑依モードが起動している間、 Calc スタックのモードラインに Local が現れます。 これは、モード設定コマンドの生成する設定注釈が 憑依中の式(または式集合)に「ローカル」であることを示します。 m R (calc-mode-record-mode) コマンドは、 違った種類の設定注釈を生成させます。 m R を繰返し打つと、可能なモードを循環します。

LocEdit モードと LocPerm モードは、 それぞれ次のような設定注釈を生成します。

% [calc-edit-mode: float-format: (sci 0)]
% [calc-perm-mode: float-format: (sci 5)]

1番目の設定注釈の種類は、その式に憑依中の間のみ有効です。 2番目の注釈の種類は、その式に憑依中でない時に有効です。 「アクティブか否か」つまり Calc がその式を認識しているか否かは、 ここでは関係ありません。

Global モードは次のような設定注釈を生成し、 ファイルの末尾に加えます。

% [calc-global-mode: fractions t]

グローバル・モードの設定注釈はファイル全体の式に影響し、 ファイル中の何処に置かれてもかまいません。 これを利用すれば、モード設定をどこか邪魔にならないところに集めて管理できます。 ただし、設定がファイル中の全ての式について同一である必要があります。

M-# e と打って式に憑依させると、 ローカルな設定注釈を新規にスキャンします。 式の上に手動で設定注釈を書込んだあとは、 それを認識させるためにこのコマンドを使ってください。 M-# u で更新する場合もローカル設定の再スキャンを行います。 しかし、グローバル設定の再スキャンを行うのは M-# a だけです。

設定の効果が制限されるもうひとつのケースは、 ローカル設定注釈を書込んだ式のあとに別の式が続く場合です。 下の例で、1番目の式がアクティブな時に d s コマンドを使いました。 しかし、たとえスキャン規則によって `(sci 0)' が適用されても、 2番目の式はそのスタイルを変えません。

% [calc-mode: float-format: (sci 0)]
1.23e2

456.

2番目の式まで下りていって、そこで M-# u を打ち、 新しい設定注釈の存在を式に知らせなければなりません。

さらに2種類の設定記録モードが m R によって選択可能です。 Save モードでは Calc スタックのモードラインに Save が表示され、モード設定が編集中ファイルではなく Emacs 初期化ファイル `~/.emacs' に永久記録されます (憑依モード以外でも機能します)。 無記録モードでは、Calc スタックのモードラインに SaveLocal も表示されず、 設定注釈を何ら生成しません。

憑依モードが発動されていない時、 Save 以外の設定記録モードは無効です。


Go to the first, previous, next, last section, table of contents.     利用度数