解决Mathematica Notation bug的方法?

Chr*_*ade 6 wolfram-mathematica notation

Mathematica提供了Notation包来定义自定义表示法,它似乎工作得很好,直到我用自定义表示法作为包保存笔记本并尝试使用Needs["..."]导入新表示法.正如Mathematica邮件列表中所记录的那样,在评估任何调用时,这会导致奇怪的语法错误Notation[].建议的解决方案是手动打开符号笔记本并将其评估到内核中,但这对我计划分发的文件来说很痛苦.如果有人有更好的解决方法,我真的很感激帮助!

Tim*_*imo 3

我认为你的问题在于 Mathematica 的处理方式Notation[]引用

定义自己的符号时,使用符号模板至关重要。此限制的原因是粘贴到笔记本中的模板包含以正确方式嵌入的基本标签框。

可能根本不可能进行包文件调用Notation[],但有人建议使用ParsedBoxWrapper,我现在没有时间使用它。

对于您的问题,有一种笨拙的解决方案,即您将所有分配放入Notation[]笔记本的一个单元格中,并将其设为初始化单元格(右键单击单元格边缘 - >初始化单元格)。顺便说一句,这还会创建一个仅包含该单元格内容的 .m 文件(但可惜的是,该文件不能与Needs[]或 一起使用<<)。之后,您可以折叠单元格,使其不可编辑、不可评估,然后嘿,快点!和你想要的差不多。

我应该注意到,从分发的角度来看,这种拼凑相当不错,因为每次加载主文件时都会重新生成 .m 文件,因此您不需要传送多个文件。唯一的缺点是笔记本有点丑(即一个隐藏单元),并且每当您第一次评估该笔记本中的某些内容时,都会弹出一个窗口询问您是否要评估该笔记本的初始化单元。