主頁 > 知識庫 > Linux折騰記(十四):優(yōu)秀的文本化編輯思想大碰撞(Markdown、LaTeX、MathJax)

Linux折騰記(十四):優(yōu)秀的文本化編輯思想大碰撞(Markdown、LaTeX、MathJax)

熱門標(biāo)簽:怎樣給景區(qū)加百度地圖標(biāo)注 樺甸電銷機(jī)器人 電話機(jī)器人哪里有賣的 河北語音電銷機(jī)器人 河南智能電話機(jī)器人公司 地球地圖標(biāo)注方法 商戶地圖標(biāo)注 壽光百度地圖標(biāo)注中心網(wǎng)站 新鄭電銷外呼系統(tǒng)線路

這樣一個標(biāo)題可能不太準(zhǔn)確,因為確實無法準(zhǔn)確地解釋什么叫“文本化編輯思想”。其實我這篇隨筆主要是想探討Markdown、LaTeX、MathJax,有興趣的朋友可以繼續(xù)往下看,同時別忘記了順手點個贊。

引言

  大家寫文章用什么工具?Windows的記事本嗎?肯定不會吧!一般人應(yīng)該至少會用一個類似Word的“所見即所得”的可視化編輯器。理由:因為文章不僅僅只是文字嘛,它還包含有各種各樣的格式,比如字體、字號、顏色、標(biāo)題、列表等等。“所見即所得”編輯器提供的編輯方法確實是最樸素的編輯思想:當(dāng)你想要改變某些文字的樣式時,你只需要選中它,然后在各種菜單、對話框里設(shè)置它的格式即可。這種排版很美觀、樣式很豐富的文章,可以稱之為“富文本”。

  如果進(jìn)行更深層次的思考,就會發(fā)現(xiàn)“富文本”存在很多缺點,特別是對于我們這些程序員、理工男來說更是這樣。下面略舉幾例:

1.“富文本”編輯起來太慢了,寫文章時,即要考慮文章內(nèi)容,又要考慮文章格式,寫幾段字就要點半天鼠標(biāo);
2.“富文本”需要專業(yè)的編輯器來編輯和閱讀,如果沒有編輯器,或者編輯器不兼容,那只有欲哭無淚了;
3.“富文本”往往讓形式取代邏輯,文章可能從外觀上看各級標(biāo)題的文字大小、縮進(jìn)都很正確,但是邏輯上無法指定層級關(guān)系;
4.“富文本”中的格式信息太冗余了,淹沒了文章的內(nèi)容;
5.“富文本”對計算機(jī)不友好,存儲格式不透明不說,也讓基于文本行比較的工具(如diff之類)無用武之地。

  所以,優(yōu)秀的思想應(yīng)該是這樣的:

1.文章就應(yīng)該存儲為純文本的格式,用任何工具都可以閱讀和編輯;
2.該純文本的內(nèi)容即要適合人類閱讀,也要計算機(jī)容易理解;
3.能正確指定文章各部分的邏輯結(jié)構(gòu);
4.內(nèi)容和顯示分離,作者只用考慮文章的內(nèi)容和邏輯結(jié)構(gòu),而文章怎么顯示得好看是專業(yè)的人和工具的事。

  這就是我標(biāo)題中說的“文本化編輯思想”。這種思想在計算機(jī)領(lǐng)域由來已久,并逐漸形成一種哲學(xué)。比如互聯(lián)網(wǎng)上廣泛使用的HTML、XML等,就是把信息儲存為純文本,用任何工具都可以閱讀和編輯,并且能正確地指定內(nèi)容的邏輯結(jié)構(gòu),而瀏覽器和CSS則控制文章如何顯示。但是,HTML標(biāo)簽還是太多了,如果沒有瀏覽器,完全靠人工腦補閱讀起來還是太困難了。于是,就誕生了Markdown。

  在文本編輯領(lǐng)域還有另外一個難題,那就是數(shù)學(xué)公式(或者其它類似數(shù)學(xué)公式的東西,比如樂譜),它們顯示起來是二維的,而且其中使用的很多符號標(biāo)準(zhǔn)鍵盤根本無法輸入,使用的字體和正文也不一樣。好在Unix/Linux世界中,它們有一個比較好的解決方法,那就是LaTeX。當(dāng)然,也有很多可視化的編輯器提供數(shù)學(xué)公式編輯的功能,比如Word的公式編輯器,比如TexMacs。但是正如前文所述,從優(yōu)秀的“文本化編輯思想”來思考,最好的依然是LaTeX,因為使用LaTeX就是使用純文本的方式輸入數(shù)學(xué)公式,輸入速度快,人和計算機(jī)都容易理解。LaTeX的思想影響廣泛,很多編輯器都支持以LaTeX語法輸入數(shù)學(xué)公式。要在網(wǎng)頁上顯示數(shù)學(xué)公式,則非MathJax莫屬了,它是一個JavaScript庫,可以識別網(wǎng)頁中的LaTeX格式的數(shù)學(xué)公式并將其完美顯示出來。博客園的數(shù)學(xué)公式支持用的就是這個。

Markdown的特點和工具

  Markdown的宗旨就是“易讀易寫”,所以用Markdown語法寫的文檔,以純文本的格式直接閱讀也是非常方便的。如果對外觀的要求非常高,就可以通過相應(yīng)的工具將Markdown文檔轉(zhuǎn)化成HTML或者PDF。Markdown的語法非常簡單,一般情況下一個多小時就學(xué)會了。參考地址在這里:Markdown語法說明(簡體中文)。

  目前,我在博客園中發(fā)博客基本上就是使用博客園的Markdown編輯器了。博客園的Markdown實現(xiàn)目前尚不完善,比如說沒有即時預(yù)覽功能、沒有續(xù)行為段功能、對 `\`$\` `的解釋不正確等等,但是用起來已經(jīng)很舒服了,除了上傳圖片,基本上不用動鼠標(biāo)。

為什么續(xù)行為段功能很重要?

續(xù)行為段,換一種說法就是忽略非空白行后面的換行符。這個功能很重要。如果沒有這個功能,則一段文字就是一個很長很長很長的行,這對基于文本行比較的自動化工具(比如diff)來說,無疑是一個致命的打擊。對于可以顯示行號的編輯器來講,行號也會很跳躍,讓人看著不舒服。不過最重要的,就是用戶永遠(yuǎn)也不知道那個換行究竟是它自己加上去的,還是因為電腦屏幕不夠?qū)挾詣訐Q的行。

所以無論是Markdown還是LaTeX,都允許作者在源代碼中任意換行,只要多行文字中沒有空白行分割,就會把這些行合并成一個段落。在Markdown中如果要換行,則需在上一個行的末尾增加至少兩個空格,而LaTeX也允許用戶使用\\手動換行。那么問題來了,博客園為什么要去掉這么一個重要的功能呢?

  在Linux桌面系統(tǒng)中,我使用ReText編輯Markdown文檔。在Ubuntu中只需要sudo apt-get install retext即可以安裝該軟件,其效果如下:


 

配置ReText使用比較漂亮的CSS

  剛安裝的ReText對于文檔的預(yù)覽效果可能沒有我上圖中的那么好,應(yīng)該是這樣的:

  上圖中的引用和代碼和正文的區(qū)分并不明顯,而且整個文檔的字體顯示也不好看。之所以會出現(xiàn)這種情況,是因為沒有給ReText指定相應(yīng)的CSS文件。唯一的遺憾是ReText的某些配置無法通過菜單來完成,必須手動修改配置文件~/.config/ReText project/ReText.conf,我的配置文件如下圖:

  至于到哪里去找一個漂亮的CSS,那就仁者見仁、智者見智了。博客園中就有許多不錯的可以借鑒。

開啟數(shù)學(xué)公式支持

  在網(wǎng)頁中顯示數(shù)學(xué)公式全靠MathJax。博客園開啟數(shù)學(xué)公式支持非常簡單,在后臺管理頁面中打個勾就行了。由于MathJax使用$來界定數(shù)學(xué)公式,所以文章或評論中有很多$符號的同學(xué)們就要注意了。想想看,我的文章中用$多嗎?還真不少,介紹ATT匯編語法時用過,探討B(tài)ash腳本編程的時候也用過,所以那兩篇文章的排版還真費了我不少勁。除了$,MathJax還使用\(\)、$$$$、\[\]來界定數(shù)學(xué)公式。

  由于MathJax是如此的出名和優(yōu)秀,所以ReText也有相應(yīng)的MathJax擴(kuò)展,不過這次修改的配置文件是~/.config/markdown-extensions.txt。我的配置文件如下圖:

  從圖中可以看出,配置文件的第1行就是開啟mathjax擴(kuò)展。至于其它的擴(kuò)展和功能,大家可以閱讀ReText的幫助文檔。

  看看博客園中數(shù)學(xué)公式的效果:$$\int_0^{+\infty} x^n e^{-x} \,dx = n!$$

  下圖是ReText中使用數(shù)學(xué)公式的效果:

  效果和效率都是不錯的哦!至此,我的文字工作正式被Markdown和MathJax全面接管。媽媽再也不用擔(dān)心我的語文作業(yè)和數(shù)學(xué)作業(yè)了。至于LaTeX編輯數(shù)學(xué)公式的語法,我這里再為大家送上一份資料:一份不太短的LaTeX 2e介紹

標(biāo)簽:迪慶 忻州 淄博 來賓 荊州 遼陽 楚雄 阜陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux折騰記(十四):優(yōu)秀的文本化編輯思想大碰撞(Markdown、LaTeX、MathJax)》,本文關(guān)鍵詞  Linux,折騰,記,十四,優(yōu)秀,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Linux折騰記(十四):優(yōu)秀的文本化編輯思想大碰撞(Markdown、LaTeX、MathJax)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Linux折騰記(十四):優(yōu)秀的文本化編輯思想大碰撞(Markdown、LaTeX、MathJax)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章