定义输出格式

正如 Mathematica 允许用户对表达式如何计算进行定义一样,用户也可以定义表达式按何种格式输出. 其基本思想是在无论何时对给定表达式进行格式输出,Mathematica 首先调用函数 Format[expr] 找出是否已经定义了该表达式输出格式的特殊规则. 通过给 Format[expr] 赋值,可以令 Mathematica 按一定的方式输出某种类型的表达式.

Mathematica 按特殊方式设置对象 的格式.
In[1]:=
Click for copyable input
现在 对象如二项式系数一样输出.
In[2]:=
Click for copyable input
Out[2]=
而内部 对象仍然是相同的.
In[3]:=
Click for copyable input
Out[3]//FullForm=
Format[expr1]:=expr2定义 的格式相同
Format[expr1,form]:=expr2仅定义一个特殊的输出形式

自行定义格式化规则.

通过 Format 的定义可以令 Mathematica 将一个特定表达式的格式与另一个表达式相同t. 也可以令 Mathematica 运行一个程序去确定怎样格式化一个表达式.

这里设定 Mathematica 运行一个程序确定如何格式化 对象.
In[4]:=
Click for copyable input
每一个 被格式化时就产生字符串.
In[5]:=
Click for copyable input
Out[5]=
内部的表达式仍然包含 对象.
In[6]:=
Click for copyable input
Out[6]=
Prefix[f[x],h]前缀形式
Postfix[f[x],h]后缀形式
Infix[f[x,y,...],h]中缀形式
Prefix[f[x]]标准前缀形式
Postfix[f[x]]标准后缀形式
Infix[f[x,y,...]]标准中缀形式
PrecedenceForm[expr,n]加括号具有 n 级优先权的对象

运算符的输出形式.

用前缀算符 表示 .
In[7]:=
Click for copyable input
Out[7]=
具有中缀算符 的输出.
In[8]:=
Click for copyable input
Out[8]=
默认时,中缀算符 的优先级别比 高,因此不需要加括号.
In[9]:=
Click for copyable input
Out[9]=

当输出涉及到运算符时,就需要考虑到是否要对一些变量加括号,正如"表达式输入的特殊方式" 一节中所讨论的,这取决于运算符的优先级. 在对涉及到运算符的输出形式进行设置时,可使用 PrecedenceForm 来定义运算符的优先级. Mathematica 用1到1000的整数来表示运算符的优先级别,优先级别越高,越不需要加括号.

这里 的优先级别为 . 这个级别较低,就需要加括号.
In[10]:=
Click for copyable input
Out[10]=

Format[expr] 的赋值就是按 Mathematica 输出的标准类型定义 expr 的输出形式. 通过定义 Format[expr, form] 可以指定特殊的输出形式.

为符号 指定输出形式 TeXForm.
In[11]:=
Click for copyable input
在需要 TeX 形式时,就使用对 指定的输出形式.
In[12]:=
Click for copyable input
Out[12]//TeXForm=
New to Mathematica? Find your learning path »
Have a question? Ask support »