Linux 桌面玩家指南:12. 優(yōu)秀的文本化編輯思想大碰撞(Markdown卓缰、LaTeX、MathJax)

原文地址:https://www.cnblogs.com/youxia/p/LinuxDesktop012.html
閱讀目錄

特別說明:要在我的隨筆后寫評(píng)論的小伙伴們請(qǐng)注意了砰诵,我的博客開啟了 MathJax 數(shù)學(xué)公式支持征唬,MathJax 使用$標(biāo)記數(shù)學(xué)公式的開始和結(jié)束。如果某條評(píng)論中出現(xiàn)了兩個(gè)$茁彭,MathJax 會(huì)將兩個(gè)$之間的內(nèi)容按照數(shù)學(xué)公式進(jìn)行排版总寒,從而導(dǎo)致評(píng)論區(qū)格式混亂。如果大家的評(píng)論中用到了$理肺,但是又不是為了使用數(shù)學(xué)公式摄闸,就請(qǐng)使用\$轉(zhuǎn)義一下善镰,謝謝。

想從頭閱讀該系列嗎年枕?下面是傳送門:

回到頂部

前言

這樣一個(gè)標(biāo)題可能不太準(zhǔn)確防嗡,因?yàn)榇_實(shí)無法準(zhǔn)確地解釋什么叫“文本化編輯思想”变汪。其實(shí)我這篇隨筆主要是想探討 Markdown、LaTeX蚁趁、MathJax裙盾,有興趣的朋友可以繼續(xù)往下看,同時(shí)別忘記了順手點(diǎn)個(gè)贊他嫡。

先回憶一下我們平時(shí)用什么工具記筆記番官,最簡(jiǎn)單的可能直接上記事本,但是稍微需要點(diǎn)格式支持的钢属,記事本的功能就不夠用了徘熔,這時(shí)應(yīng)該至少會(huì)用一個(gè)類似 Word 的“所見即所得”的可視化編輯器。很多時(shí)候我們要記錄和分享的不僅僅只是文字淆党,它還包含有各種各樣的格式酷师,比如字體、字號(hào)宁否、顏色窒升、標(biāo)題缀遍、列表等等慕匠。這個(gè)格式可以讓我們很容易地分辨筆記中的大綱和細(xì)節(jié),也很容易突出顯示需要強(qiáng)調(diào)的內(nèi)容域醇,便于我們閱讀和理解台谊,必要的時(shí)候蓉媳,還可以在筆記中插入圖片」Γ“所見即所得”編輯器提供的編輯方法確實(shí)是最樸素的編輯思想:當(dāng)你想要改變某些文字的樣式時(shí)酪呻,你只需要選中它,然后在各種菜單盐须、對(duì)話框里設(shè)置它的格式即可玩荠。這種排版很美觀、樣式很豐富的文章贼邓,可以稱之為“富文本”阶冈。

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

  • “富文本”編輯起來太慢了统舀,寫文章時(shí)匆骗,即要考慮文章內(nèi)容,又要考慮文章格式誉简,寫幾段字就要點(diǎn)半天鼠標(biāo)碉就;
  • “富文本”需要專業(yè)的編輯器來編輯和閱讀,如果沒有編輯器闷串,或者編輯器不兼容铝噩,那只有欲哭無淚了;
  • “富文本”往往讓形式取代邏輯窿克,文章可能從外觀上看各級(jí)標(biāo)題的文字大小骏庸、縮進(jìn)都很正確,但是邏輯上無法指定層級(jí)關(guān)系年叮;
  • “富文本”中的格式信息太冗余了具被,淹沒了文章的內(nèi)容;
  • “富文本”對(duì)計(jì)算機(jī)不友好只损,存儲(chǔ)格式不透明不說一姿,也讓基于文本行比較的工具(如 diff 之類)無用武之地。

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

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

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

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

回到頂部

Markdown 的特點(diǎn)和工具

Markdown 的宗旨就是“易讀易寫”结窘,所以用 Markdown 語法寫的文檔,以純文本的格式直接閱讀也是非常方便的充蓝。如果對(duì)外觀的要求非常高隧枫,就可以通過相應(yīng)的工具將 Markdown 文檔轉(zhuǎn)化成 HTML 或者 PDF。Markdown 的語法非常簡(jiǎn)單谓苟,一般情況下一個(gè)多小時(shí)就學(xué)會(huì)了官脓。目前,我在博客園中發(fā)博客基本上就是使用博客園的 Markdown 編輯器了涝焙。博客園使用和 Github 完全一樣的 Markdown 語法卑笨,在這里可以閱讀它的完整介紹:GitHub Flavored Markdown Spec。Markdown 用起來很舒服仑撞,除了上傳圖片赤兴,基本上不用動(dòng)鼠標(biāo),而且近期已經(jīng)有好幾個(gè)人表揚(yáng)我的博客排版比較舒服了隧哮。

在 Linux 桌面系統(tǒng)中桶良,我使用 ReText 編輯 Markdown 文檔。在 Ubuntu 中只需要sudo apt-get install retext即可以安裝該軟件沮翔。另外還有一些比較出名的 Markdown 編輯器陨帆,比如 reMarkable 或者 Typora,但是這兩款編輯器 Ubuntu 的官方軟件倉庫中沒有采蚀,需要自己去下載安裝疲牵,所以我就不用了。另外就是 Atom 編輯器也支持 Markdown榆鼠,但是我試用以后覺得它的界面不好看瑰步,所以也不用。我覺得 ReText 就不錯(cuò)了璧眠,其界面如下:

image

image

很顯然缩焦,這個(gè)預(yù)覽的結(jié)果并不漂亮,也和我博客園中的樣式完全不一樣责静。這是因?yàn)槲也]有為我的預(yù)覽功能指定 CSS 樣式表袁滥。前面說過,文本化編輯思想就是內(nèi)容和顯示分離灾螃,寫作的時(shí)候题翻,只需要考慮內(nèi)容就可以了,而顯示效果,可以由 CSS 樣式表控制嵌赠。如果我想讓預(yù)覽的效果和我的博客中一樣塑荒,只需要把我博客中的 CSS 扒下來就可以了。同理姜挺,如果看到有哪個(gè)網(wǎng)站的文章顯示效果比較好看齿税,把它的 CSS 樣式扒下來即可。另外炊豪,從上圖的預(yù)覽功能可以看到凌箕,現(xiàn)在最新版的 ReText 可以顯示一定的數(shù)學(xué)公式,但是對(duì)行內(nèi)的數(shù)學(xué)公式?jīng)]有顯示词渤,那是因?yàn)槲覀儧]有為 ReText 指定 MathJax 數(shù)學(xué)公式擴(kuò)展牵舱。點(diǎn)擊 ReText 的 "編輯"->"個(gè)人偏好" 菜單,在彈出的對(duì)話框里面可以設(shè)置我們使用的 CSS 樣式表和 MathJax 擴(kuò)展缺虐,如下圖:


image

再重新啟動(dòng) ReText芜壁,其預(yù)覽效果就是這樣的了:


image
image

MathJax 支持 LaTeX 語法,至于 LaTeX 編輯數(shù)學(xué)公式的語法高氮,我這里再為大家送上一份資料:《一份不太短的LaTeX 2e介紹》沿盅。

回到頂部

數(shù)學(xué)公式和 LaTex

在我上一節(jié)中,我提到了 MathJax纫溃,我的博客中和 ReText 中的數(shù)學(xué)公式支持就靠它了腰涧。MathJax 支持 LaTex 的語法,所以平時(shí)寫筆記紊浩,使用 Markdown 和 Mathjax 就夠了窖铡。但是真正需要寫科技論文的時(shí)候,就不得不上 LaTex 了坊谁。在這一節(jié)里费彼,我再來談?wù)?LaTeX。

在很多人心中口芍,LaTeX 是一個(gè)很專業(yè)的排版系統(tǒng)箍铲,同時(shí)也是一個(gè)很復(fù)雜的系統(tǒng)。說到專業(yè)鬓椭,確實(shí)很多科技論文都是用 LaTeX 寫作颠猴,而且很多知名的雜志社只接受 LaTeX 格式的投稿。使用 LaTeX 排版得到的效果那是超級(jí)贊小染,特別是對(duì)科技論文中充斥的數(shù)學(xué)公式而言翘瓮。說到復(fù)雜,不僅是因?yàn)?LaTeX 排版語言命令繁多裤翩,更因?yàn)樗鼣?shù)之不盡的宏包资盅,學(xué)習(xí)成本真的是相當(dāng)相當(dāng)相當(dāng)?shù)母摺?/p>

對(duì)于一套 LaTeX 排版系統(tǒng),它究竟包含哪些東西呢?我認(rèn)為它主要可以分成這樣幾個(gè)部分:

  • 一個(gè)排版引擎呵扛,TeX 或 pdfTeX 或 XeTeX每庆;
  • 一系列的字體;
  • 一系列的宏包今穿;
  • 一些工具缤灵,比如用來查看各種排版引擎輸出的排版結(jié)果,或者在 dvi荣赶、ps凤价、pdf 等格式之間的轉(zhuǎn)換鸽斟。

而對(duì)于 LaTeX 排版系統(tǒng)的復(fù)雜性拔创,我認(rèn)為主要是由于歷史原因引起的,理由如下:

  • 最早的由 Knuth 教授寫的 TeX 引擎不支持 UTF-8 編碼的輸入文件富蓄,所以要讓它支持中文實(shí)在是太難了剩燥;
  • 最早的 TeX 系統(tǒng)自帶一套字體,要擴(kuò)展它就得擴(kuò)展相應(yīng)領(lǐng)域的字體立倍,比如 LaTeX 自帶豐富的數(shù)學(xué)字體灭红,要把字體安裝到 TeX 系統(tǒng)中是一件非常復(fù)雜的事情;
  • 大量的第三方宏包口注,安裝和學(xué)習(xí)都非常困難变擒;
  • 都什么年代了,誰還用 dvi 格式和 ps 格式啊寝志,用 pdf 多方便啊。

對(duì)于這些歷史原因引起的復(fù)雜性材部,現(xiàn)在早就解決了,只是很多書籍沒有寫清楚而已苦丁。我認(rèn)為現(xiàn)在用 LaTeX 其實(shí)很方便的,理由如下:

  • Knuth 教授的 Tex 引擎用來瞻仰即可物臂,實(shí)際工作中使用 XeTeX 引擎旺拉,完美支持 Unicode 字符集和 UTF-8 編碼棵磷,中文再也不是問題;
  • 字體神馬的泽本,Knuth 教授的 METAFONT 早過時(shí)了淘太,現(xiàn)在誰還不用 TrueType 啊?好的字體當(dāng)然少不了像 Microsoft蒲牧、Adobe、Apple 這些既有錢又有品味的公司出品了松嘶;
  • XeTeX 引擎可以直接使用操作系統(tǒng)中安裝的字體挎扰,再也不用考慮把字體安裝到 TeX 系統(tǒng)中了;
  • XeTeX 引擎直接輸出 pdf 格式的文件尽超;
  • 排版也可以有 IDE 工具,比如 TeXWorks 或 TexStudio似谁;
  • 至于宏包太多這個(gè)問題掠哥,我們可以用現(xiàn)成的發(fā)行版嘛,比如 texlive 套裝塞琼。

下面開始實(shí)戰(zhàn)禁舷。我是在 Ubuntu 系統(tǒng)下使用 texlive,使用sudo aptitude search texlive命令在讶,可以看到大量和 texlive 有關(guān)的包霜大。考慮到我們需要使用中文曙强,所以需要同時(shí)安裝 texlive-lang-cjk 和 texlive-xetex途茫。前面分析過,XeTeX 引擎和 XeLaTeX 引擎是支持Unicode 字符集和 UTF-8 編碼的基礎(chǔ)娜扇,而 texlive-lang-cjk 提供中文字體和中文排版的支持。和四年前相比雀瓢,texlive 更加成熟,以上三個(gè)包安裝完之后刃麸,不需要借用 Windows 的字體,也不需要修改任何配置文件把沼,真正做到了開箱即用吁伺。這樣安裝 texlive:

sudo aptitude install texlive texlive-lang-cjk texlive-xetex

以前我使用 TeXWorks,現(xiàn)在在朋友的推薦下使用 TexStudio续捂。使用以下命令安裝 TexStudio:

sudo aptitude install texstudio

在使用 TexStudio 的時(shí)候宦搬,先進(jìn)入它的設(shè)置界面劫拗,將引擎更改為 XeLaTeX页慷,如下圖:


image

然后寫一段測(cè)試文字,Build 一下滓彰,然后預(yù)覽州袒,就可以看到排版效果了:


image

對(duì)于寫寫中文文檔,使用 ctex 宏包就足夠了他匪,并不是很復(fù)雜夸研。LaTeX 還有一些更加復(fù)雜的功能,比如制作幻燈片啊悼沈、繪圖啊什么的,都有相應(yīng)的宏包可以使用絮供,而且安裝 texlive 的時(shí)候杯缺,都安裝了非常詳細(xì)的幫助文檔,只需要打開/usr/share/texlive/doc.html這個(gè)文件萍肆,就可以看到所有宏包和幫助文檔的列表塘揣,我前面分享的《一份不太短的LaTeX介紹》里面有,經(jīng)典的《Tex by Topic》里面也有亲铡,如下圖:

image

看到這個(gè)一公里長(zhǎng)的幫助文檔列表奖蔓,你有什么感想呢?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末厨疙,一起剝皮案震驚了整個(gè)濱河市疑务,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌撒蟀,老刑警劉巖温鸽,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嗤朴,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡雹姊,警方通過查閱死者的電腦和手機(jī)吱雏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門瘾境,熙熙樓的掌柜王于貴愁眉苦臉地迎上來镰惦,“玉大人旺入,你說我怎么就攤上這事∫瘃” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵圣絮,是天一觀的道長(zhǎng)扮匠。 經(jīng)常有香客問我凡涩,道長(zhǎng),這世上最難降的妖魔是什么突照? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任讹蘑,我火速辦了婚禮筑舅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘版仔。我一直安慰自己误墓,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布然想。 她就那樣靜靜地躺著欣范,像睡著了一般令哟。 火紅的嫁衣襯著肌膚如雪屏富。 梳的紋絲不亂的頭發(fā)上蛙卤,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音典予,去河邊找鬼乐严。 笑死,一個(gè)胖子當(dāng)著我的面吹牛捂敌,可吹牛的內(nèi)容都是我干的既琴。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼逆济,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼磺箕!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起简僧,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤雕欺,失蹤者是張志新(化名)和其女友劉穎屠列,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體笛洛,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡撞蜂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年侥袜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了溉贿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宇色。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖例隆,靈堂內(nèi)的尸體忽然破棺而出抢蚀,到底是詐尸還是另有隱情,我是刑警寧澤唱逢,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布屋休,位于F島的核電站,受9級(jí)特大地震影響痪枫,放射性物質(zhì)發(fā)生泄漏叠艳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一尿瞭、第九天 我趴在偏房一處隱蔽的房頂上張望翅睛。 院中可真熱鬧黑竞,春花似錦、人聲如沸扎酷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凡纳。三九已至荐糜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間暴氏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工关带, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留沼撕,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓好芭,卻偏偏與公主長(zhǎng)得像舍败,于是被迫代替她去往敵國(guó)和親敬拓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容