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