Mathematica里的格式与排版
mathematica吧
全部回复
仅看楼主
level 10
mm_酱 楼主
Mathematica不仅编程、计算、绘图等老本行很漂亮,对笔记本内容的格式控制、显示效果等等的设置也很灵活。我最近对这方面的内容也来了点兴趣,借此分享如下,所述内容多凭个人经验,错误之处一定要指出。
2013年07月03日 14点07分 1
level 10
mm_酱 楼主
【1】笔记本表达式大家一定听说过“万物都是表达式”这句话,这句话说得实在是很对,因为在Mathematica里几乎所有功能都是用表达式来表现的。表达式的类型丰富,功能多样,但是其基本结构都是一样的——一个头部跟上若干个元素,这若干个元素本身也可以是一个表达式,这就构成了我们熟悉的树形结构。
我们常遇到的表达式就是在笔记本里输入的计算命令。其实,作为承载表达式的笔记本本身,也是表达式。
但是我们看到的笔记本只是一个窗口而已,怎么看也不像一个表达式啊。其实这只是Mathematica把笔记本表达式解释成了图形化的窗口而已。为了查看一个笔记本文件的表达式只需用记事本或任何一个文本编辑器打开.nb文件即可。
就像前面说的一样,笔记本表达式在我们看来一定不是很陌生,因为它的形式和普通的表达式实在没什么不同。仔细观察一下便可发现,一个笔记本表达式是一个由头部Notebook包裹起来的整体,在这个头部里有一个个以Cell为头部的单元表达式(楼下介绍),后面跟的是一大堆选项,这些选项就是用来对笔记本方方面面的特性进行控制用的。
2013年07月03日 14点07分 2
得到Notebook表达式还有一个简单的命令:NotebookGet
2013年07月03日 22点07分
等lz继续更新
2013年07月05日 05点07分
level 10
mm_酱 楼主
【2】单元表达式
单元(Cell)是笔记本内容的基本单位,笔记本里的任何内容都是放在各种类型的Cell里的。一般每一个Cell的右边的会有一个方括号,不同类型的Cell的方框的样子也有些许不同。常见的Cell有Input,Output,Code,TextCell等等。有的Cell是用来放置能运行的代码的,比如Input Cell和Code Cell。有的Cell只能放置内容而不能运行,比如各类标题,副标题,文本Cell。
如你所见,Cell也是表达式,查看一个单元的单元表达式只需使用快捷键ctrl+shift+E即可,你会看到一个单元表达式的头部总是Cell,Cell的第一个参数是Cell显示的内容,后面跟的是很多的设置信息,这些设置信息也不例外地是用规则体现的。稍微修改一下单元表达式的设置,再次按一下ctrl+shift+E,Cell又会回复原样,而且刚才我们的设置会立即起效,这些设置的有效范围仅限于当前的Cell,而不会影响其他的Cell。
目前我们已经介绍有关格式的两个层次的内容了,笔记本和单元。在这两个层次都能进行各种丰富的设置,其中笔记本层次的设置能影响到当前的整个笔记本,单元表达式的设置只能影响当前的单元。
Mathematica的格式系统是多层次的。除了笔记本层次和单元层次还有内嵌层次和配置文件(就是常说的样式表StyleSheet)层次。这些个不同的设置层次的优先级别大概是这样的(从高到低):
内嵌
单元
笔记本
样式表
所谓的优先层次就是说高优先级的设置可以覆盖低优先级的设置。比如说某个笔记本的StyleSheet规定每个Input单元的背景颜色都是灰色的,那么所有新建的Input单元都会是灰色背景的,但是如果我现在把某个单元的颜色设置为白色(手动该单元表达式的代码或者使用菜单),这个设置就会覆盖StyleSheet层次的设置,但是其它未在单元表达式里未明确写出的选项值仍然会继承StyleSheet里的设置。
2013年07月05日 15点07分 3
问一下楼主,input cell 和code cell 有什么区别[疑问]
2015年07月25日 14点07分
level 10
mm_酱 楼主
【2】内嵌格式
那么什么是内嵌格式呢?这里可以举个例子说明:
在笔记本里按alt+7组合键新建一个Text Cell,在里面输入Mathematica,按ctrl+shift+E查看其单元表达式是怎么样的:
Cell["mathematica", "Text", CellChangeTimes->{{3.5820269274083815`*^9, 3.582026933596735*^9}}]
这里第一个参数是文本内容,第二个参数是Cell的类型,后面那个奇怪的东西是这个Cell最后修改时间。
再按ctrl+shift+e恢复原貌,现在选中mathematica里的math几个字母,用格式菜单将其颜色设置为红色,现在的单元表达式变成了这样:
Cell[TextData[{ StyleBox["math", FontColor->RGBColor[1, 0, 0]], "ematica"}], "Text", CellChangeTimes->{{3.5820269274083815`*^9, 3.582026933596735*^9}}]
可以看到刚才我们设置过的“math”被一个StyleBox包起来了。这便是内嵌格式,他的作用是对单元里的个别字符进行格式的设置,并会覆盖其它层次的设置。
2013年07月05日 15点07分 4
level 10
mm_酱 楼主
【3.2】啥?你倒是拿个样式表给我看看啊!
好好,这就上图。
##
#坑爹啊!这不就是一个普通的笔记本吗?#
##
对,你说对了。样式表就是一个笔记本,但是一个样式表之所以成为样式表是因为其中有包含了特殊内容的单元。这里的特殊内容就是StyleData,StyleData是一个头部,它表明这个单元是一个控制风格用的东西。比如你可以在一个样式表里添加一个这样的Cell:
Cell[StyleData["MyTitle"], CellMargins->{{27, Inherited}, {10, 30}}, FontFamily->"Helvetica", FontSize->36, FontWeight->"Bold"]
这个Cell就定义了一个样式名称为"MyTitle"的样式,后面的选项定义了其边距、字体、字号、字体风格。
2013年07月05日 16点07分 7
可以搞个帖子,共享些有趣的样式表吧,SE上ms有个类似的帖子,不过好像也没几个样式表。
2013年07月08日 06点07分
赶上直播了?不插楼坐等楼主更新
2013年07月08日 17点07分
老大继续更新啊,学习排版很有意思^^
2013年07月11日 14点07分
楼主,想请问下单元编组后要打开关闭不是可以按右边的小箭头吗,但你文字前的那个下拉箭头是怎么弄的呢?
2018年11月22日 01点11分
1