3

由於我使用Mathematica很多我的想法寫一個小型,CAS剛剛暴露了必要的功能和包一個非常小的子集中使用,我想呈現結果以適當的方式像數學用戶不會(忽略背景Facebook的標誌:d):數學類(膠乳)排版用於自己的CAS應用

Mathematica's Output

我的第一個想法是在後臺和pdflatex的創建LaTeX的代碼來源和包括PDF然後在視圖中...但是這似乎太多矯枉過正!我想用C++或C#編寫這個CAS,我想知道是否有推薦的解決方案來輸出這樣的好公式。

我首先想到的是「實時公式編輯視圖」,但是這將是確定有一個輸入框輸入命令和公式和上面觀只是無法編輯輸出。

+2

我可能會關閉,但如果我願意寫我自己的CAS,表示層不會是我的主要初期關注的問題之一。您可以稍後使其更復雜,或者甚至可以從CAS表達式中生成Mathematica盒裝表達式,並暫時使用Mathematica FE。我可能不會選擇你提到的任何一種語言作爲實現語言,而是選擇一些具有良好FFI的現代快速功能語言,比如OCaml(或LISP)。只是我2美分。 –

+3

不是爲了遏制你的熱情,但已經有幾個開源CAS程序。 [Maxima](http://maxima.sourceforge.net/)及其豐富的GUI [wxmaxima](http://andrejv.github.com/wxmaxima/)和[Sage](http://www.sagemath .org /)想到。像那樣的項目通常不是單人事務,我覺得你可能低估了所涉及的努力。另外,我不會從思考如何實現最好的輸出開始,而是先做核心CAS的東西。 –

+0

我知道,但是我已經實現了一些核心組件。我的目標是練習我的技能,並實施我們在CAS講座中學到的算法,並且我只想實現一些東西來獲得這個「味道」:) –

回答

5

一些方法來我的心。

  1. 如您所說,在幕後使用LaTeX排版等式。 Cadabra再次這樣做。
  2. 使用TeXmacs作爲前端。 Cadabra這樣做。
  3. 使用MathJax。這是一個JavaScript框架,可以將TeX方程渲染爲圖像或MathML。如果您的UI工具包中有HTML視圖,則使用它非常容易。例如,MathJax用於姊妹站點MathOverflow

我找到路線3是最吸引人的。

+3

+1在路由3上達成一致,MathJax可能是一個合理的決定。 – Orbling

+0

+1 MathJax似乎是這樣一個小項目最方便的解決方案!我會看看我是否會顯示圖像或htmls,但非常酷的解決方案。 –

+0

TeXMacs可能是最少量的工作。已經有一個[外部程序的標準接口](http://www.texmacs.org/tmweb/manual/webman-interface.en.html),已經被[許多CAS]使用(http://www.texmacs .ORG/tmweb /插件/ cas.en.html)。然後你可以專心編寫你的CAS。 – Simon

2

要在後臺調用LaTeX,請不要使用pdflatex,而要使用非PDF latex生成DVI文件,然後將其轉換爲帶有dvipng的PNG。

查看preview包或standalone類以獲取正確大小的輸出(即只有公式,而不是整個頁面)。