小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

神器Pandoc的安裝與使用 | Flyaway's Blog

 stoneccf 2019-05-07

前言

其實(shí)很早就知道Pandoc這個(gè)東西了,只是一直沒(méi)有什么需求促使我去使用它。平時(shí)寫博客雖然也是用Markdown,但是由于Jekyll并不支持Pandoc,所以也沒(méi)有特別去研究它(目前博客使用的是Kramdown渲染器,它在很多擴(kuò)展語(yǔ)法都是借鑒Pandoc的。)??墒菚r(shí)過(guò)境遷,現(xiàn)在平時(shí)需要寫一些非正式報(bào)告和總結(jié),每次使用word的時(shí)候總覺(jué)得不舒服,有次為了調(diào)整一個(gè)段落的行距搞了1個(gè)多小時(shí),雖然可以說(shuō)是我自己沒(méi)有學(xué)好word的基本操作,但是每次為了尋找一個(gè)功能"翻箱倒柜"地在網(wǎng)上找方法,徹底破壞了寫作的情緒,這實(shí)在讓我很難受。因此我選擇markdown來(lái)進(jìn)行平時(shí)的寫作,為了達(dá)到這個(gè)目的,必須要選擇一個(gè)markdown的渲染器,網(wǎng)上有著各式各樣的渲染器,還有一些可以直接在線渲染的網(wǎng)站。但是平時(shí)在本地編輯的時(shí)候,總要開(kāi)個(gè)瀏覽器,這實(shí)在讓人接受不了。在眾多渲染器中,最先映入眼簾的就是Pandoc了,號(hào)稱為文本格式轉(zhuǎn)換的瑞士軍刀,既然有了這個(gè)稱號(hào),說(shuō)明其功能是非常不錯(cuò)的。后來(lái)查了一下,發(fā)現(xiàn)果然是一個(gè)神器,它甚至可以生成pdf和docs!

Pandoc的官網(wǎng)在這里,網(wǎng)上有很多具體介紹Pandoc的文章,其中質(zhì)量比較高的有:

本文就不再贅述上面文章提到過(guò)的一些基本概念和操作了,如果讀者還不知道Markdown和Pandoc是什么的話,請(qǐng)閱讀上述文章。

配置

具體的安裝過(guò)程上述文章和Pandoc的官網(wǎng)上都有,此處不再細(xì)說(shuō)了,這里主要說(shuō)明一些在安裝過(guò)程遇到的問(wèn)題和解決方法(以windows7為例)。

系統(tǒng)路徑

在Windows下Pandoc安裝的時(shí)候,默認(rèn)是安裝在用戶主目錄下的,以win7為例,就是C:\Users\USERNAME\AppData\Local\Pandoc,照理來(lái)說(shuō)安裝程序是應(yīng)該會(huì)把這個(gè)目錄添加到Path中去的,但是我發(fā)現(xiàn)并沒(méi)有自動(dòng)添加,因此首先要將這個(gè)目錄手動(dòng)加入到Path中,這樣才能在任何的目錄下進(jìn)行調(diào)用。

生成HTML

就我自己而言,我使用Pandoc最主要的功能就是利用它來(lái)生成HTML和PDF文件,本節(jié)先討論HTML的配置方法,下一節(jié)再來(lái)說(shuō)明pdf的配置。

其實(shí)將markdown生成html,是Pandoc最基本的一個(gè)功能,使用起來(lái)也是非常簡(jiǎn)單的,打開(kāi)cmd,切換到makrdown文本所在的目錄,寫入如下代碼[1]:

1
pandoc in.md -o out.html

程序運(yùn)行之后,就會(huì)在當(dāng)前目錄下生成一個(gè)相應(yīng)的out.html文件。

CSS樣式

上面這是最基本的用法了,但是這還不能滿足我的日常需求,單純的html文件太過(guò)單調(diào)了,只有配上相應(yīng)的CSS樣式,才能使得文本以更加優(yōu)美的方式展現(xiàn)出來(lái)。

可喜的是pandoc完全支持加入css一起渲染,利用如下的命令:

1
pandoc in.md -c style.css out.html

其中style.css是為生成的html文件編寫的樣式文件,但是這個(gè)style.css應(yīng)該放在哪呢?放在當(dāng)前目錄下,當(dāng)然沒(méi)問(wèn)題,但是每次編寫markdown的時(shí)候,都要將這個(gè)css文件復(fù)制到當(dāng)前目錄下,那豈不是很麻煩?因此我要想辦法把它放在一個(gè)固定的地方,每次直接調(diào)用就可以了。

這就引出了pandoc的默認(rèn)目錄了,可以通過(guò)pandoc --version命令來(lái)查看pandoc當(dāng)前的默認(rèn)目錄,還是以windows7為例,它的默認(rèn)目錄是C:\Users\USERNAME\AppData\Roaming\pandoc ,只需要將這個(gè)style.css文件放入到這個(gè)目錄下,那么在任意目錄使用pandoc時(shí),都能自動(dòng)讀取到這個(gè)文件,而且,如果需要一些特殊的css樣式,可以在當(dāng)前目錄編寫,pandoc會(huì)自動(dòng)使用當(dāng)前目錄下的style.css替代默認(rèn)目錄中的style.css文件。

生成獨(dú)立HTML

通常來(lái)說(shuō),寫作的目的是寫給別人來(lái)看的,但是如果是使用html文件的格式的話,那么每次傳輸都需要傳送整個(gè)目錄文件,因?yàn)闀?huì)有很多圖片或css文件需要一起被傳送,否則html會(huì)無(wú)法正確顯示。這顯然是很麻煩的,有沒(méi)有辦法讓pandoc在生成的時(shí)候,自動(dòng)把style.css中樣式代碼直接嵌入到html中呢?辦法當(dāng)然是有的,主要是參考了這篇文章。主要有兩種方法:

第一種是使用方法是使用如下的命令:

1
pandoc -s -H style.css  in.md -o out.html

但是當(dāng)我試用這種方式的時(shí)候,發(fā)現(xiàn)style.css文件必須放在當(dāng)前目錄下,這個(gè)命令才能正常執(zhí)行,否則會(huì)報(bào)錯(cuò)說(shuō)找不到style.css文件。

另外一種更加好的方式使用--self-contained參數(shù):

1
pandoc -s --self-contained -c style.css in.md -o out.html

這個(gè)命令不但會(huì)把css文件嵌入到html中,它會(huì)把所有外部文件全部壓縮進(jìn)單個(gè)html文件中,包括圖片、視屏、音樂(lè)等。這是何等強(qiáng)大的功能!!

利用上述這個(gè)命令,就能將markdown文檔輕易地生成一個(gè)真正獨(dú)立的html文件,不需要任何其他外部文件支持,這就非常方便傳遞了。

生成pdf

生成一個(gè)pdf文件也是pandoc的主要功能之一,但是它要依賴于latex,如果需要使用pandoc來(lái)生成pdf文件,那么需要另外安裝Latex,pandoc官方推薦安裝MiKTeX,具體安裝過(guò)程也不說(shuō)了,非常簡(jiǎn)單。安裝好MikTex之后,可以利用如下的命令來(lái)生成pdf:

1
pandoc in.md -o out.pdf

但是這樣命令會(huì)出現(xiàn)這樣的錯(cuò)誤

! Package inputenc Error: Unicode char \u8:鍒?not set up for use with LaTex. pandoc: Error producing PDF from Tex source. See the inputsnc package documentation for explanation. ...

原因是pandoc默認(rèn)選擇的pdf引擎是pdflatex,而pdflatex是不支持中文的,因此會(huì)發(fā)生上述錯(cuò)誤。因此在使用pandoc的時(shí)候,可以手動(dòng)指明Latex引擎為xelatex,這是完全支持中文顯示的。這樣我們的命令就變成了:

1
pandoc in.md -o out.pdf --latex-engine=xelatex

使用這個(gè)命令能夠正常的編譯出pdf文件,但是當(dāng)你打開(kāi)編譯出來(lái)的pdf文件時(shí),會(huì)發(fā)現(xiàn)其中的中文部分全是空白,這是字體的問(wèn)題,因?yàn)長(zhǎng)atex的默認(rèn)字體是不支持中文的,因此我們可以繼續(xù)修改命令:

1
pandoc in.md -o out.pdf --latex-engine=xelatex -V mainfont=SimSun

其中mainfont參數(shù)是用來(lái)指明所使用的字體,SinSun表示的是宋體,你可以選擇其他支持中文的字體。

但是這個(gè)命令還是有問(wèn)題的,打開(kāi)生成的pdf,你會(huì)發(fā)現(xiàn)其中的中文完全是沒(méi)有斷行的,這是因?yàn)閜andoc本身對(duì)中文支持不夠,但這不是說(shuō)我們沒(méi)有解決方案,解決方案是使用網(wǎng)友編輯好的latex模板來(lái)生成pdf,這里用到的是tzengyuxio提供的pm-template.latex4。 下載模板后將其中的LiHei Pro字體替換成系統(tǒng)中安裝有的中文字體即可,然后編譯命令改為

1
pandoc in.md -o out.pdf --latex-engine=xelatex --template=pm-template.latex

這時(shí)就能生成一個(gè)比較完美的pdf文件了。

Vim與Pandoc

既然現(xiàn)在有了panodc這個(gè)神器,那么大部分的文本編輯操作我就可以在Vim中進(jìn)行了,而不需要去使用那個(gè)無(wú)比臃腫的word了,配合Vim強(qiáng)大的定制功能,我就能配置出一個(gè)功能完善的pandoc寫作環(huán)境了。

這顯然又是一個(gè)很深的話題,這里我只是稍微寫一下配置過(guò)程,因?yàn)槲易约罕旧硪策€在研究當(dāng)中。

首先可以為markdown文件映射幾個(gè)命令,使得可以快捷的生成html,在Vim的_vimrc文件中加入如下代碼:

1
2
3
4
5
6
7
8
9
10
11
12

function! ToHtml()
exec 'w'
exec "!pandoc -s -S --self-contained -c style.css % -o %<.html "
endfunction

function! ToPdf()
exec 'w'
exec "!pandoc % -o %<.pdf --latex-engine=xelatex --template=pm-template.latex"
endfunction
:nmap <silent> <F5> :call ToHtml()<CR>
:nmap <silent> <F6> :call ToPdf()<CR>

上述的代碼中,我首先定義了兩個(gè)函數(shù),分別是用來(lái)調(diào)用pandoc來(lái)生成html和pdf文件的,然后映射了兩個(gè)快捷鍵<F5><F6>去調(diào)用這兩個(gè)函數(shù),這樣就實(shí)現(xiàn)了直接在Vim中調(diào)用pandoc生成html或pdf,而不再需要通過(guò)命令行來(lái)調(diào)用。

最后推薦一個(gè)比較好的pandoc插件:vim-pandoc,這個(gè)插件我也是剛剛開(kāi)始使用,感覺(jué)還不錯(cuò),值得推薦。

參考資料


  1. 如果發(fā)現(xiàn)沒(méi)有pandoc命令,說(shuō)明還沒(méi)有將安裝目錄添加到系統(tǒng)Path中,請(qǐng)查看上一節(jié)內(nèi)容。 ?

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多