2010-02-25 75 views
6

Mathematica提供Notation包来定义自定义符号,它似乎很好用,直到我将包含自定义符号的笔记本作为包保存并尝试使用Needs["..."]导入新符号。如Mathematica mailing list所述,在评估对Notation[]的任何调用时,这会导致奇怪的语法错误。建议的解决方案是手动打开记事本笔记本并将其评估到内核中,但这对于计划分发的文件来说是一种痛苦。如果有人对这个问题有更好的解决方法,我非常感谢帮助!解决Mathematica Notation bug的方法?

+0

你可以用一个例子.m文件和您所看到的错误细说了,好吗? – 2010-02-26 04:09:04

+1

当然。该软件包位于我的个人站点(http://www.cgranade.com/academics/mathematica-packages)。试图包括经由'这个包需要[]'的原因: 语法:: sntx:在或之前 无效语法 “符号[NotationTemplateTag [SubscriptBox [\Σ|, TemplateBox [{N_},NotationPatternTag]]] <<71> > TemplateBox [{N_},NotationPatternTag]]}]]]; <<25>> ^ – 2010-02-26 20:52:53

回答

3

我觉得你的问题就出在数学对待Notation[]的方式,quote

当定义自己的符号是 使用 符号模板非常重要。这个限制的原因是 粘贴到笔记本中的 包含 必要的标签框,其中嵌入了 正确的方式。

它可能无法在所有有一个包文件调用Notation[],但使用ParsedBoxWrapper我没有时间与现在玩弄的建议。

有一个缺憾解决您的问题,这是你把所有的Notation[]分配到笔记本电脑的一个细胞,使其初始化细胞(右键单击该小区边缘 - > Initalization细胞)。这将顺便创建一个.m文件,仅包含该单元格的内容(但该文件将不会与Needs[]<<一起使用)。之后,你可以折叠这个单元格,使其不可编辑,不可估量,并且嘿!几乎就像你想要的。

我要指出,从一个分发点,因为.m文件被再生每次加载主文件,这样你就不需要运送多个文件时这个杂牌是相当不错的。唯一的缺点是稍微难看的笔记本电脑(即一个隐藏的单元格),并弹出询问您是否要评估笔记本的初始化细胞,只要你先评估该笔记本电脑的东西。

+0

这是一个很好的解决办法,保存,我必须确保我记得保持隐藏单元格最新的感谢您! – 2010-02-26 20:37:49