WOLFRAM 语言教程

特殊字符

Wolfram 语言内部建立了大量的特殊字符用于数学和其它符号. "字符名称列表" 给出了完整的列表.

每个特殊字符被赋以全名,例如 \[Infinity]. 更多常见的特殊字符还被赋以别名,例如 EscinfEsc. 用户可以使用 "表达式输入和输出选项" 中讨论的 InputAliases 笔记本选项设置其它别名.

对于在 TAdjustmentBox[E, BoxBaselineShift -> 0.5, BoxMargins -> {{-0.3, 0}, {0, 0}}]X 标准用语中支持的特殊字符,Wolfram 语言也允许使用基于 TeX 名称的别名. 例如,可以使用别名 Esc\inftyEsc 来输入 \[Infinity]. Wolfram 语言还支持基于SGML和HTML中使用的名称的别名,如 EscEsc.

许多计算机系统的标准系统软件还支持按键组合来输入某些特殊字符. 例如,在 Macintosh 中 Option+5 将生成 . 在笔记本前端,Wolfram 系统自动地允许用户使用有效的特殊键组合. 在文本界面中,用户可以通过对 $CharacterEncoding 设置适当的值使 Wolfram 系统接收这样的按键组合.

使用全名,例如 \[Infinity]
使用别名,例如 EscinfEsc
使用 TeX 别名,例如 Esc\inftyEsc
使用 SGML 或者 HTML 别名,例如 EscEsc
单击面板上的按钮
使用计算机系统支持的特殊按钮组合

输入特殊字符的方法.

在 Wolfram 系统笔记本中,用户可以像使用标准键盘字符一样使用特殊字符. 即可以在普通文本中使用特殊字符,也可以在给 Wolfram 系统的输入中使用特殊字符.

有些特殊字符有对 Wolfram 系统直接的含义. 例如, 表示符号 Pi. 同样地, 表示算符 ,而 表示函数 Union 等等.

在 Wolfram 系统中有直接的含义.
In[1]:=
Click for copyable input
Out[1]=
[Union] 被直接解释为函数 Union.
In[2]:=
Click for copyable input
Out[2]=
[SquareUnion] 在 Wolfram 系统中没有直接含义.
In[3]:=
Click for copyable input
Out[3]=

在普通的字符如 E 中,某些对 Wolfram 系统来说有直接含义. 但大多数没有含义. 对特殊字符这同样也是对的.

因此,例如, 对 Wolfram 系统有一个直接含义,而 没有直接含义.

这就允许用户对 建立自己的定义.

在 Wolfram 系统中没有直接含义.
In[4]:=
Click for copyable input
Out[4]=
这里给 一个定义.
In[5]:=
Click for copyable input
现在 Wolfram 系统与计算任何其它函数一样计算 .
In[6]:=
Click for copyable input
Out[6]=

字符,如 被 Wolfram 系统作为和普通键盘字母,如 ,一样的字母进行处理.

但是,字符,如 被 Wolfram 系统作为算符处理. 尽管这些特定字符不被 Wolfram 系统赋以任何内部含义,然而,它们被要求遵循确定的句法.

是一个中缀算符.
In[7]:=
Click for copyable input
Out[7]=
这里赋予 算符一个意义.
In[8]:=
Click for copyable input
现在 可以被 Wolfram 系统进行计算了.
In[9]:=
Click for copyable input
Out[9]=

用户对 Wolfram 系统给出的输入方式的解释依赖于使用的是 StandardForm (标准形式)还是 TraditionalForm (传统形式),还依赖于用户在 InterpretationBox 和类似构造中提供的附加信息.

但是,除非用户通过对 MakeExpression 给出自己的定义来明确地使内部规则无效,否则,Wolfram 系统将对任何特定的特殊字符赋以相同的句法属性.

这些属性不仅影响 Wolfram 系统输入中特殊字符的解释,也决定着建立这些特殊字符的表达式的结构. 它们还影响格式的各个方面. 例如,算符的周围有额外的空格,而字母没有.

字母a, E, , ,
像字母的形式, , ,
算符, , ,

特殊字符的类型.

使用特殊字符时,保证对特定目的使用正确的字符是重要的. 有少量字符看起来是类似的,但实际上完全不同.

一个常见的情况是字母导出的算符. 例如,\[Sum],看起来很像 或者 \[CapitalSigma].

然而,算符 与字母 相比,精心设计的少而仿效的多. 此外, 是一个尺寸不变的字符,它的大小依赖于被求和的函数,而 的尺寸由当时的字体所决定.

看起来类似的不同字符.

诸如 \[CapitalAlpha],两个字符都是字母,然而 Wolfram 系统把它们作为不同的字符处理. 例如,在某种字体下,它们看起来相当不同.

这个结果包含了四个不同字符.
In[10]:=
Click for copyable input
Out[10]=

传统的数学符号中偶然使用普通字母作为算符. 例如,在积分中字母 作为微分算符,如积分中出现的 一样.

为了使 Wolfram 系统有精确的和一致的句法. 必须至少在 StandardForm 中区分普通字母 和微分算符 .

Wolfram 系统解决这个问题的方法是使用特殊字符 或者 \[DifferentialD] 作为微分算符. 这个可以用别名 EscddEsc来输入.

Wolfram 系统使用特殊字符作为微分算符,故而与普通字母 没有矛盾.
In[11]:=
Click for copyable input
Out[11]=

当字母或者类似字母的形式出现在 Wolfram 系统输入时,它们被作为符号名称处理. 但是当算符出现时,函数必须对应于这些算符来构造. 在几乎所有的情况下,Wolfram 系统所做的事情是处理函数,该函数的名称是作为算符出现的特殊字符的全名.

Wolfram 系统构造一个 CirclePlus 函数来对应于算符 ,其全名是 [CirclePlus].
In[12]:=
Click for copyable input
Out[12]//FullForm=
这里构造一个 And 函数,它碰巧有 Wolfram 系统中的内部计算规则.
In[13]:=
Click for copyable input
Out[13]//FullForm=

按照算符名和函数名的对应,代表 Wolfram 系统内部函数的特殊字符,如 具有对应于这些函数的名称. 例如, 被命名为 \[Divide],它对应于 Wolfram 系统的内部函数 Divide,而 被命名为 \[Implies],对应于内部函数Implies.

然而,一般情况下,Wolfram 语言特殊字符被命名为尽可能一般化,以便不损害不同的使用. 最常见的是,字符被命名主要根据其外观. 因此,字符 被命名为 \[CirclePlus],而不是 ,而 被命名为 \[TildeTilde] ,而不是 .

看起来类似的不同算符字符.

有一些字符看起来相似,但是代表不同的算符. 例如,\[Times]\[Cross]. \[Times] 对应于普通的乘法 Times 函数; \[Cross] 对应于向量叉积函数 Cross. \[Cross] 的符号 \[Times]的符号 小一些,这是根据数学排印中的使用.

\[Times] 算符代表普通的乘法.
In[14]:=
Click for copyable input
Out[14]=
\[Cross] 算符代表向量叉积.
In[15]:=
Click for copyable input
Out[15]=
上述两个算符以类似的方式显示 \[Times]\[Cross] 稍大一些.
In[16]:=
Click for copyable input
Out[16]=

\[And]\[Wedge] 的例子中,\[And] 算符写的大一些相应于 Wolfram 系统的内部函数 And,而\[Wedge] 算符基于字符的外观有一个一般的名称,它与内部函数没有关系.

可以混合使用 [Wedge][And] 算符. 它们有着确定的次序.
In[17]:=
Click for copyable input
Out[17]//FullForm=

常在数学表示法中用作算符的一些特殊字符看起来与普通的键盘字符相似. 例如,[Wedge] 看起来很像标准键盘字符 .

Wolfram 系统把键盘上的 解释为幂. 而把 解释为一般的 Wedge 函数. 在特殊字符与键盘字符相似的情况下,习惯上使用普通键盘字符作为特殊字符的别名. 例如,Esc^Esc\[Wedge] 的别名.

被解释为幂,但 Esc^Esc 是 wedge 算符.
Click for copyable input
Out[18]=

一个相关的惯例是当特殊字符被用来代表能用普通键盘字符打出的算符时,这些字符被用作特殊字符的别名. 例如,Esc->Esc\[Rule]的别名,而 Esc&&Esc\[And] 的别名.

Esc->Esc\[Rule] 的别名,而 Esc&&Esc\[And] 的别名.
Click for copyable input
Out[19]//FullForm=

看起来相似但作用不同的最极端情形是竖直棒.

形式
字符名
别名
解释
x|y|Alternatives[x,y]
xy\[VerticalSeparator]Esc|EscVerticalSeparator[x,y]
xy\[VerticalBar]Esc|EscVerticalBar[x,y]
x\[LeftBracketingBar]Escl|EscBracketingBar[x]
\[RightBracketingBar]Escr|Esc

竖直棒的不同类型.

注意 \[VerticalBar] 的别名是 Esc|Esc,而更常见的 \[VerticalSeparator] 的别名是 Esc|Esc. Wolfram 语言常常给相似的字符以相似的别名;一般惯例是,不常用的字符的别名,开头有一个空格.

EscnnnEsc常见字符的内部别名
EscnnnEsc相似而不常用的字符的内部别名
Esc.nnnEscWolfram 系统进程中定义的全局别名
Esc,nnnEsc定义在特定笔记本中的别名

特殊字符别名的规定.

Wolfram 系统笔记本前端允许用户对特殊字符建立自己的别名,也可以覆盖内部别名. 习惯上自定义的别名在开头使用点号或者逗号.

注意,无论对特殊字符使用任何别名,总是使用该字符的全名存储该字符.