通过内核操作笔记本
在 Mathematica 笔记本中进行简单运算时,用标准 Mathematica 前端交互功能是非常方便的. 但要进行复杂和系统的运算时,最好要使用内核.
给出对应笔记本的函数.
在 Mathematica 内核中,前端中打开的笔记本用形式为 NotebookObject[fe, id] 的笔记本对象来表示. NotebookObject 中的第一个变量是该笔记本所在的前端
,第二个变量是给出这个笔记本唯一的序列号.
这是一个名为

的笔记本.
| Out[1]= |  |
| Out[2]= |  |
| Out[3]= |  |
| Out[4]= |  |
在内核和前端之间交换笔记本表达式.
对一个笔记本进行大量操作时,用 NotebookGet 将整个笔记本作为内核的一个表达式是非常方便的. 但是对笔记本进行一系列小操作时,最好还是把笔记本放在前端,然后从内核向前端发出一系列命令来指出进行怎样的操作.
在 Mathematica 中,笔记本前端中能交互进行的任何工作也可以从内核向前端发送适当的指令进行.
笔记本选项的查找与设置.
| Out[5]= |  |
| Out[6]= |  |
| Out[7]= |  |
在任何打开的笔记本中,前端总是保持当前的选择,这个选择由一个单元中的文本区域组成,或者是由这个单元组成. 通常这个选择在屏幕上是由一个高亮度形式表明. 这个选择也可以在文本的两个字符之间,或者在两个单元之间,这时它在屏幕上由两个竖直或水平的插入杠来表明.
可以用内核中的指令来修改所打开笔记本中的当前选择.
| SelectionMove[obj,Next,unit] | 移动当前选择使它成为具有指定类型的下一单位 |
| SelectionMove[obj,Previous,unit] | 移到上一单位 |
| SelectionMove[obj,After,unit] | 移动到具有指定类型的当前单位的后面 |
| SelectionMove[obj,Before,unit] | 移动到当前单位之前 |
| SelectionMove[obj,All,unit] | 将当前选择扩展到覆盖具有指定类型的整个单位 |
笔记本中移动当前选择.
指定选择中的单位.
定义

为对应于当前所选笔记本的笔记本对象.
| NotebookFind[obj,data] | 将当前选择移到笔记本中下一次出现的指定数据 |
| NotebookFind[obj,data,Previous] | 移到前一次出现的指定数据 |
| NotebookFind[obj,data,All] | 使当前选择覆盖所有出现的指定数据 |
| NotebookFind[obj,data,dir,elems] | 按照方向 dir 在每一个单元的指定元素中查找 |
| NotebookFind[obj,"text",IgnoreCase->True] |
| 在文本中不区分大小写字母 |
查找笔记本的内容.
将当前选择移到前一个词

出现的位置.
由于

字母没有在当前笔记本中出现,所以返回的是
$Failed,选择没有移动.
| Out[14]= |  |
| CellContents | 每个单元的内容 |
| CellStyle | 每个单元的风格名 |
| CellLabel | 每个单元的标记 |
| CellTags | 与每个单元有关的标志 |
| {elem1,elem2,...} | 几类元素 |
NotebookFind 可能查找的单元元素.
在设置大笔记本时,插入一些通常不显示的记号是十分方便的,这些记号给单元加标记,使得它们能用 NotebookFind 进行查找. 可以在前端交互地设置标志,也可以明确对单元设置选项 CellTags.
笔记本中单元全局定位.
NotebookLocate 是在笔记本中沿着超链接前进时 Mathematica 调用的一个潜在函数. 菜单项 将适当的 NotebookLocate 设置为特定超链接按钮文本的一部分.
笔记本中的读和写.
NotebookWrite[obj, data] 与笔记本前端中的 运算类似. 它用 data 替换笔记本中的当前选择. 若当前选择是一个单元时,NotebookWrite[obj, data] 将用 data 替换这个单元. 若当前选择位于两个单元之间时,NotebookWrite[obj, data] 就产生一个或一些适当的新单元.
| Out[19]= |  |
NotebookWrite[obj, data] 用 data 替换当前选择. 但在设置面板时,先将当前选择插入 data 的某一位置对其修改往往是很方便的. 这可以选定占位符和 NotebookApply 来实现. 在 data 第一次出现字符 "
" 的位置,该字符的输入方法是
或 EscsplEsc , NotebookApply 就用当前选择去替换这个字符.
当前选择的计算.
SelectionEvaluate 从笔记本选取内容并将它送往内核进行计算. SelectionEvaluate 总是覆盖以前选取的内容,但使用 SelectionCreateCell 等函数可以保持所产生形式序列的记录,这与标准 Mathematica 进程一样.
NotebookWrite 和 SelectionEvaluate 等函数默认将当前选择放在笔记本中所插入的内容之后. 明确地用SelectionMove 能移动选择. 但是在 NotebookWrite 和 SelectionEvaluate 等函数中使用另外的变量也可指定任务完成后当前选择所在的位置.
新的当前选择的确定和运算.
新当前选择的指定.
在笔记本中写入

,并将它作为当前选择.
及计算当前选择,为其结果产生新单元,并将整个结果结果作为当前选择.
为整个笔记本和当前选择寻找和设置选项.
整个笔记本的操作.
调用 CreateWindow[] 时,屏幕上出现一个空笔记本.
执行 SetSelectedNotebook 和 NotebookOpen 等指令时,就是让 Mathematica 改变所看到的窗口. 在NotebookOpen 和 CreateWindow 中使用选项设置 Visible->False 可以处理笔记本,但不将它显示在屏幕上.