ボックスの文字列表記

ボックスオブジェクトを文字列でコンパクトに表すこともできる.文字列表記を使うとボックスの仕様をテキスト書式でインポートやエキスポートするのに便利である.

InputFormで記述した上付き文字用ボックス(SuperscriptBox)をテキスト書式に変換し出力する.
In[1]:=
Click for copyable input
Out[1]=
SuperscriptBoxを作る.
In[2]:=
Click for copyable input
Out[2]=
ToExpressionを作用させる.SuperscriptBoxがベキ乗として認識されるのが分かる.
In[3]:=
Click for copyable input
Out[3]//FullForm=

単なる表示用ボックスと演算上意味のあるボックスは記述上違うので注意する.

この記述は単に上付き文字として表示するSuperscriptBoxである.
In[4]:=
Click for copyable input
Out[4]=
こうするとSuperscriptBoxの表すベキ乗を意味するようになる.
In[5]:=
Click for copyable input
Out[5]=
ベキ乗として扱われたか確かめてみる.
In[6]:=
Click for copyable input
Out[6]//FullForm=
(input)内容をボックス表示する
!(input)内容を演算上意味のあるボックスにする

単なるボックス表示と演算的意味付けの記述上の違い

テキストエディタ等の外部プログラムにStandardFormのセル内容をコピーすると,の書式が必要に応じて使われ式がコピーされる.この書式を使っておけば,ユーザが式をWolframシステムにコピーし直しても,自動的に式をStandardFormで再構築できる.を付けておかないと,単なるボックス表示しかしない式になってしまう.

ノートブックにの形でペーストした式は通常,2次元的な数学表記で表示される.

"(input)"単なる文字列
"!(input)"ボックスを含む文字列

文章にボックスオブジェクトを組み込む方法

文字列中に起るの形の記述は単なる文字の羅列としか扱われない.これに対して,を追加した形なら,記述文はボックスを表すものとして扱われる.ボックスオブジェクトを普通の文章に組み込むにはこの方法を使うとよい.

この記述だと,単なる文字列としか扱ってくれない.
In[7]:=
Click for copyable input
Out[7]=
を加えると,文字列がボックスを含むことになる.
In[8]:=
Click for copyable input
Out[8]=
文章にボックスを混ぜる.
In[9]:=
Click for copyable input
Out[9]=
(box1,box2,)RowBox[box1,box2,]
box1^box2SuperscriptBox[box1,box2]
box1_box2SubscriptBox[box1,box2]
box1_box2%box3SubsuperscriptBox[box1,box2,box3]
box1&box2OverscriptBox[box1,box2]
box1+box2UnderscriptBox[box1,box2]
box1+box2%box3UnderoverscriptBox[box1,box2,box3]
box1/box2FractionBox[box1,box2]
@boxSqrtBox[box]
\@box1\%box2RadicalBox[box1,box2]
form` boxFormBox[box,form]
\*inputinput の解釈から適切なボックスオブジェクトを作成する

キーボード入力用短縮記述によるボックスオブジェクトの作成

ボックスオブジェクトの記述はでくくっておかなければいけない.一番外側のの内側になら,のペアをいくつも使いネスト形のボックス構造を構成できる.

カッコを使い式の項をまとめる.
In[10]:=
Click for copyable input
Out[10]//DisplayForm=
カッコを使わないと項のまとめ方が変わってしまう.
In[11]:=
Click for copyable input
Out[11]//DisplayForm=
も項のまとめに使うが,表示には現れない.
In[12]:=
Click for copyable input
Out[12]//DisplayForm=
内側にあるのペアはRowBoxの構成に使っている.
In[13]:=
Click for copyable input
Out[13]=

例えば,と式を入力すると,カーネルでの成分に分解される.各成分はシンボルとして扱われる.の記述を使いボックスオブジェクトを入力したときもシンボルの分解が行われる.ボックスの入力では文字列の形でシンボルが与えられ,式の入力では演算的に意味ある成分として与えられる,という点が違う.

入力すると,RowBoxになりの各文字列に分解する.
In[14]:=
Click for copyable input
Out[14]//FullForm=
記号の両脇にスペース記号を入れたが,表示には出ない.
In[15]:=
Click for copyable input
Out[15]//FullForm=
ネストしたRowBoxオブジェクトを2つ作る.
In[16]:=
Click for copyable input
Out[16]//FullForm=
スラッシュ記号(/)の後に何も続けなくても,上の例と同じ形のボックスが作られる.
In[17]:=
Click for copyable input
Out[17]//FullForm=

の内側で記述すれば,のバックスラッシュ記述のボックスを構成できる.他の種類のボックスは,に続ける形で標準のWolframシステム式として入力しなければいけない.

GridBoxを作る.
In[18]:=
Click for copyable input
Out[18]//DisplayForm=
StyleBoxを作る.
In[19]:=
Click for copyable input
Out[19]//DisplayForm=

はエスケープのように振る舞い,の記述中に式を挿入する場合に使う.に続ける式の記述の中には,別のの記述を入れても構わない.

の記述を交互に入力しても構わない.引用符は記述の外に出しておく.
In[20]:=
Click for copyable input
Out[20]//DisplayForm=
!(input)入力を現行の表記法で解釈する
!(form`input)入力を指定の形で解釈する

表記法に依存した記述の解釈

セルがStandardFormになっていれば,StandardFormとして解釈される.
In[21]:=
Click for copyable input
Out[21]=
TraditionalFormとして式を解釈するよう特別に指定する.
In[22]:=
Click for copyable input
Out[22]=

テキストエディタ等の外部プログラムへセルの内容をコピーすると,バックスラッシュとバッククォートはコピー内容に明示的には含まれない.ただし,別の種類のセルから式をペーストする際は,バックスラッシュとバッククォートを加えておかないと正確な解釈が行われなくなってしまう.