首先,對三者的一些基本功能做一個基本的評價;
LaTex | Markdown | TeXmacs | |
---|---|---|---|
即時預覽 | Y | Y | |
圖片編輯 | Y | Y | |
數學支持 | Y | Y | Y |
代碼插入 | Y | Y | Y |
網絡模板 | Y | ||
擴展支持 | Y | Y | |
選擇分頁 | Y | Y | |
輸出格式 | Y | ||
使用范圍 | Y | Y |
它們是什么?
LaTex(音譯“拉泰赫”)是一種基于TeX的排版系統,由美國計算機學家萊斯利·蘭伯特(Leslie Lamport)(同時這位也是寫出了號稱分布式計算領域內最難懂的論文“Paxos Made Simple”的那位)在20世紀80年代初期開發,利用這種格式,即使使用者沒有排版和程序設計的知識也可以充分發揮由TeX所提供的強大功能,能在幾天,甚至幾小時內生成很多具有書籍質量的印刷品。對于生成復雜表格和數學公式,這一點表現得尤為突出。因此它非常適用于生成高印刷質量的科技和數學類文檔。這個系統同樣適用于生成從簡單的信件到完整書籍的所有其他種類的文檔。
Mardown是一種語言,一種可以被普通的文本編輯器編寫的標志語言,通過一些簡單的標志可以使得簡單的文本內容具有一定的格式。Mardown本身的語法功能并不算強大,但是由于它強大的可擴展性,衍生出了極多的強大的版本和編輯器,它們在語法上基本兼容,只是在一些語法和渲染效果上有所改動。由于它的語法簡潔明了,且功能比純文本更強,因此有很多人使用它來寫博客(最著名的例子應該是全球最大的同性交友平臺GitHub)。它的強大之處一定程度上取決于你所使用的編輯器。這里使用Typora作為比較對象(本文同樣使用該編輯器完成)
TeXmacs是一個所見即所得的編輯器. 你也許想到了LyX, TeXworks之類的工具, 但是TeXmacs和它們不一樣—它并不依賴LaTeX. 他吸收了LaTeX的優點, 即文章的排版非常美觀. 同時它又不同于LaTeX, 比如, 在TeXmacs里是沒有“源文件”這個概念的. 另外它還有一些非常實用的特性(尤其是對于數學公式的支持), 可以極大的提高編輯效率。可以這么簡單的理解,TeXmacs既有LaTex的排版優點,同時又吸收了許多Markdown編輯器的功能,算是二者的一個綜合體。
功能橫向對比
就文中第一個表所提到的功能給它們做一個橫向對比,由于可能對三者的使用并沒有完全掌握,所以可能有些粗糙:
1、即時預覽
-
LaTex:LaTex具有非常多優秀的編輯器,但在使用這些編輯器之前首先要在電腦上安裝TexLive等編譯系統才可以使用,專門的編輯器有TexStudio、TexWork等,一些常見的IDE如VScode,Atom通過安裝插件也可以實現撰寫LaTex文檔的目的。
LaTex的編輯器均沒有即時預覽功能,這是由于本身其作為一個排版系統的特性所決定的。一般需要經過編譯運行,產生PDF文件之后才能實現預覽功能,一般編輯器會使用雙欄排版,一欄LaTex書寫源代碼,另外一欄提供編譯運行后的預覽功能。
如下圖,overleaf是一個在線的LaTex編輯器(額外說明:該網站提供了一個富文本模式下的LaTex實時預覽,但是效果馬馬虎虎)
-
Markdown:因為其語法的簡單便捷,Markdown可以說是擁有世界上最廣泛支持的標志語言之一。絕大多數的Markdown編輯器都提供了即時預覽功能(部分IDE可能沒有),在寫作的過程中可以即時得到反饋。同時一般的編輯器也支持SourceCode模式,給你足夠復古的體驗。
下圖是Typora編輯器:
-
TeXmacs:與我而言,TeXmacs最讓我驚艷到的一點就是它在書寫數學公式的時候的實時預覽功能,在使用LaTex的時候我就常常因為一個手抖打錯數學公式中的一個符號,然后在那一長串的源碼中玩起“一起來找茬”游戲,它的數學支持真的是非常棒,使用起來也相當方便,此外在Texmacs中存在著大量的快捷鍵,如果熟練掌握的話,寫作效率會得到極大的提升,。
但是實話說Texmacs的界面是真的太簡陋了,而且不知道是我的機器的原因還是其他,我在是使用Texmacs寫東西時總感覺偶爾有點卡頓,不夠流暢。
2、圖片編輯
-
LaTex:LaTex的圖片編輯支持在這三者之中毫無疑問是獨占鰲頭的,這不但得益于LaTex本身的系統設計,更加要感謝所有LaTex背后的開發小組的努力(TIKZ等宏包的出現無疑擴展了LaTex的圖文功能)。在LaTex中支持圖片的絕對路徑插入,插入的圖片可以選擇尺寸,位置和模式,而利用tikz宏包,我們可以利用其自帶的命令迅速地作出我們所需要用到的圖片。
下面是利用tikz作圖的一個代碼實例
\begin{tikzpicture} % draw the axis \draw[eaxis] (-\num,0) -- (\num,0) node[below] {$x$}; \draw[eaxis] (0,-\num) -- (0,\num) node[above] {$f(x)$}; % draw the function (piecewise) \draw[elegant,domain=-\num:-1/\num] plot(\x,{1/\x}); \draw[elegant,domain=1/\num:\num] plot(\x,{1/\x}); \draw[elegant,orange,domain=-\num:\num] plot(\x,{sin(\x r)}); \end{tikzpicture}
Markdown:和LaTex相比,Markdown的圖片編輯功能有些相形見絀。在Markdown里,插入圖片較為簡單,使用標記即可在所標志位置上插入圖片,比較遺憾的問題就是在Markdown中并不能自主控制圖片的大小,而是由markdown進行自動調整。
-
TeXmacs:Texmacs的圖片編輯功能也較為強大,比較優秀的一點就是可以直接粘貼復制圖片,無需使用路徑即可。同時在Texmacs內也可使用其自帶的功能進行直接畫圖,較LaTex來說,其可視化作圖和LaTex不太一樣的是,LaTex的
.tex
源文件中并不包含圖片,因此需要單獨存儲圖片。但是Texmacs中的圖片是嵌入在.tm
文檔中,移動起來相當方便。下圖是一個利用TM作圖的一個例子:
pasted_image037.png
3、數學支持
-
LaTex:LaTex的數學功能應當算是非常豐富的,其內置了許多的數學環境,并且通過配合宏包的使用可以對公式的間隔,字體,編號等進行非常多的調整。利用專用的LaTex編輯器中的快捷鍵可以避免輸入和記憶太多的命令和數學符號。
另外在LaTex中也可以相當簡便快捷地插入表格,矩陣。
-
Markdown的數學功能較為薄弱,可以做到插入數學公式,但是功能性仍然比較 薄弱,雖然兼容LaTex的部分語法,但是仍然不是很適合大量的公式輸入,不太建議用Markdown書寫帶太多公式的文檔。但是MD的表格插入做得十分便利,就像在Word中插入表格一樣方便,雖然表格的大小不能自由確定,但是其自適應做得不錯。
比如這條公式就是用MD鍵入的:
Texmacs:Texmacs的數學功能在這三者之中應該是最方便,最適用的。這也是為什么大多數人喜歡用它來代替LaTex的原因之一。
4、代碼插入
-
LaTex:關于插入代碼,LaTex依賴專門的宏包來完成。利用特定的宏包,LaTex可以更改代碼配色,控制代碼樣式,給代碼加入專門的代碼框。設置陰影等等。并且也可以插入偽代碼或者算法。
下圖是一個LaTex的插入的代碼的示例:
20160825100220467.png -
MD:MD的代碼插入最方便的一點就是便利,只需要用到標志```(三個連續的逃逸符號)即可插入代碼框,在代碼框內可以選擇語言類型便于著色。顯示效果如下圖(取決于編輯器)
import numpy as np import scipy as sp you = me = 1 love = (you and me) print("i love jiran!")
-
TM:TM同樣可以做到插入代碼,但是可供選擇的插入類型并不算太多,但是也是囊括了主流的C++,R,Python等。并且可以快速插入偽代碼,算法。
TIM圖片20180321185251.png
5、網絡模板
-
LaTex:LaTex的各種各樣的模板相當之多,不但有各個學校自己的學位論文模板而且網絡上還有許多開發者留下的比如簡歷模板,報告模板,論文模板,而各大期刊對于投稿也有自己的格式要求,并提供了相應的LaTex 模板,無需用戶自己設定字體格式。
例如LaTex模板等,資源非常豐富。
MD:MD沒有太多的模板,實際上也不需要太多的模板,因為語法簡便所以用戶可以自由地作出自己的模板。
TM:同樣和LaTex類似,內置的就已經有許多模板了。
6、擴展支持
? 這個功能基本上是只有LaTex獨有,就是因為LaTex極強的拓展性,具有各種各樣的宏包,隨著功能拓展的需要不斷進行更新。一般的LaTex IDE就會自帶著專門的宏包管理器,比較方便。
? 至于Texmacs,據我淺薄的認知,其IDE可以安裝許多插件,但具體我沒有怎么用過。
7、選擇分頁
? LaTex可以選擇按照系統排版自動分頁,也可以安裝自己的想法選擇獨占一頁或者自由安排版面,可用性較強。相比之下MD有些相形見絀。Texmacs的文檔似乎沒有提到分頁這一點,如果有什么黑科技可以實現的話,請一定要告訴我。
8、輸出格式
? LaTex的默認輸出格式是PDF,但是通過下載一些特定的工具如Tex2Word等可以將.tex
文件轉變成word文件。
? 而Markdown的話則是依賴于編輯器,對于我現在所用的Typora編輯器,在安裝了Pandoc之后,輸出格式有了非常多的選擇例如PDF,HTML,Word,EPUB,LaTex,圖像等。
? 對于TeXmacs其不但支持導出PDF,也支持導出LaTex和HTML。
9、使用范圍
? 這里主要提到Markdown,其作為一門輕量級標志語言得到了無數人的青睞,因此基本上很多網站都會提供相應的支持,許多程序或者庫函數的說明文檔一般都是用Markdown寫的。
各自的特色和適用場景
綜上所有的內容,做一個簡單的總結吧。
- LaTex更加適合去寫一些更為正式的論文或者比較復雜的文章和書籍。
- Markdown的功能比較簡便好用適合用來寫一些blog甚至是比較簡單的實驗報告等
- Texmacs如果你的文章需要進行大量的數學公式推導和書寫,建議使用Texmacs,如果你可以忍受它非常簡陋的界面的話。