|
3.10.1 特殊文字
Mathematicaには数学表記やその他の表記で使うための非常に多くの特殊文字が組み込まれている. A.12.1 に特殊文字の一覧があるので参考にするとよい.
特殊文字のひとつひとつには \[Infinity]のような固有の呼名が付けられている.また,よく使われる特殊文字には早く呼び出せるように短縮名(エイリアス)が割り当てられている.エイリアスには inf のような呼名の短縮形が使われ, は (エスケープキー)を示す.2.11.11にあるノートブックオプションのInputAliasesを使って,独自のエイリアスを作ることもできる.
TeXの標準言語で提供される特殊文字なら,TeXに基づいたエイリアスを使い呼び出せるようになっている.例えば,\[Infinity]を入力するにはエイリアス \infty を使えばよい. Mathematicaでは,さらに,SGMLとHTML規格で使われる名前に基づいたエイリアス,例えば, &infin もサポートされる.
さらに,多くのコンピュータに搭載されている標準オペレーティングシステムでは特殊文字を入力するため特殊な組合せキーが提供される.例えば,Macintoshコンピュータでは,ほとんどのフォントでOption-5の組合せキーを押すと が入力できる.ノートブック用フロントエンドを使っている場合,定義さえしてあればこのような組合せキーがいつでも使える.また,テキスト型インターフェースを使っている場合でも, $CharacterEncodingに適切な値をセットしておけば組合せキーが使えるようになる.

特殊文字の入力法
ノートブックでは,キーボードから入力する普通の文字と同じように特殊文字が使える.特殊文字は普通の文章にはもちろんのこと, Mathematicaに入力する数式やコマンドにも使ってよい.
Mathematicaの式で使うとき,特殊文字によっては特別な意味を持つものがある.例えば, は Mathematicaの Piを意味し, は関係演算子 >=として機能する.また, は関数 Unionの機能を持つ.
特殊文字 と を式で使うと特別な意味を持つ.
In[1]:=  3
Out[1]= 
や\[Union]は Union関数として特別な意味を持つ.
In[2]:= {a, b, c} {c, d, e}
Out[2]= 
や \[SquareUnion]は数式処理上の特別な意味を持たない.
In[3]:= {a, b, c} {c, d, e}
Out[3]= 
普通の文字でも Eや iのように数式処理上の特別な意味を持つものもあるが,そのほとんどは意味を持たない.特殊文字の場合も同じである.
つまり,例えば, と は特別な意味を持つが, と は持たない.
このことは と についてユーザ定義の関数を設けることを許す.
は Mathematicaにとって特別な意味を持たない.
In[4]:= [2] + [3]
Out[4]= 
に数式処理上の意味付けをする.
In[5]:= 
今度は他の組込み関数のように が評価される.
In[6]:= [2] + [3]
Out[6]= 
や のような文字は単なる文字としてキーボードにある aや bの普通のアルファベット文字のように扱われる.
一方, や のような文字は演算子として扱われる. Mathematicaではこれらの特殊文字に特別な意味付けをしていないが,それでも, Mathematicaの文法に準じた使い方をしなければならない.
はインフィックス的な演算子である.
In[7]:= {a, b, c} {c, d, e}
Out[7]= 
に関数的な意味付けをする.
In[8]:= x_ y_ := Join[x, y]
が評価されるようになる.
In[9]:= {a, b, c} {c, d, e}
Out[9]= 
入力式が Mathematicaでどう解釈されるか,その詳細は標準形(StandardForm)を使っているか慣用形(TraditionalForm)を使っているかでも違う.また,解釈ボックス(InterpretationBox)等の構成体に与えた付加情報によっても違ってくる.
特殊文字にすでに組み込まれている規則をMakeExpressionを使い無効とする新規則を設けてやらない限り, Mathematicaは特殊文字に同じ基本的な文法上の性質を割り当てる.
特殊文字が Mathematicaの入力としてどう解釈されるかは,それに割り当てられた文法的特性による.また,その特性は,特殊文字で構築した式の構造をも決める.さらに,この特性は特殊文字の表示書式にも影響を与える.例えば,文字が演算子として作用するなら,文字の両側には補助的なスペースが挿入される.普通の文字ならスペースは挿入されない.

特殊文字の種類
特殊文字を使うときは,目的にあったものかどうかをよく確かめてから使うとよい.表示上似たような文字がいくつかあるが,それぞれ違ったものである.
まぎらわしい特殊文字に総和のための演算子 すなわち\[Sum]がある.この文字は表示上, 文字の すなわち\[CapitalSigma]に非常によく似ている.
それでも, のギリシャアルファベットに比べて演算子 はどちらかというと簡素に描かれ形式的な形を持つ.また,総和の演算子であれば,総和式の大きさにより文字の大きさが調整される.ギリシャ文字としての は現行フォントの大きさしか取らない.

表示上似通った文字
\[CapitalAlpha]と Aの場合,両方とも文字として扱われるが,Mathematicaでは異なった文字として扱う.また,フォントを変えたりすれば,極めて違う形で表示される.
出力結果は意味の違う文字を4つ含む.
In[10]:= Union[ {\[CapitalAlpha], A, A, \[Mu], \[Mu], \[Micro]} ]
Out[10]= 
伝統的な数学の記述では演算子に普通のアルファベットが使われる.例えば,積分で使う微分記号 dxにある dがそれに対応する.
正確で一様な文法を維持するために,少なくとも標準形(StandardForm)では普通の dと微分演算子である は分けて使われる.
特殊文字である と \[DifferentialD]は微分を行う演算子である. d にはそのような機能はない.この特殊文字はエイリアス dd を使っても入力できる.
微分演算子である特殊文字を使い積分を表す.普通のアルファベットdではない.
In[11]:= 
Out[11]= 
Mathematicaへの入力成分としてアルファベットやそれに類似した文字があるとき,それらは通常,変数や関数等の名前を表すものとして扱われる.また,演算子があると,それに対応した関数が構築されなければならない.そのとき取られる手順として,演算子として機能する特殊文字の正式名が抽出され,構築する関数の名前にあてられる.
演算子である すなわち \[CirclePlus] に対応した形で関数が構築される.関数名には CirclePlusが当てられる.
In[12]:= a b c // FullForm
Out[12]//FullForm= 
論理積の関数 Andが構築される. Andには評価用規則が組み込まれている.
In[13]:= a b c // FullForm
Out[13]//FullForm= 
上述の演算子名と関数名の間に見られる関係に従い, Mathematicaの組込み関数,例えば を意味する特殊文字は組込み関数の名前を持つ.いくつかの例を見てみよう.特殊文字 は名前が \[Divide]で,組込み関数 Divideに関連付けられている.また,特殊文字 は, \[Implies]の名前を持ち,組込み関数 Impliesに関連付けられている.
演算子となるものを除き,特殊文字には可能な限り慣用的な名前が付いている. Mathematica内の別の記述と混同しないように.特殊文字の多くはそれらの表示の形を説明するような名前を持つ. には \[CirclePlus]の名前が付けられている. \[DirectSum]のような機能的な名前ではない.また, には名前 \[TildeTilde]が付いている. \[ApproximatelyEqual]ではない.

表示的に類似した演算子として働く特殊文字
文字の中には同じように表示されるが全く違った演算子を表すものもある.例として \[Times]と \[Cross]がある. \[Times]は掛け算の関数Timesを表すためにあるが,\[Cross]はベクトルの外積を計算する関数 Crossに対応している.また, Mathematicaの表示技法の正確性を反映して,\[Cross]の表示形 は Timesの表示形 に比べて,やや小さく描かれる.
\[Times]は乗算を表す演算子である.
In[14]:= {5, 6, 7} \[Times] {2, 3, 1}
Out[14]= 
演算子\[Cross]はベクトルの外積を表す.
In[15]:= {5, 6, 7} \[Cross] {2, 3, 1}
Out[15]= 
2つの演算子はよく似ている.気を付けてみると, \[Times]は \[Cross]よりやや大きい.
In[16]:= {a × b, a b}
Out[16]= 
\[And]と \[Wedge]を比べてみよう. \[And]は後者に比べやや大きめに描かれ組込み関数 Andに関係付けられる.一方, \[Wedge]は表示形を表すような名前を持つが,特殊な意味は持たない.
\[Wedge]と \[And]を混ぜて使ってもよい.それぞれ違った優先度を持っているから混同されることはない.
In[17]:= a \[Wedge] b \[And] c \[Wedge] d // FullForm
Out[17]//FullForm= 
数学表記の演算子として普通使われる特殊文字の中にはキーボードの普通の文字に表示上よく似たものがある.例として,キーボードにあるハット記号に似ている すなわち \[Wedge]がある.
Mathematicaではハット記号 ^はベキ乗として解釈される.一方, は汎用の Wedge関数として扱われる.キーボードの文字に類似した特殊文字がある場合,規約で特殊文字のエイリアスにはキーボードの文字が充てられる.例えば, \[Wedge]のエイリアスは ^ とされる.
ハット記号^はベキ乗として解釈されるが, ^ は汎用のくさび形演算子である.
In[18]:= {x ^ y, x ^ y}
Out[18]= 
キーボードで入力できる演算子を表すために特殊文字を使うときは,上記の規約に関連した規約が使われる.つまり,キーボードの文字が特殊文字のエイリアスに充てられる.例として, または \[Rule]を表す -> がある.また, && は または \[And]を表す.
-> は \[Rule]のエイリアスである.また, && は \[And]のエイリアスである.
In[19]:= {x -> y, x && y} // FullForm
Out[19]//FullForm= 
類似する文字の中で最も異なった働きを持つものに垂直バー記号がある.

垂直バー記号のいくつか
\[VerticalBar]のエイリアスは  | である.また,より頻繁に使われる \[VerticalSeparator]のエイリアスは | である. Mathematicaでは,似通った文字には似通ったエイリアスがよく与えられている.また,より一般的でない文字に対しては,エイリアスの先頭にスペースを加える,という有効な規約がある.

特殊文字のエイリアスと記述上の規約
ノートブック用フロントエンドを使っている場合,特殊文字に対してユーザ定義のエイリアスを与えることができる.必要ならば,組込み済みのエイリアスを上書きする形で定義してもよい.規約では,ユーザ定義のエイリアスはコンマで始まることになっている.
特殊文字に対してどんなエイリアスを使おうが,その文字がファイル等に保存されるときは常に正式名が使われることに注意が必要である.
|