我是一個物理工作者,MS Word/WPS 什么的很早就扔掉了。LaTeX 才是我們的家常便飯。本科時候在課堂上我就喜歡拿著 LaTeX 編輯器做筆記,當(dāng)時就盼望著哪天 Evernote 能夠支持 LaTeX 語法。在 macOS 下配置 LaTeX 編譯環(huán)境十分簡單,只要下載一個 MacTeX,它自帶 TeXShop,然后一切就都搞定了。
后來知道了 Markdown 語法,這樣一個花 2 分鐘就能學(xué)會的「標(biāo)記語言」直接戳中我這樣一個極簡主義者的 G 點。與 LaTeX 最大的不同在于,它不會像大多數(shù) LaTeX 編輯器一樣在僅修改了一個標(biāo)點之后,都要求重新編譯。
然而要同時實現(xiàn) Markdown 的極「簡」,和 LaTeX 的「效」能是非常艱難的。雖然在靜態(tài)博客里可以使用 MathJax 顯示公式,但在 macOS 端編輯博文時沒有 LaTeX 預(yù)覽也是很難過的一件事。
你可能會說 MWeb 就支持 LaTeX 的編輯和預(yù)覽呀!的確,我嘗試過它,但這里提出兩點我后來放棄它的原因:
預(yù)覽的公式字體太難看,不知道為什么作者不設(shè)置為科學(xué)期刊上最為常用的 Latin Modern Math 字體。我在作者的 GitHub 下發(fā)過一個 issue,他也沒能給我一個有效的答復(fù)。
MWeb 沒有 iOS 版,不能多設(shè)備同步。
還有聲名鵲起的 Typora,我覺得它單作為 Markdown+LaTeX 編輯器可謂最優(yōu)選:插入公式的方式不能再漂亮、默認的主題也簡單優(yōu)雅。
但它不能對文檔進行管理,沒有所謂的「外部文件夾」。而且,它也沒有 iOS 版。
綜上,我的要求其實很苛刻——優(yōu)秀的編輯環(huán)境、Markdown、LaTeX 預(yù)覽、多設(shè)備同步集合為一體。于是我開始在 Ulysses 和 iA Writer 上尋求出路,因為這兩個軟件首先就符合我對「優(yōu)秀的編輯環(huán)境」的要求。最終我找到了我的解決方案。
Ulysses 是支持 HTML 預(yù)覽的,所以我們在 Markdown 文檔里插入一些 HTML 語言也沒有關(guān)系。前天我就在 @ulysses 官推上看到了這個在 Ulysses 下實現(xiàn)公式預(yù)覽的方案。
只需要在文檔開頭加入這四行 Raw Source Block 即可
~~ ~~
其實這就是 HTML 下的 MathJax 相關(guān)設(shè)置。不用擔(dān)心那些小波浪號,它們是 Ulysses 用來標(biāo)記 Raw Source 的符號,無論是導(dǎo)出還是發(fā)布到你的的靜態(tài)博客上都不會影響。
之后只要將正常 LaTeX 語法包裹進 Raw Source 格式中即可,比如
神奇公式:~~ $$\left(iD\!\!\!/+m\right)\psi = 0$$~$\dfrac{1}{2}$~,這就是二分之一,想不到吧!
然后調(diào)整 Ulysses 的導(dǎo)出格式為 HTML,使用 ?+?+P 就可以預(yù)覽文檔里的公式了!
原文鏈接:Writing Mathematical Equations in Ulysses我們也可以利用 iA Writer 實現(xiàn) Markdown + LaTeX。
同樣是解決 LaTeX 公式預(yù)覽問題,我發(fā)現(xiàn)了這樣一個系統(tǒng)服務(wù)——Export Markdown to PDF。它是基于 pandoc 命令,在 iA Writer 下將文檔轉(zhuǎn)換為 PDF,并在默認 PDF 應(yīng)用程序下預(yù)覽。雖然不像 iA Writer 自帶的預(yù)覽那樣高效,但如果只是插入幾行公式,對我來說這已經(jīng)最佳方案了。況且近日發(fā)布的 iA Writer 4 支持多文件、模塊化編輯,對于每個子文件而言 pandoc 的編譯效率也十分高了。
首先,毋庸置疑你的電腦里必須安裝有 MacTeX,并且我建議安裝最新的 2016 版,否則環(huán)境設(shè)置可能會略有不同,導(dǎo)致不必要的麻煩。
以及,轉(zhuǎn)換 PDF 所需的 pandoc(在終端下用 brew install pandoc 命令安裝)。
配置 xelatex 中文編譯模板
mkdir ~/Templatescd ~/Templatespandoc -D latex > template.tex %導(dǎo)出pandoc默認模板文件
然后我們在導(dǎo)出的默認模板文件 template.tex 上進行修改。定位到 % if luatex or xelatex
,在 \fi
的下一行(下圖白色箭頭處)插入如下語句:
% SUPPORT for Chinese\usepackage[boldfont,slantfont,CJKchecksingle]{xeCJK}\usepackage{fontspec,xltxtra,xunicode}\defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}\punctstyle{quanjiao}\setCJKmainfont{WenQuanYi Micro Hei}\setCJKsansfont{KaiTi}\setCJKmonofont{SimSun}\defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
其中\setCJKmainfont{WenQuanYi Micro Hei}
可以自定義主字體(LaTeX 老司機也可以嘗試修改其他內(nèi)容),我測試時用的是「文泉驛微米黑」字體,大家可自行修改。但最好像我一樣使用字體的英文名稱。什么?你不知道怎么查看字體的英文名稱?到終端使用下面這條命令查閱系統(tǒng)內(nèi)的字體英文名吧。
fc-list :outline -f '%{family}\n'
下載我 Fork 的 Export Markdown to PDF,把 Workflow 文件放到「~/Library/Services」路徑下
在 iA Writer 下使用:iA Writer - Services - Export Markdown to PDF 即可。編譯的時候可以看到右上菜單欄會有個旋轉(zhuǎn)的小齒輪,特別可愛。如果 LaTeX 語法有錯誤,錯誤信息會以彈窗的形式出現(xiàn),方便你 debug。
$ \dfrac{1}{2}$
會報錯,要改為 $\dfrac{1}{2}$
才行,好像是第一個 $ 后面不能出現(xiàn)空格。
需要自行研究一些特殊宏包的插入,例如頁邊距的設(shè)置等,畢竟在 Markdown 文檔里無法使用 \usepackage
命令了,有些茫然不知所措。
用 Automator 打開 Export Markdown to PDF.workflow 你可以看到下面這些內(nèi)容:
pandoc 環(huán)境設(shè)置
xelatex 環(huán)境設(shè)置
pandoc 轉(zhuǎn)換 pdf 的命令,其中 --template 字段設(shè)置的是 pandoc 編譯模板,這就是第二步中為何要生成 ~/Templates/template.tex 文件的原因,你可以自行配置多個模板,然后記得在 workflow 文件里修改模板位置。
祝大家 LaTeX 愉快!
聯(lián)系客服