渲染数学公式

Eri*_*ner 4 macos cocoa objective-c

在Cocoa应用程序中实现数学公式渲染的最佳方法是什么?

MacOS X附带了一个名为Grapher的实用程序应用程序,它完全按我需要的方式执行(/Applications/Utilities/Grapher.app).

use*_*368 6

如果您只需要排版方程式而不是构建交互式方程式编辑器,您可能需要查看使用方法troff.它有一个相当简单的方程式语法,输出postscript,并且是OS X的一部分.使用它的最简单方法也需要ghostscript.

作为示例(基于手册页):

创建文件文件fib.tr:

.EQ
x sub i = x sub {i-1} + x sub {i-2}
.EN
Run Code Online (Sandbox Code Playgroud)

使用eqn和转换为postscript groff:

$ eqn fib.tr | groff -P-b16 > fib.ps
Run Code Online (Sandbox Code Playgroud)

使用ghostscript计算并提取边界框:

$ gs -dNOPAUSE -sDEVICE=bbox -- fib.ps 2> fib.bbox
Run Code Online (Sandbox Code Playgroud)

将边界框信息添加到ps文件以生成eps文件:

$ cat fib.ps | sed -e '/%%Orientation/rfib.bbox' > fib.eps
Run Code Online (Sandbox Code Playgroud)

使用大多数TeX发行版中包含的perl脚本将eps文件转换为pdf(可从http://tug.org/epstopdf/获取)

$ epstopdf fib.eps
Run Code Online (Sandbox Code Playgroud)

现在你有一个pdf图像,它只包含最小填充的渲染方程.

或者,如果您的用户安装了TeX(或者您想要轻松地将最小的TeX发行版与您的应用捆绑在一起),那么LaTeXiT会提供排版方程式服务并将其作为PDF图像返回.你可以用它来调用它NSPerformService.