如何評價 MathType?

由於某些原因, MathType 在國內用戶眾多,以至於對於不少人來說它就是默認的公式編輯器。MathType 近些年來似乎發展極其有限,卻還受到一定程度的追捧。答案可以從它比微軟 Microsoft Office 2003 / 2007+ 公式編輯器的優劣、流行原因,它比 LaTeX 公式排版引擎的優劣、原理區別,操作上的方便程度、內容便攜程度、可訂製能力,以及它和其他 Office 插件類數學公式排版軟體的優劣等角度回答。


忙裡偷閒,滾過來寫 @李阿玲 布置的作業……

MathType 是個大坑,回答完畢。接下來說為啥。

話說我也算是 MathType 准資深(DB)用戶了,當然自從感覺用 DB 不好之後,我基本上已經拋棄它了,只是前不久因為瑪尼的原因又撿起來用了用,30天試用期間又比較深入的折騰了下,也算是變成半個 MathType 磚家,於是被李阿玲拎過來寫作業。

事情還要從很遙遠的上個世紀開始說起……

在很可能看到這兒的你還沒有出生的某個年月(1987),Design Science 發布了一款針對公式的圖像編輯器,起名叫 MathType;

比爾大叔在次年發布了 Office 之後,覺得 Office 不能沒有公式支持。他看 MathType 是好的,於是決定把 MathType 收過來(來源請求);

兩家經過耐心細緻的溝通交流,最終決定,Design Science 搞一個縮水版的 MathType 授權給微軟使用,想要完整功能呢,用戶還得從我這兒買。是年公元 1990。

於是在長達十五年的時間內,所有 Office 都自帶 MathType 的縮水版,——沒錯你猜對了,這貨就是坑死人不償命的微軟公式編輯器

微軟公式編輯器這十幾年的時間內沒多大變化,而 MathType 就不一樣了,變化還不少。不過呢,這倆都是一種特殊的圖像編輯器,用來排版數學公式的。用在 Office 中,是以 OLE(windows) 或者 EGO(OS X) 對象的形式嵌入到文檔中,一方面存儲了已經渲染好的圖像(一般為矢量圖,比如 Windows 平台上的 WMF,比如 EPS 等),另一方面為了自身編輯處理的需要,存儲了自己格式(MTEF)的數據文件(或者將這些數據以64進位文本以注釋的方式放在圖片文件中)。

MathType 的各種牛(dou)逼(bi)功能,就依賴於這種特定的數據存儲格式。

不得不說,當年 Design Science 造出來的這種公式存儲格式,還是很有點兒意思的。熟悉公式的代碼汪都了解,目前主流的公式處理方式,要麼是結合線性與層級的 LaTeX 格式,要麼是人看著彆扭的層級 MathML,總的來說,用來顯示的公式不容易用線性方式表示(當然用來給計算機算的還是應該往線性了寫),MTEF 呢就是一種層級結構的嵌套表示方式。整個公式的創建與渲染過程,大體上類似於:

公式框
模版A(兩個子框)
子框1
模版B blahblah……
子框2
字元C

內容決定框的大小,模版各自有自己的排布方式和渲染方式,比如分數模版就在兩個子框中間畫一條線……於是一方面公式裡面存的到底是個什麼樣兒的公式就知道了,順帶一起渲染了張圖存了起來。

在 MTEQ 的宿主程序比如 word 中,MTEF 沒有毛線用,宿主程序只負責把它那張圖擺在這兒顯示出來。

然而,雖然 MathType 藉助於 Design Science 這種非常賺錢的營銷方式,遍佈於上百個不同的宿主應用中為它們提供公式編輯的支持,它的這種私有格式並沒有得到廣大不明真相的人民群眾的支持,——OMML 好歹是 XML 文本而且文檔豐富,你一私有的二進位格式還好多個不同版本不一定怎麼變,開源社區就不待見了。於是啊,LibreOffice/OpenOffice 支持 OMML 公式的編輯修改、甚至部分的支持 MSEQ 3.0(猜測也是反向 doc 的時候順帶反出來的),就是那個縮水定製版 MathType 公式,卻沒辦法正兒八經支持 MathType。

還有一個問題是關於字體的。MathType 安裝之後會添加若干字體,而 MSEQ 卻沒有那些字體,所以大部分情況下,用 MSEQ 創建的公式都特別丑,大部分情況下用的是宋體(中文 word 下)。那 MathType 的字體又坑在哪兒呢?

說到這兒,不得不提到萬惡的編碼,關門!放 Unicode!

LaTeX 玩家應該了解,公式就是拿一堆字元堆起來么,變長、放大怎麼了,我可以拿幾個字元拼出一個愛多長多長的括弧來……對了,MathType 也是這麼乾的,因為 Unicode 裡面那些個字元就是這麼玩兒的吖。

現在問題來了,如果我要的字元,Unicode 裡面暫時沒有,咋整?好說好說,換個別的字體,把字元都改掉就行了唄。嗯,大家都是這麼乾的,LaTeX 是,Word 是,MathType 也是……況且,Unicode 自己還給我們留了一些私有區域用來做這件事情。於是呢,我們從 MathType 面板裡面敲出來的一些符號,它的實際編碼可能跟符號不一樣……MathType 在 MTEF/WMF 裡面寫了誰是用什麼字體,但是別的軟體不一定知道/不一定找得到啊,於是比如用 LibreOffice 打開帶有 MathType 公式的 doc 文檔之後,你經常會發現一堆亂碼。別跟我說 WPS,它們也是 Design Science 的客戶好么。

再說公式轉換。前面提到了 MTEF 的層級嵌套格式,後來 Design Science 發現,卧槽這個格式屌爆了,大家的數學公式不都是差不多這麼存的么?是不是就可以轉來轉去了?於是從某個版本開始,提供公式轉換的功能,並且,自己定義了一種叫「轉換定義語言」(tdl)的語法,想把 MathType 的公式轉換搞成通用的平台。這個轉換的原理其實很簡單,把不同的模版用不同的代碼替換掉、把對應的符號用對應的代碼替換掉,從外層開始層層剝離,搞定。反過來的轉換就稍微有些難度了,所以直到 MathType 6(是吧?),才開始支持 LaTeX 轉 MathType。由於他們對 LaTeX 的掌握程度明顯不如 @李阿玲 ,導致有些轉換不對,並且轉換不可逆,就是比如 LaTeX-&>MathType-&>LaTeX 這樣就變樣了(比如典型的 cdot)。當然,這個跟 MathType 自己的格式有殘缺有關,而正是這種殘缺,使得 MathType 轉換 LaTeX 時有不少噁心的表現,暫且不表。

由於 Design Science 那群人放著好好的 LaTeX 格式不用,自己造了那麼個東西,而他們對 LaTeX 也不見得多麼熟悉,所以目前版本的 MathType 自帶的轉換到 LaTeX 的定義文件寫的很水很水,所以前面有人提到轉換之後的 LaTeX 公式多了一些沒用的 {},這個主要一方面怪 tdl 文件的定義不對,一方面也怪那個嵌套模型和傻傻的機器處理方式。總而言之言而總之,目前的 MathType 跟 LaTeX 公式(AMS)無法作雙射。

(當然還是有方法讓 MathType 轉 LaTeX 的結果更好的,方法嘛,給李阿姨捐錢啊你懂的


########### 孤獨寂寞的昏哥線 ###########

上面都是內部細節,下面說說 MathType 的外在表現。

所見即所得,這是最大的優勢。當然,與其它所有 WYSIWYG 軟體一樣,正因為這種優勢,使得很多人造出來的公式其實不規範。舉個栗子,
int_0^1sin(x); d,x= 1 - cos(1)
對 LaTeX 語法而言沒所謂,順序輸入就可以了,但對於 WYSIWYG 的 MathType,甚至 Office 2010+ 的 OMML,由於模版-佔位符和嵌套的效應,你需要時刻注意,比如上面的例子中,sin(x) dx 是在積分模版的那個框框里的,但等號不是。

這方面需要注意的其實還有不少,也正是因為注意不注意,顯示效果對很多人而言沒多大差別所以就沒幾個人去注意,所以……呵呵。

順便,MathType 雖然所見即所得,如果你不去熟悉它那套快捷鍵,輸公式根本不夠快。當然,自從支持 LaTeX 轉換之後,很多時候我是先打 LaTeX 公式,然後 Alt- 轉過去。這個時候你又會遇到另一個坑,——word 的自動替換功能使得純文本輸入需要時刻注意。

再接下來,MathType 的另一個功能,公式編號。直接上結論好了,鑒於 MathType 自己提供的公式編號很多人學不會,而且操作起來也有不少坑,推薦使用 Word 題注的方式進行編號,並順便了解下所謂的「樣式分隔符」。

與 OMML 的比較:如果你的文檔交換對象都用 Word,但可能還有人在用棺材裡的 Word 2003,而且你說服不了他換成新版,——好吧你基本上告別 docx 跟 OMML 了,那就 MathType 吧,反正儘管他們沒有 MathType 不能編輯也是能看到圖片的;
否則,儘管目前 word 中 OMML 的公式渲染效果(嗯,這個問題相信如果某軟把李阿姨拉到 Office 組裡面是可以解決的,當然可能某軟是真沒本事結局這個問題,畢竟這麼久了還是這個 SHI 樣)還比不上不怎麼好的 MathType,為了方便文檔共享,還是別用 MathType 了。

最後,如果你非要用 MathType,一方面,一定要熟悉那些快捷鍵(至少上下標希臘字母什麼的得熟練啊),另一方面,建議打開 `Show Nesting` 開關,方便看出嵌套關係。再有,注意區分行內公式與行間公式(雖然平常用沒多大影響)。最後的最後,雖然我之前也沒買過,如果你非要用,還是建議用正版(這公司弄這麼點東西竟然能活到現在!你不考慮下幫人家續續命?畢竟人家也幫了你不少)。

( @李阿玲 來檢查作業,哪兒還需要補充我再修改)


自己花點時間給 MathType 配置好快捷鍵,以後輸公式快得不行不行的,哼。

Mathtype 裡面所有的菜單、符號、結構等都可以添加快捷鍵。請根據自己的需求和習慣為你常用的功能添加上快捷鍵。
我舉一個例子講,假如一個數作為一個中心,我們可以把快捷鍵的基準鍵設為比如(舉例子!)Alt + D, 然後如果有且僅有右上角有角標(別噴,我是文科生),那就把二級鍵設定為 R (R 在 D 的右上角), 如果右下角有角標,就把二級鍵設定為 C, 如果右側上下都有角標,那就設定為 F, 類似於這樣~
想我一介學外語的文科生,當年幫人翻譯論文的時候這些快捷鍵玩得這個遛哇,連矩陣/行列式在可選的那幾階都設定好了。。。雖然我什麼都不懂,但是輸入的技巧還是很可以的哈,比如說,矩陣,我設定的基準快捷鍵是 Alt + M, 然後我怎樣來記住剩下的比如 3 × 2 或者 1 × 4 的矩陣呢,我就把 1, 2, 3, 4 到 Z, X, C, V 這四排當作了一個斜了一些的映射——比如,一個三行二列的矩陣,那麼它的右下角就落在了 S 上,於是就把它當作二級鍵就好啦。(同理一行四列的矩陣就是 4.)把超出 4 × 4 的都歸做 Alt + M, G 裡面,讓這個快捷鍵去喚醒那個更全面的輸入矩陣的對話框就好了嘛。
而且 MathType 還可以支持配置類似 Alt + C, Shift + D 這樣的基準/二級都帶有功能鍵修飾的快捷鍵,所以應該來說可以保證讓其所有的功能都配置上快捷鍵而不重樣(理論上來說大概可以支持近 10 萬個快捷鍵組合),當然要一個個地配置也是很費勁的。
配置的時候想一些適合自己記憶的規律。然後習慣 MathType 這種嶄新的快捷鍵輸入方式就好啦。
熟練以後打起公式來就像打拍子一樣很有節奏感(想像一下「按→按→抬→按」甚至是「按→按→抬→按→按」完成一次快捷鍵輸入,長久按抬按抬,我這兒還是機械鍵盤,那真的是爽得不得了呢),也很快很方便~
反正我又不懂我在輸入什麼,只要照抄就好啦。
唯有一點不好的就是,MathType 把快捷鍵的設定、字體、字型大小、界面背景等等的一切都存入了註冊表,所以如果要備份的話,需要自己把它那一堆註冊表導出來。本地沒有它的配置文件。
話說這樣一個跨平台的軟體竟然還這麼熱愛註冊表也是挺奇葩的~


飯正我覺得,Word自打升級到2013以上後就再也不用坑爹的Mathtype了,Alt+=開啟公式輸入,記住一些常用的轉義(int_a^b 變從a到b積分這種) ,還可以切換自然書寫顯示、線性顯示、普通文本和斜體文本。打公式再不用滑鼠點了(沒用過LaTex但是看介紹貌似也是這樣的效果)。

用mathtype輸入的公式在列印店裡發現錯了簡直哭瞎。

-----------------------------------

終於知道為什麼這個軟體還能繼續活下去了

某些國內期刊投稿要求

Word論文內的公式必須用Mathtype寫

???

編輯們都用Word 2003???

光是公式大小可以縮放不跟字型大小改個文章都能把人搞死了好吧!!!

為什麼我打個公式還要裝一個收費軟體??

Word不好么???


我一直不知道mathtype怎麼用快捷鍵


大家不妨試試AxMath,兼有MathType和LaTeX的優點,在所見即所得、排版設置、快捷鍵定義等方面,比MathType界面更直觀友好,而且AxMath支持基於公式的計算功能,可以完全替代桌面上那種按鍵計算器


Mathtype對我最大的好處就是:
docx轉換成兼容的doc後,微軟自帶公式編輯器的公式會變成模糊圖片無法編輯,mathtype的不存在上述問題。


MathType 所見即所得,有菜單,初次學習成本較低。它的常用,是與其能平滑嵌入 Word、補足 Word 公式輸入短板、內置默認字體優於早期 Word 的默認公式字體分不開的。再多想一步,就要涉及盜版之橫行,此處略過。然而 MathType 若想折騰得好(多行公式的對齊、自動編號、公式組的對齊與間隔,甚至行內公式與正文文本間的豎直方向對齊問題等),所費功夫想來與看一遍 LaTeX amsmath 宏包文檔相差無幾。

說來,LaTeX 數學模式下命令的「難記」,部分是因為我等使用者母語非英語,不知道那些符號怎麼讀怎麼拼寫,於是便於記憶而縮減單詞設計出的 LaTeX 數學命令,對我等而言無異於另一重加密。

是不是可以擁有 LaTeX 的公式輸出質量與細節控制,而又兼顧 MathType 式的所見即所得、菜單點選和 Word 嵌入?按照李阿姨的說法,這只是錢的問題(不是技術達不到)。


還不錯的數學公式編輯軟體,只有自己使用了才知道好用不好用。https://pan.baidu.com/s/1qXBN5M0 密碼: tpdb


有時候在LaTeX中寫公式太長或者忘記某些字母也會調出MathType把公式擼出來然後複製到LaTeX中,可視化優勢強,不容易出錯。


首先,軟體本身實用,兼容性一般,容易出現vba報錯和mathpage.wll報錯。
另外,它在中國的代理經銷商蘇州死ma傑克丁公司,就做的很過分了,其所謂的對mathtype軟體擁有的著作權(以此各種舉報)值得商榷。該公司只是resellers之一,英文官網http://www.dessci.com顯示無論哪一層級的re-seller都沒有design science的著作權授權。
第三,英文官網版本可以直接選擇unlock選項,輸入key,然而中文的win下載版,則不能選擇unlock(除非用灰色按鈕剋星)。mac版需要特定版本才不是灰色。安裝問題及安裝後Mathpage.wll報錯問題,用網上百度經驗沒法解決的,我也可以解決,three four three six seven O double two one five。


個人覺得mathtype,是一個是好用的公式編輯軟體


MathType6.1轉LaTeX公式的時候,偶爾會莫名其妙添加好多多餘的{}。

我也遇到過多行公式MathType排版好轉LaTeX很醜的情況,裡面有分式,它給你轉成frac,那分子分母合起來就佔一行太丑了,還得人肉改。

感覺有bug。


推薦閱讀:

《獨唱團》的字體排印與裝幀設計方面有哪些值得學習或有待討論的地方?
在很多英文論文里,遇到「f」和「i」相鄰的情況時,會用「?」(注意這不是 f 和 i 的組合,而是一個字元)這個字元代替。請問這個字元有什麼說頭嗎?
在現今,最能代表中國的是哪種字體?
字數多的海報如何設計才能搶眼?
為什麼像 Pocket、Instapaper、Readability 這些簡潔、純粹的閱讀工具卻沒有兩端對齊?

TAG:排版 | 字體排印 | MicrosoftOffice | MathType | 公式編輯器 |