如何在 Linux 中使用 Pandoc 轉(zhuǎn)換文件格式
Pandoc 可以將 .docx、.odt、.html、.epub、LaTeX、DocBook 等格式互相轉(zhuǎn)換,或者轉(zhuǎn)換為其他格式,例如 JATS、TEI Simple、AsciiDoc 等。
是的,這意味著 Pandoc 可以將 .docx 文件轉(zhuǎn)換為 .pdf 和 .html 文件,但你可能會想:“Word 也可以將文件導(dǎo)出為 .pdf 和 .html。為什么我需要 Pandoc 呢?”
嗯,本來呢,你這個(gè)說法也沒錯,但考慮到 Pandoc 可以轉(zhuǎn)換這么多格式,它很可能成為你所有轉(zhuǎn)換任務(wù)的首選工具。例如,我們中的許多人都知道 Markdown 編輯器 可以將其 Markdown 文件導(dǎo)出為 .html。而使用 Pandoc 文件也可以轉(zhuǎn)換為許多其他格式。
我很少將 Markdown 導(dǎo)出為 HTML。我通常讓 Pandoc 來做這件事。
使用 Pandoc 轉(zhuǎn)換文件格式
本文中,我會將 Markdown 文件轉(zhuǎn)換成幾種不同的格式。我?guī)缀跛械膶懽鞫际褂?Markdown 語法,但我經(jīng)常需要轉(zhuǎn)換為另一種格式:學(xué)校作業(yè)通常需要的 .docx 格式;我創(chuàng)建的網(wǎng)頁通常需要的 .html 格式;工作需要的 .epub 格式;傳單和講義需要的 .pdf 格式;甚至包括一個(gè)大學(xué)數(shù)字人文項(xiàng)目偶爾需要的 TEI Simple 格式。Pandoc 可以輕松處理所有這些格式,甚至更多。
首先,你需要 安裝 pandoc?。此外,要創(chuàng)建 .pdf 文件,還需要 LaTeX。我最喜歡的套件是 TeX Live。
注意:如果你想在安裝前試用 pandoc,這里有一個(gè)在線試用頁面:http://pandoc.org/try/。
安裝 pandoc 和 texlive
Ubuntu 和其他 Debian 發(fā)行版的用戶可以在終端中輸入以下命令:
sudo apt-get update
sudo apt-get install pandoc texlive
請注意第二行,你將一次性安裝 pandoc? 和 texlive。apt-get 命令 支持你這樣做。不過,我建議你先去喝杯咖啡,因?yàn)檫@可能需要幾分鐘的時(shí)間。
開始轉(zhuǎn)換
安裝完成 pandoc? 和 texlive 后,你就可以嘗試用它們來完成一些工作了!
該項(xiàng)目的示例文檔將是一篇文章,該文章于 1894 年 12 月首次發(fā)表在《北美評論》上,標(biāo)題為“如何擊退火車劫匪”。我將使用的 Markdown 文件是前一段時(shí)間創(chuàng)建的,該文章的一個(gè)恢復(fù)項(xiàng)目的一部分(LCTT 譯注:這是篇一百多年前發(fā)表的文章,這是一個(gè)數(shù)字化“恢復(fù)”項(xiàng)目)。
我把這篇文章保存為 how_to_repel_train_robbers.md?,它位于我的 Documents? 目錄下,名為 samples 的子目錄中。它在 Ghostwriter 中看起來是這樣的:
在 Ghostwriter 中查看原始的 Markdown 文件
我想創(chuàng)建此文件的 .docx、.pdf 和 .html 版本。
第一次轉(zhuǎn)換
首先,我將制作一個(gè) .pdf 副本,因?yàn)槲以诎惭b LaTeX 包時(shí)遇到了些麻煩。
在 ~/Documents/samples/ 目錄中,我輸入以下,以創(chuàng)建一個(gè) .pdf 文件:
pandoc -o htrtr.pdf how_to_repel_train_robbers.md
上述命令將基于 how_to_repel_train_robbers.md? 文件,創(chuàng)建一個(gè)名為 htrtr.pdf? 的文件。我使用 htrtr? 作為名稱的原因是:嗯,它比 how_to_repel_train_robbers? 短。htrtr 其實(shí)是長標(biāo)題中的單詞首字母排列。
這是 .pdf 文件制作完成后的一個(gè)截圖:
在 Ocular 中查看的轉(zhuǎn)換后的 PDF 文件
第二次轉(zhuǎn)換
接下來,我想創(chuàng)建一個(gè) .docx 文件。該命令與我用來創(chuàng)建 .pdf 的命令幾乎相同,它是:
pandoc -o htrtr.docx how_to_repel_train_robbers.md
很快,一個(gè) .docx 文件就創(chuàng)建好了。這是它在 Libre Writer 中的樣子:
在 Libre Writer 中查看轉(zhuǎn)換后的 DOCX 文件
第三次轉(zhuǎn)換
我可能會想在網(wǎng)上發(fā)布這個(gè),所以再多一個(gè)支持網(wǎng)頁的格式也不錯。我將使用以下命令創(chuàng)建一個(gè) .html 文件:
pandoc -o htrtr.html how_to_repel_train_robbers.md
同樣,創(chuàng)建它的命令與前兩次轉(zhuǎn)換非常相似。這是該 .html 文件在瀏覽器中的樣子:
在 Firefox 中查看的轉(zhuǎn)換后的 HTML 文件
注意到什么了嗎?
讓我們再看看之前的命令。它們是:
pandoc -o htrtr.pdf how_to_repel_train_robbers.md
pandoc -o htrtr.docx how_to_repel_train_robbers.md
pandoc -o htrtr.html how_to_repel_train_robbers.md
這三個(gè)命令唯一不同的是 htrtr 后的擴(kuò)展名。這提示你 pandoc 會依賴于你提供的輸出文件擴(kuò)展名(來決定目標(biāo)轉(zhuǎn)換格式)。
總結(jié)
Pandoc 可以做的遠(yuǎn)不止這里完成的三個(gè)小轉(zhuǎn)換。如果你選擇使用一個(gè)首選格式編寫文件,但時(shí)不時(shí)又需要將文件轉(zhuǎn)換為另一種格式,pandoc 很大概率都能為你完成。
現(xiàn)在,既然你已經(jīng)學(xué)會了,你會用它做什么呢?你會把它自動化嗎?如果你有一個(gè)網(wǎng)站,想供讀者下載文章怎么辦?你可以修改這些小命令,把它們編寫成一個(gè)腳本,你的讀者可以決定他們想要哪種格式。你可以提供 .docx、.pdf、.odt、.epub 或更多格式。你的讀者只需要選擇一種格式,然后對應(yīng)的轉(zhuǎn)換腳本就會執(zhí)行,最后,你的讀者下載他們想要的文件。這是完全可以做到的。