2012-11-06 26 views
4

我打算使用Xcode爲iPhone創建一個應用程序,顯示高中和大學生經常使用的數學公式。我用Mathematica完成所有的數學運算,並允許我以三種相關格式保存這些方程。 (1)LaTex(.tex); (2)MathML(.mml); (3)XHTMLMathML。iOS應用程序中的LaTex,MathML和XHTMLMathML之間的權衡?

Mathemactica文檔說第三種格式是嵌入MathML的XHTML。我發現this browser test的一些示例在我的iPhone上看起來不太好。所以我想可能不會完全依賴MathML。

我是Xcode和上面提到的三種文件格式的初學者,但是我對C++中的OOP有一些經驗。假設Mathematica可以很好地編寫任何方程所需的LaTeX,MathML,XHHTMLMathML,那麼這三種文件格式之間的權衡是什麼?我可以在同一個應用中混合使用這些格式嗎?

+0

我寫了一個可以進行公式排版和LaTeX輸出的iOS應用程序,讓我告訴你這不是一件容易的事。我在[我的答案]中詳細討論了排版方面(http://stackoverflow.com/questions/2907045/drawing-formulas-with-quartz-2d/2908269#2908269),但我應該說解析LaTeX是一個相當大的挑戰。根據我的經驗,MathML更容易工作,但我沒有像LaTeX那樣花費太多時間。爲列出的任何格式編寫解析器,更不用說可視化佈局引擎,需要一些時間。 –

+0

@Brad拉爾森,這是[這個問題]的後續行動(http://stackoverflow.com/questions/13215321/how-to-make-math-equations-in-xcode)。我不打算讓一個用戶輸入或編輯數學方程的應用程序。我的應用程序將允許用戶查找他們沒有記住的有用方程。這將包括四極方程式,球體積等。我正在尋找指導方針,我應該採用什麼方法來確保方程式顯示在教科書中。 –

+0

對,我面臨的最大挑戰是方程式元素的佈局,這就是爲什麼你之前的問題中的人們指出我的舊答案。您可能無需編輯它們就可以輕鬆一點,但您仍然需要自定義Quartz繪圖和這些元素的佈局。這是我仍然推薦的分層結構,即使是靜態方程式佈局。你的解析器將生成這個元素層次結構,然後你可以使用Quartz,UIKit和CALayers的組合來渲染到屏幕上。 –

回答

2

我會建議使用HTML。包含數學內容的「正確」方式是MathML - 它是HTML5的一部分(但請參閱下面的使用TeX)。

iOS的UIwebview基於webkit,因此具有相同的部分MathML支持(儘管在iOS5上它由於字體錯誤而顯着更糟),所以我也建議使用MathJax(免責聲明:我是MathJax的一部分)。

MathJax是一個開放源碼的JavaScript庫,它可以理解TeX和Asciimath輸入,將其中一個轉換爲MathML,並將MathML呈現爲HTML-CSS或SVG(在任何現代瀏覽器中)。

MathJax混合這些輸入格式沒有問題。另外,它比webkit有更好的MathML支持(如果你願意的話,你總是可以配置MathJax使用本地的MathML支持 - 比如說當你知道你的內容應該在webkit原生支持中渲染時)。

爲了讓你開始,你可以看看this open source app,看看如何將MathJax集成到iOS應用程序中。

相關問題