MATHEMATICA HOW TO

How to| 创建一个可计算文档格式(CDF)的文件

可计算文档格式(CDF)文件通过一个公共格式所提供的广泛分布,为充分利用 Mathematica 语言的能力与灵活性提供了丰富的部署方法. 作为 Mathematica 8 的一项内置功能,您可以直接将您的工作笔记本、自定义格式的论文和文章、或专用应用程序的开发工作流程保存为 .cdf 文件. Mathematica 中的任何计算都可以成为可与用户交互的对象,使您更清晰地阐明您的概念提供. 并且,您无需再为创建只供 Wolfram CDF Player 查看的文档作特殊考虑,笔记本的全部功能都可以显示与打印.

可计算文档格式的文件可以基于现有的笔记本创建,也可以或从头开始创建. 任何能够放到 Mathematica 笔记本中的内容都可以放到这类文件中.

创建 .cdf 文件的最简单方法是从菜单中选择 文件 ► 新建 ► FreeCDF (.cdf)

正如打开一个新的笔记本一样,这时将弹出一个新的空白窗口. 您可以像在 Mathematica 笔记本中一样在该窗口中添加内容.

Mathematica 笔记本与 .cdf 文件的主要不同体现于当您在 CDF Player 中查看文档时对互动的允许程度. 笔记本文件(扩展名为 .nb 的文件)可在 CDF Player 中作为静态文档查看,但任何 .cdf 文件中的 Manipulate 对象在 CDF Player 中都是完全互动的.

例如,如果将下面的输出放到一个 .cdf 文件中,通过 CDF Player 阅读该文档的用户将可以通过移动滑块与之互动:

动态与静态内容可以在 .cdf 文件中自由混合. 比如,您可以给该互动界面加一个标题:

然而,以这种方式创建的 .cdf 文件中的所有内容并不一定都是互动的. 更多信息,请参见".cdf 文件中的互动性".

    

也可采用两种方式将打开的笔记本放到一个 .cdf 文件中。第一种方法是使用 另存为 菜单,而第二种方法是使用 部署 菜单项。欲了解关于 部署 菜单项的更多信息或如何将 .cdf 文件嵌入到现有的 HTML 中,请参阅 "创建一个可计算文档格式(CDF)的文件".

如使用 另存为 菜单,需在 Mathematica 中选中您所打开的笔记本,然后选择 文件 另存为...:

然后在出现的文件浏览器窗口的下拉菜单 Save as type: 中选择 可计算文档 (*.cdf)

这样,您的笔记本就成为了一个互动的 .cdf 文件,可以在 CDF Player 中查看.

    

创建 .cdf 文件的第三个方法是利用 Export. ImportExport 都完全支持"CDF" 文件格式.

这是含有 Manipulate 输出的 Notebook 表达式的例子:

In[1]:=
Click for copyable input

新打开的笔记本应该与下面相似:

要从该笔记本表达式创建一个 .cdf 文件,可以与任何其它文件格式一样使用 Export

In[2]:=
Click for copyable input
Out[2]=

部署 .cdf 文件

使用 文件 ► CDF Export 菜单项,您既可以将 .cdf 文件另存为一个独立文档,也可以将整个文档或选定的内容轻松嵌入到现有的 HTML 代码中。

如要生成独立的 .cdf 文件,需选择菜单项 文件 ► CDF Export ► Standalone...

在点击该菜单项后,会弹出如下窗口:

按照向导说明将文档保存为独立的 .cdf 文件。需注意的是,如果您希望保存笔记本中的选定内容,而不是整个窗口,您必须在打开部署向导前将待部署的内容选中。

    

如果您希望创建一个可嵌入到网页中的 .cdf 文件,需选择菜单项 文件 CDF Export ► Web Embeddable...

在点击该菜单项后,会弹出如下窗口:

该向导将引导您完成将整个文档或部分内容保存为 .cdf 文件的整个过程,指定 .cdf 文件将要在您的网页服务器上存放的位置,然后提供一段 HTML 代码段供您复制并粘贴到已有的 HTML 文件中。注意,与部署独立文档相同,如果您希望保存笔记本的选定内容,而不是整个窗口,必须在打开部署向导前将待部署的内容选中。

.cdf 文件中的互动性

Mathematica 中的绝大多数函数均可用于创建 CDF Player 的应用程序,但必须注意几个编程方面的限制.

  • 不支持对话窗口.
  • 不支持包括 J/Link 和 .NET/Link 在内的 MathLink 操作.
    

另外,对于大型代码块、程序包或大型数据集来说,将它们在创建 Manipulate 输出之前定义,然后利用选项 SaveDefinitions 将其在输出内的状态保存,可能会更为方便. 下面这个简单的例子是上例的翻版,而没有使用 Initialization.

In[2]:=
Click for copyable input
Out[4]=

有关 .cdf 文件中更高级别应用程序内容的激活,例如任意输入、对话窗口,及加载外部数据等,请与 Wolfram Research 联系.

New to Mathematica? Find your learning path »
Have a question? Ask support »