此为 Mathematica 4 文档,内容基于更早版本的 Wolfram 语言
查看最新文档(版本11.2)

2.10.3 通过内核操作笔记本

Mathematica 笔记本中进行简单运算时,用标准 Mathematica 前端交互功能 是非常方便的,但要进行复杂和系统的运算时,最好要使用内核.

给出对应笔记本的函数

Mathematica 内核中,前端中打开的笔记本用形式为 NotebookObject[fe, id] 的笔记本对象来表示. NotebookObject 中的第一个变量是该笔记本所在的前端 FrontEndObject, 第二个变量是给出这个笔记本唯一的序列号.

这是一个名为 Example.nb 的笔记本

picture

在前端中找出对应的笔记本对象

得到内核中对应于该笔记本的表达式

用 "Text" 代替每一个出现的 "Section"

在前端中产生一个修改后的新笔记本

picture

Out[4]=

picture

picture

在内核和前端之间交换笔记本表达式

对一个笔记本进行大量操作时,用 NotebookGet 将整个笔记本作为内核 的一个表达式是非常方便的. 但对笔记本进行一系列小操作时,最好还是把 笔记本放在前端,然后从核向前端发出一系列命令来指出进行怎样的操作.
Mathematica 中,笔记本前端中能交互进行的任何工作也可以从内核向前端 发送适当的指令进行.

笔记本选项的查找与设置

对当前选择的笔记本给出 WindowSize 选项设置

这里改变屏幕上当前所选笔记本的尺寸

在任何打开的笔记本中,前端总是保持当前的选择,这个选择由一个单元中的 文本区组成,或者是由整个单元组成. 通常这个选择在屏幕上是由一些 高亮度形式来表明. 这个选择也可以在文本的两个字符之间,或者在两个 单元之间,这时它在屏幕上由两个竖直或水平的插入杠来表明.
可以用内核中的指令来修改所打开笔记本中的当前选择.

笔记本中移动当前选择

指定选择中的单位

这里是一个简单笔记本

定义 nb 为对应于当前所选笔记本的笔记本对象

这里将笔记本中当前选择移到下一个词

picture

这里将选择扩允到整个单元

picture

这里将选择放在整个笔记本的后面

picture

查找笔记本的内容

将当前选择移到前一个词 cell 出现的位置

picture

Out[15]=

由于  字母没有在当前笔记本中出现,所以返回的是 $Failed,选择没有移动

picture

NotebookFind可能查找的单元元素

在设置大笔记本时,插入一些通常不显示的记号是十分方便的,这些记号给 单元加标记,使得它们能用 NotebookFind 进行查找. 可以在前端交互式地 设置标志,也可以明确对单元设置选项 CellTags.

笔记本中单元全局定位

NotebookLocate 是在笔记本中沿着超连接前进时 Mathematica 调用的一个潜在函数. 菜单项 Create Hyperlink 将适当的 NotebookLocate 设置为特定超键按纽文本的一部分.

笔记本中的读和写

NotebookWrite[obj, data] 与笔记本前端中的 Paste 运算类似. 它用  替换笔记本中的当前选择. 若当前选择是一个单元时, Write[obj, data] 将用 替换这个单元. 若当前选择位于两个单元之间时, NotebookWrite[obj, data] 就产生一个或一些适当的新单元.

这是选择了文本中一个词的笔记本

picture

这里用新文本替换所选词

picture

这里将当前选择移到这个笔记本的第一个单元之后

picture

在笔记本的第一个单元之后插入一个文本单元

picture

将笔记本中的下一个单元作为当前选择

picture

读取当前选择,将它作为内核的一个表达式

picture

Out[17]=

NotebookWrite[obj, data]data 替换当前选择. 但在设置面板时, 先将当前选择插入 data 的某一位置对其修改往往是很方便的. 这可以选定 占位符和 NotebookApply 来实现. 在 第一次出现字符 SelectionPlaceholder 的位置, SelectionPlaceholder 的输入方法是 \[SelectionPlaceholder]EscapeKeysplEscapeKeyNotebookApply 就用当前选择去替换这个字符 SelectionPlaceholder.

这里是一个简单笔记本,其当前选择是一个单元的内容

picture

用包含它前一个形式拷贝的字符串替换当前选择

picture

当前选择的运算

将当前选择作为整个单元

picture

计算当前选择

picture

SelectionEvaluate 从笔记本选取内容并将它送往内核进行计算. SelectionEvaluate 总是覆盖以前选取的内容,但使用 SelectionCreateCell 等函数可以保持所产生形式序列的记录,这与 标准 Mathematica 进程一样.

将当前选择作为整个单元

picture

产生一个新单元,并将当前选择复制到其中

picture

这里用 Factor 把当前单元的内容包含起来

picture

计算当前单元的内容,产生一个新单元以给出结果

picture

NotebookWriteSelectionEvaluate 等函数默认将当前选择放在笔记本中所插入 的内容之后. 明确地用 Selection 能移动选择,在NotebookWriteSelectionEvaluate 等函数中使用另外的变量也可发指定任务完成后当前选择所在的位置.

新的当前选择的确定和运算

新当前选择的指定

一个空笔记本

picture

在笔记本中写 10!,并将它作为当前选择

picture

计算当前选择,为其结果产生新单元,并将整个结果作为当前选择

picture

FactorInteger 包含当前选择

picture

计算当前选择,将当前选择放在结果之前

picture

在当前选择中插入另外的内容

picture

为整个笔记本和当前选择寻找和设置选项

将当前选择作为一个完整的单元

picture

对当前选择的这个完整单元加框

picture

整个笔记本的操作

调用 NotebookCreate[ ] 时屏幕上出现一个空笔记本.
执行 SetSelectedNotebookNotebookOpen 等指令时就是让 Mathematica 改变所看到的窗口. 在 NotebookOpen NotebookCreate 中使用选项设置 Visible->False 可以处理笔记本, 但不将它显示在屏幕上.