2013年1月14日

多作者共筆以 Markdown 編輯,使用 Mou, Pandoc, XeTex 輕鬆製作 PDF 電子書 Mac OS X

最近和技術夥伴共同編寫一些教學文件,「共筆」一直是我們覺得麻煩的問題。雖然 Google Doc 有還不錯的所視即所得+多人協作功能,但編出來的文件真是其貌不揚。而其他編出來排版效果好的軟體,在協作的功能就實在別多想了。

雖然在上個年度我們研發「ContPub(目前正在內部整修中)」平台,就是試圖想解決多人協作電子書的問題。但是以 reStructuredText 為基礎的文字編輯,目前並沒有太多「所視即所得」的套件可以選配,對需要依賴看到結果才算數的作者來說,這一直是個難解的問題,因為把整份電子書文件提交給 ContPub 後端的幕後排版主機處理,需要耗掉大量時間而且難以除錯。

目前我們自己的文字編輯團隊,採用折衷的作法,選擇以 Markdown 為基礎的工具,搭配各自可以在自己的電腦 Preview 的工具,讓電子書的編輯工作更順利一些。

因為 Markdown 本身是純文字格式,很容易做 diff / merge 處理,所以只要搭配 GitHub 作版本控制,就可以讓多為作者共同編輯幾份文件,並容易解決編輯衝突問題。這對平常很習慣用 git 的開發者來說,就是一小片蛋糕而已。

在文字編輯器的選擇上,剛好 Mac OS X 下有個 Mou 免費文字編輯軟體,它支援自動 refresh 的預覽,以及文字編輯區可放大標題顯示的 syntax highlight,所以還算得上是作者能接受的「所視即所得」。在右邊的即時預覽區會跟著編輯區的捲動移動預覽範圍,這是使用瀏覽器做成的功能,Mou 提供 CSS 設定可以修改預覽區的樣式,只要將 font-size 與 line-height 加大,就已經很接近中文預覽需要的效果。


使用 Pandoc + XeTex 進行 PDF 幕後排版輸出,Pandoc 可以將 Markdown 文件轉為 LaTeX 格式,再交由 XeLaTeX 轉檔成 PDF,中文排版的部份需要一些 tuning,這部份只要修改 default.latex 設定即可達成。


搭配 Makefile 就可以讓轉檔作業全部自動化,例如加上 watchr 自動監視文字檔的修改,每次有更新就自動進行幕後轉檔,如此一來就能讓每位作者都能輕鬆預覽自己完成的輸出結果。

最後就可以合併每位作者完成的結果(文件原始碼 + 原始圖片 + PDF 預覽檔)…如果需要更好的排版品質,就需要在最終修訂完成後,直接針對 LaTeX 檔案修改了。雖然從 Markdown 自動轉檔成 PDF 的品質,還沒辦法達到理想的水準;但是花費同樣時間,可以比 WORD 有更好的效果、更容易編輯,而且也保留了容易批次處理的圖片原始檔。

沒有留言:

張貼留言

lyhcode by lyhcode
歡迎轉載,請務必註明出處!