午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

簡中求效:Markdown 遇上 LaTeX

 樹悲風(fēng) 2016-12-06

前言

我是一個物理工作者,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

你可能會說 MWeb 就支持 LaTeX 的編輯和預(yù)覽呀!的確,我嘗試過它,但這里提出兩點我后來放棄它的原因:

  1. 預(yù)覽的公式字體太難看,不知道為什么作者不設(shè)置為科學(xué)期刊上最為常用的 Latin Modern Math 字體。我在作者的 GitHub 下發(fā)過一個 issue,他也沒能給我一個有效的答復(fù)。

  2. MWeb 沒有 iOS 版,不能多設(shè)備同步。

  • Typora

還有聲名鵲起的 Typora,我覺得它單作為 Markdown+LaTeX  編輯器可謂最優(yōu)選:插入公式的方式不能再漂亮、默認(rèn)的主題也簡單優(yōu)雅。

但它不能對文檔進(jìn)行管理,沒有所謂的「外部文件夾」。而且,它也沒有 iOS 版。

綜上,我的要求其實很苛刻——優(yōu)秀的編輯環(huán)境、Markdown、LaTeX 預(yù)覽、多設(shè)備同步集合為一體。于是我開始在 Ulysses 和 iA Writer 上尋求出路,因為這兩個軟件首先就符合我對「優(yōu)秀的編輯環(huán)境」的要求。最終我找到了我的解決方案。

方案一:Ulysses + HTML

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 語法包裹進(jìn) 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 + Export Markdown to PDF

我們也可以利用 iA Writer 實現(xiàn) Markdown + LaTeX。

同樣是解決 LaTeX 公式預(yù)覽問題,我發(fā)現(xiàn)了這樣一個系統(tǒng)服務(wù)——Export Markdown to PDF。它是基于 pandoc 命令,在 iA Writer 下將文檔轉(zhuǎn)換為 PDF,并在默認(rèn) PDF 應(yīng)用程序下預(yù)覽。雖然不像 iA Writer 自帶的預(yù)覽那樣高效,但如果只是插入幾行公式,對我來說這已經(jīng)最佳方案了。況且近日發(fā)布的 iA Writer 4 支持多文件、模塊化編輯,對于每個子文件而言 pandoc 的編譯效率也十分高了。


遺憾的是,這個 Export Markdown to PDF 已多年沒有維護(hù)了,它環(huán)境變量設(shè)置已經(jīng)因為新版本路徑更改無法使用,而且最致命的是它不支持中文文檔。于是我將它 Fork 了一下,修改成為了支持中文的 LaTeX 編譯服務(wù),下面我用四步教大家如何配置它:

第一步

首先,毋庸置疑你的電腦里必須安裝有 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默認(rèn)模板文件

然后我們在導(dǎo)出的默認(rèn)模板文件 template.tex 上進(jìn)行修改。定位到 % 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 老司機(jī)也可以嘗試修改其他內(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 文件里修改模板位置。

結(jié)語

祝大家 LaTeX 愉快!



    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多