Nas*_*ser 7 wolfram-mathematica
任何人都知道一个工具来找到源级别的2个笔记本之间的差异?
工作台2中的比较笔记本工具似乎在内部数据结构级别工作,这对我没用.我正在寻找能够查看源级差异的工具(在查看笔记本时看到的内容,即不是FullForm).
我在Windows上使用Mathematica的V8.
EDIT1:
我如何以更易读的形式显示NotebookDiff的输出/报告?
Sim*_*mon 10
这个答案是基于对该问题其他部分的评论中的讨论.它也可以(并且应该)自动化,如果它将被用于任何规律性.这可以通过标记您想要比较的细胞并使用NotebookFind
来找到用于提取和比较的细胞来完成.
用于比较单个大型代码单元的解决方案(有时在进行演示时会出现)是InputForm
从两个笔记本中复制代码
并将其粘贴到一个简单的差异工具,如Quick Diff Online ,然后为您显示标准差异:
上述代码取自纳赛尔的一次演示.
另一种选择是CellDiff
从AuthorTools
包中使用.
Needs["AuthorTools`"];
CellDiff[Cell["Some text.", "Text"],
Cell["Some different text.", "Text"]]
Run Code Online (Sandbox Code Playgroud)
要在演示中使用,您可以通过右键单击单元格括号来复制两个版本中的单元格表达式:
在内置的附加组件(in $InstallationDirectory/AddOns/Applications
)中有一个未记录的包AuthorTools
.加载后,它会公开一个NotebookDiff
提供一些基本差异功能的函数:
Needs["AuthorTools`"];
nb1 = NotebookPut[
Notebook[{Cell["Subsection heading", "Subsection"],
Cell["Some text.", "Text"]}]];
nb2 = NotebookPut[
Notebook[{Cell["Edited Subsection heading", "Subsection"],
Cell["Some different text.", "Text"]}]];
NotebookPut@NotebookDiff[nb1, nb2]
Run Code Online (Sandbox Code Playgroud)
由于此软件包没有文档,请注意它可能是错误的并且不被视为支持的功能,但希望您仍然觉得它很有用.
请注意,您还可以获得笔记本电脑的句柄,例如:
nb1 = NotebookOpen["path/to/a/notebook.nb"]
Run Code Online (Sandbox Code Playgroud)
以及当前在前端打开的笔记本列表
Notebooks[]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1255 次 |
最近记录: |