文本格式的框符表示

Wolfram 语言中的所有文本和图形格式最终是用框符的嵌套集合来表示的. 通常这些框符中的元素对应于要放在二维相对位置处的对象.

这里是对应于表达式 的框符.
In[1]:=
Click for copyable input
Out[1]=
DisplayForm 表明这些框符是如何显示的.
In[2]:=
Click for copyable input
Out[2]//DisplayForm=
DisplayForm[boxes]表明 boxes 被显示的格式

表明被显示的框符的格式.

将3个字符串在一行中显示.
In[3]:=
Click for copyable input
Out[3]//DisplayForm=
将一个字符串作为另一个字符串的下标.
In[4]:=
Click for copyable input
Out[4]//DisplayForm=
将两个下标框符放在一行.
In[5]:=
Click for copyable input
Out[5]//DisplayForm=
"text"原样的文本
RowBox[{a,b,}]一行框符或字符串
GridBox[{{a1,b1,},{a2,b2,},}]
一个框符网
SubscriptBox[a,b]下标
SuperscriptBox[a,b]上标
SubsuperscriptBox[a,b,c]上下标
UnderscriptBox[a,b]底标
OverscriptBox[a,b]顶标
UnderoverscriptBox[a,b,c]顶底标
FractionBox[a,b]分式
SqrtBox[a]平方根
RadicalBox[a,b]b  次方根

一些基本的框符类型.

分式嵌套于根式内.
In[6]:=
Click for copyable input
Out[6]//DisplayForm=
将上标放在一个下标对象上.
In[7]:=
Click for copyable input
Out[7]//DisplayForm=
一个对象同时具有上下标.
In[8]:=
Click for copyable input
Out[8]//DisplayForm=
FrameBox[box]box 的周围加边框
GridBox[list,RowLines->True]GridBox 内的行间加线条
GridBox[list,ColumnLines->True]GridBox 内的列间加线条
GridBox[list,RowLines->{True,False}]
仅在第一行下面加线条

插入边框和网格线.

给分式加边框.
In[9]:=
Click for copyable input
Out[9]//DisplayForm=
在阵列的行与列之间都加线条.
In[10]:=
Click for copyable input
Out[10]//DisplayForm=
在它的外围再加边框.
In[11]:=
Click for copyable input
Out[11]//DisplayForm=
StyleBox[boxes,options]按指定选项的设置显示 boxes
StyleBox[boxes,"style"]按指定样式显示 boxes

修改框符的外观.

StyleBoxStyle 的选项相同,区别在于 Style 是一个高层函数,应用于表达式中决定其显示方式,而 StyleBox 是对应的低层函数,表示框符的自身结构.

字符串 用斜体显示.
In[12]:=
Click for copyable input
Out[12]//DisplayForm=
按当前笔记本中节标题的样式显示 .
In[13]:=
Click for copyable input
Out[13]//DisplayForm=
使用节标题样式,但字符为灰色.
In[14]:=
Click for copyable input
Out[14]//DisplayForm=

如果使用的是 Wolfram 语言的笔记本前端,则可以用菜单项直接改变屏幕上显示的样式和外观,但这些改变在内部仍将通过插入适当的 StyleBox 对象而记录下来.

FormBox[boxes,form]用与指定格式有关的规则解释 boxes
InterpretationBox[boxes,expr]boxes 当作表达式 expr 的表示形式
TagBox[boxes,tag]tag 引导 boxes 的解释
ErrorBox[boxes]指出错误并不再对 boxes 进行解释

控制框符的解释.

显示具有上标的 .
In[15]:=
Click for copyable input
Out[15]//DisplayForm=
通常将它解释成一个幂.
重新将它作为具有上标的 .
In[17]:=
Click for copyable input
Out[17]//DisplayForm=
但现在按照 InterpretationBox 中的指定,将它解释为 .

在编辑 InterpretationBox 中给出的框符时,无法保证解释框符给出的解释仍是正确的. 于是,Wolfram 语言就提供了许多选项使用户对 InterpretationBox 对象的选择和编辑进行控制.

选项
默认值
EditableAutomatic是否允许对内容进行编辑
SelectableTrue是否允许对内容进行选择
DeletableTrue是否允许对框符进行删除
DeletionWarningFalse是否在框符被删除时发出警告
BoxAutoDeleteFalse当内容修改后是否除去这个框符
StripWrapperBoxesFalse是否在 TagBox[boxes,]boxes 内除去 StyleBox

InterpretationBox 和相关框符的选项.

TagBox 对象用于存储不显示的信息,这些信息被解释框符的规则使用. 一般情况下,TagBox[boxes,tag] 中的 tag 是一个符号,给出对应于 boxes 的表达式的头部. 如果仅编辑这个表达式中的变量,由 TagBox 指定的解释很可能是适当的. 因此,Editable->TrueTagBox 的默认设置.

Wolfram 语言用于解释框符的规则一般不考察 StyleBox 等对象定义的格式细节. 这样在不使用 StripWrapperBoxes->False 时,红色的 与普通的黑色 没有区别.

一般情况下,红色的 与普通的 同样对待.
In[19]:=
Click for copyable input
Out[19]=