2011-01-07 134 views
4

什麼是執行在Cocoa應用程序中的數學公式呈現最好的方法?渲染數學公式

有一個實用程序應用程序包含在MacOS X中,名爲Grapher,它完全按照我需要的方式執行(/Applications/Utilities/Grapher.app)。

回答

4

正如我在my answer描述了this similar question,我建立了一個系統,用於my iPhone application這樣做(這也適用在Mac上,但我根本就沒有完成該版本的應用程序還)。

我用核心動畫層來表示等式的層次結構,與用於各種操作類型的石英繪製的元素。這讓我能夠以相對輕鬆的方式製作排版,即使是第一代iPhone硬件也能順暢進行排版。

像任意方程的評價,分割佈局,並將階層化使佈局計算非常簡單,靈活。但是,我還需要幾個月的時間才能找到一切。

如果您想使用現有的解決方案,您可以看看Matt Gallagher的優秀開源項目Magic Number Machine,其中at least one developer已用作商用Mac計算器的基礎,並使用方程式排版。

+0

謝謝,我已經找到了答案。我已經開始使用表達式樹來開發自己的實現。最初,我想使用* mimetex * lib,但不幸的是它獲得(癌症)GPL許可。 – 2011-01-07 22:19:17

+1

@Erik - Matt的東西是BSD風格的許可證,所以你可以先看看他做了什麼。相信我,這聽起來很簡單,但如果你自己推出,那麼要正確的選擇是很耗時的。 – 2011-01-07 22:35:15

6

如果你只需要排版公式,而不是建立一個交互式公式編輯器,你可能想看看使用troff。它有一個相當簡單的公式語法,輸出postscript,是OS X的一部分。使用它的最簡單的方法也需要ghostscript。

爲例(基於該男子頁):

創建文件文件fib.tr

.EQ 
x sub i = x sub {i-1} + x sub {i-2} 
.EN 

轉換與eqngroff到後記:

$ eqn fib.tr | groff -P-b16 > fib.ps 

計算和提取與ghostscript的邊框:

$ gs -dNOPAUSE -sDEVICE=bbox -- fib.ps 2> fib.bbox 

邊框信息添加到PS文件,生成EPS文件:

$ cat fib.ps | sed -e '/%%Orientation/rfib.bbox' > fib.eps 

使用perl腳本轉換EPS文件爲PDF格式包括大多數的TeX發行(以及可在http://tug.org/epstopdf/

$ epstopdf fib.eps 

現在你有一個pdf圖像,其中包含最小填充的渲染方程。

或者,如果您的用戶安裝了TeX(或者您想要通過將a minimal TeX distribution與您的應用捆綁在一起的麻煩),則LaTeXiT提供了一種排版方程並將其作爲PDF圖像返回的服務。你可以使用NSPerformService來調用它。