如何高效的聯合使用 Mathematica 和 LaTeX?
01-08
Mathematica的長處是計算,LaTeX的長處是排版,怎麼樣把他們結合起來,高效的使用。
如果是基於LaTeX的調用Mathematica的方式(我不知道有沒有這樣的宏包),就像SageTeX一樣可以在TeX中包含Sage代碼,編譯完畢將代碼部分轉為計算結果排版輸出。如果能夠動態的編譯,可以實時預覽,那就最好不過了。如果是基於Mathematica的話,感覺排版不是十分給力(初學,好多功能不懂,說錯了請輕拍)。內含的排版工具簡單的學習了一下,但是感覺不太好用。一方面各種各樣的菜單操作讓人很不爽,雖然Alt+數字定義了一些樣式,但是遠遠不夠用。很常用的Item在裡面就木有。另一方面,自動編號功能太弱了,還要不停地要使用菜單操作。還有我不知道怎麼實現這麼一個效果,比如:我要在文本中間插入某一個運算結果:{text}{input}{text},當我輸完中間的input樣式部分,按ctrl+Enter,該行就分散對齊了,不知道什麼原因。我想要的效果是 如果我輸入: {bla}{Simplify[Sin{2x]/Cos[x]]}{blabla}:它會輸出:{blabla}{}{blabla},不過出現帶input,output編號的東東。應該怎麼解決這麼一個問題??
更新!!!
今天看到一個屌爆天的東西,也許正是樓主你需要的。
https://github.com/Akollek/LaTeX-Alpha用calc{Mathematica Code}直接在LaTeX中引用Mmtc的計算,用graphic引用作圖。
放兩張圖大家感受一下:
- LaTeX要調用Mathematica代碼的話,很重要的一個問題是MathKernel得是開啟狀態,我自己並沒有覺得有這樣的必要。需要計算就直接用Mathematica計算好了,Mathematica可以輸出為標準LaTeX格式的代碼,到LaTeX里直接粘貼就OK了。
- Mathematica本身也可以當一個不錯的排版工具用,當然這個排版更適合作為一種文檔查看,而不是像LaTeX那樣更傾向於列印效果或者紙版文檔的效果。Mathematica自家的大多文檔、演示、以及SlideShow(即演示幻燈),這是Mathematica9自帶的SlideShow模板庫。
- 你說的Item,以及你沒提到的ItemNumbered等,都是內置在Mathematica裡面的。
- 在Mathematica中輸入文本和Expression混排,我覺得是不合適的。LaTeX是排版軟體,它可以不關心你的dy/dx其中d和x/y是什麼關係,但Mathematica不行,它必須明確其中任何一個字母的含義,是文本就是文本,是表達式就是表達式。要想混排,我想到一個權宜之計就是全轉換成文本。
你可以試試LyX,它可以呼叫mathematica等代數運算工具,充當他們的前端,我沒用過這個功能,不知方便不方便;
排版方面,LyX的內核是latex,完全可以滿足你的精細排版需求。
如果你用LyX進行有關中文的寫作,可以參考我寫的這個設置嚮導:
LyX中文配置 Tips英文寫作的支持度很高,無需專門設置。TeXmacs 可以作為很多數學軟體的前端,包括Mathematica。雖然不是LaTeX或者TeX的前端但是可以導出為LaTeX代碼。(多謝 @黃知虎 指出~)
使用LyX直接調用Mathematica,可以看這個鏈接Running Mathematica without the Notebook interface.如果你用的是Mac的話可以這樣做:
- 在建立/usr/local/bin下建立一個Unix executable的文件,命名為math (沒有後綴),文件的內容為:
#!/bin/sh
/Applications/Mathematica.app/Contents/MacOS/MathKernel "$@"
- 我用的是development version 的LyX 2.2.0, 可以這樣調用Mathematica:
Edit-&>Math-&>Use Computer Algebra System-&>Mathematica
下圖等號左邊是我輸入LyX的,等號右邊是在LyX裡面調用Mathematica直接得到的結果:
輸入:cd /usr/local/bin
touch math
nano math
把上面的兩行代碼複製進去,保存退出,然後Terminal 裡面輸入
chmod 755 math
簡單使用的話
用Mathematica的方式排版,轉換成Tex,使用字元串處理優化有些Tex則使用ImportString,轉換成單元Cell,[有些不是很能解析的,可以用Mathematica字元串處理轉換一下]重度使用的話應該使用樓上回答的那個程序包,有空玩一下。我通常使用較多的是mathjax的有些輕量級的Tex跟Mathematica排版的相互轉化。推薦閱讀:
※如何提高 LaTeX 輸入速度?
※康托爾集的基數為什麼是2^{?0}?
※如何在網上學習數學?有什麼網站或者視頻教程嗎?
※橢圓函數、超幾何函數、貝塞爾函數在物理和工程方面有怎樣的應用?
※2^2^2^2^2^2....直到N個2次方,數學符號如何表示?
TAG:數學 | WolframMathematica | LaTeX |