我有一个由另一个程序生成的 Mathematica 表达式,我想在笔记本中打开它,格式正确。例如,另一个程序会生成这个:
Plot[{Exp[x],Interpolation[Table[{k/5,Exp[(k-1/2)/5]},{k,0,5}],
InterpolationOrder->0][x]},{x,0,1},Filling->{1->{{2},{Yellow,Orange}}},
PlotLabel->Style["Formatting",Blue,FontFamily->"Courier"]]
文本被写入文件,粗略后缀“.nb”,然后启动,表达式在笔记本中打开,没有格式化。要实现格式化,使用 BoxData 手动编写文件似乎不切实际。
该文件实际上是使用 Process.Start("filename.nb") 从 .Net 启动的,但命令行启动似乎同样有问题。
最佳答案
这个怎么样:
Export["C:\\Temp\\formatTest1.nb",
ToExpression[Import["C:\\Temp\\formatTest.nb", "Text"], InputForm, MakeBoxes]]
我对其进行了测试,它似乎可以工作(从普通文件导入,然后导出到您将打开的文件)。这确实创建了明确的框,但在用户方面只需要很少的努力。我没有测试,但是你应该可以在脚本模式下,从命令行运行这段代码。
编辑
要在 Mathematica 中进行测试,您可以使用例如
Export["C:\\Temp\\formatTest.nb",
ToString@HoldForm@FullForm@
Plot[{Exp[x],Interpolation[Table[{k/5, Exp[(k - 1/2)/5]}, {k, 0, 5}],
InterpolationOrder -> 0][x]}, {x, 0, 1},
Filling -> {1 -> {{2}, {Yellow, Orange}}},
PlotLabel -> Style["Formatting", Blue, FontFamily -> "Courier"]],
"Text"]
在运行上面的代码之前。
关于wolfram-mathematica - 如何创建具有正确格式表达式的笔记本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7306773/