寫作第一步,純文字檔的好處

用慣word等排版軟體的人,可能比較難以理解純文字檔的好處,因此我們從一個Office使用者的角度,來分析使用純文字寫作有哪些好處:

格式與內容分開

將純文字檔作為所有格式的原始資料是再適合也不過的了,跟doc這類將內容與格式綁在一起的格式不同的是,純文字檔案並不能適切的表現出排版的效果,例如文字繞圖,置中,靠左,標題,甚至是換頁標籤等,這些都沒有辦法在純文字檔裡表現,因此使用純文字檔最重要的哲學就是―「格式與內容分開處理」,想想一份文稿,我們可以用網頁呈現(html),也可以用doc檔呈現,甚至是pdf檔,他們雖然排版方式有些不同,但是內容卻是相同的,如果我們將內容的部份獨立出來,只需套用一些格式設定,就能輕易地將這個文件在不同的格式與檔案間變換,也許您會說,市面上已經有一堆軟體可以將doc檔轉換成其他格式,然而word不可能支援各式各樣的檔案格式的,例如電子書、chm、wiki、說明文件(man page),甚至是心智圖,純文字檔的好處就是,99%的檔案格式都可以,甚至只能由純文字檔轉換而來,而這些轉換程式大多為自由軟體。

當我們將格式與內容分開處理,是否就代表我們的文稿再也無法呈現類似word那樣多彩多姿的排版呢?其實完全相反,我們先看看大多數人最常使用的插入圖片功能,在純文字檔裡要實現插入圖片,只要如同描述一個文章的段落一般輸入某些敘述,只是內容為「這裡插入某某圖檔,位置與長寬如下,以及他的圖片敘述如下」,轉換格式的程式會自動依照該描述將圖片插入,當然,由於純文字檔本身不可能放置圖片,因此這種效果必須要等到轉換成doc,odt,或pdf檔之後才看得到。這種作法有好處也有壞處,壞處就是以前使用word那種所見即所得的效果不再,但好處卻是進行文章撰寫時,只要先在適當的段落間寫下「這裡插入某張圖片」的描述即可,等到文章完成了,才開始進行圖片位置與大小的整修,這種「內容至上,排版最後」的寫作哲學,反而可以將作者從寫作排版兩頭燒的混亂中解救出來。畢竟當您文思泉湧時,卻因為不停調整文繞圖效果到最佳狀態而打斷思緒,或是寫到一半,突然想中途插入一張圖片,結果發現排版整個大搬風,這些事件往往都會讓人跳腳不已。如果您已經很習慣在寫作當時同時處理這些排版,不如試著用純文字檔進行第1階段的寫作,好好享受沒有排版的干擾,專注在內容一氣呵成的寫作哲學吧!

先前所說的插入圖片只是格式裡的一小部份,事實上圖表,數學式子,超連結,註腳,大小標題,粗斜體,文獻,項目(1,2,3..),甚至是具有連結功能的章節目錄,我們可以說,要寫成一本書所需要的所有功能都能夠以純文字檔實現,只有兩樣東西是沒有的,就是文書處理軟體漂亮的介面與所見即所得的排版效果,相形之下純文字檔似乎是上古時代的文物。同時,寫作者必須要學習一個輕量級文件語法,以這篇文章為例,我所使用的是RestructuredText(ReST)這個輕量級文件格式,在VIM下,他可以透過插件隨時將您編輯的內容轉換成pdf檔,因此通常我都是文章寫得差不多了,才會轉換成pdf檔檢查一下,其他語言還有更簡單的tex2tag,或是同等好用的Markdown,我採用ReST的理由,一方面是因為其為Python內定的文件格式,另一方面,則是這個網站是以ReST為主,Python語言的好處擇日詳述,我覺得他是每個想學程式語言的人必定要接觸的。寫好的ReST純文字檔,除了轉換成你我所看到的網頁內容,也可以輕易的轉換成office格式、Ebook格式、chm格式、以及pdf格式,說他是一切文件的原始碼也不為過,同時,這些語法也不會讓整篇文章變得有如程式語言般的難以理解,因為他們的特長就是容易理解。總而言之,使用純文字檔撰寫文章,雖然沒有華麗的外觀加持,換取的卻是極大的便利性與回歸寫作的核心,最後由轉換成純文字寫作後的A君的一段感想作為本章節的結尾:

"排版的確是寫作殺手,他扼殺了創作時的靈感,並讓寫作者陷入無盡的修改迴圈。"

檔案輕巧,不易損毀

純文字檔最大的好處就是,任何基本的編輯程式都可以開啟,如果您嘗試用記事本開啟一個doc檔,你會發現裏面盡是亂碼,這是因為Office的文檔是封閉格式,所有內容會經過一連串機密的演算法進行編碼,因此只有微軟自家的軟體才能「正確」開啟,拜這個特性所賜,Office文件的排他性其實是很大的,換句話說,十個相容doc格式的軟體,大概有9個以上無法100%呈現word底下的排版效果,這也意味著隨著文件累積,您可能愈需要緊緊跟隨著Office的升級,與這個軟體共存亡,同時,由於有編碼就必須解碼,一旦檔案裡有個小地方出錯,可能就會造成解碼的失敗,而使檔案損毀,這時大概只能把檔案寄回Office總部才能救得回來[1],有關封閉文書檔的特性到此打住,純文字檔的內容則一目了然,有安全性考量的寫作者只需要用最普遍的壓縮軟體以密碼加密壓縮即可達到更好的安全效果,被人偷窺內容的機率更可大大降低(別忘了,Office總部的人總是可以開啟你所加密的office文件,因為格式是他們發明的),由於圖檔是與文字檔分開存放,可以大大壓低檔案的容量,而有關圖檔的安排邏輯,自然就會跟doc檔不同,同時,也不需要擔心這會造成檔案流傳的不便,別忘了,我們隨時可以將文檔轉換成pdf或odt,甚至是純網頁不是嗎?以我的習慣來說,我會在文檔的專案裡建立專門存放純文字檔的目錄,同時在另外一個目錄裡建立專門存放對應圖檔的目錄,不同的純文字檔可以共用同一個圖檔,只要使用相對路徑即可,不會因為納入圖片這個機制而浪費額外的空間,可以大大降低備份與轉移檔案的困難度,而文字檔就只有文字內容,更讓大量進行修改的工作變得更簡單了,例如,我可以利用終端機下的diff功能比對兩個寫作版本的不同,或使用正規表示法與腳本(script)一次大量的替換所有文檔裡的某個名詞,如果檔案裡有任何差錯,並不會造成損毀與無法讀取,因為他完全沒有編碼的內容,最重要的是,他讓高度彈性的版本控制變得可行,我會在下一節裡提到這點。

容易管理與備份

看著不斷堆積的文件檔,真是每個寫作者的噩夢,你有沒有以下的經驗:

  1. 發現新版的文書處理軟體開啟n年前的文書檔,呈現一團糟的情況。
  2. 如果你正在用文書處理軟體寫一本書,或是你的畢業論文,裡面有很多插圖,你會發現檔案的容量快速暴增,直到每次開啟與儲存,都是一場膽顫心驚的等待過程。
  3. 因為某個操作,有可能是其他的應用程式 , 造成文書處理程式停止回應了,關也不是,等待也不是的尷尬時間。

說穿了,這就是排版與內容綁在一起,最終將面臨的問題,隨著文件內容愈來愈豐富,檔案也會愈來愈肥大,各式精心設計的排版效果更是沒有跨越不同軟體版本的保證,因為雖然內容都一樣,但是排版的型式會隨著軟體的架構改變或是新改良的功能而受到時間的考驗。因此寫作者會一而在,在而三的面臨不斷排版的命運,如果今天你的出版社沒有剛上市不久的新文書處理軟體,偏偏你是用最新的文書格式所撰寫的,那麻煩可大囉!除非你可以要求他們全面更新到最新的文書處理軟體。

管理則是另一個問題,我們都知道寫作有很多階段,隨著時間過去,文章可能會愈來愈成熟,也可能會大量刪減或修改一些章節,有時還需要回過頭來重新使用已經刪去的段落,這在撰寫論文時尤其常見,在集體寫作時,更經常存在不同的版本,然而對於doc這類格式而言,我們只能不斷複製大同小異的檔案,給予一堆檔名編號,如果寫作內容(包含插圖)已經稍具規模(肥大),每一次的修改你可能都要重新複製一個新的,以保留舊的檔案備不時之需,最後只會留下一堆亂七八糟且非常佔空間的備份檔,而追蹤修訂的功能,會讓本來已經焦頭爛額的版面變得更加混亂,日子久了,你根本就記不起來這個版本做了什麼,以至於備份時刪也不是,保留也不是,雖然大多數人還是會找個燒錄光碟全部燒一燒就丟在角落,這種只能一次性寫作的模式其實是非常氾濫,比較有經驗的寫作者,或許會開個excel檔來紀錄每個版本的不同,這也的確是這種情況下的最佳辦法了。將場景移到使用純文字檔編輯的寫作者,他們也面臨同樣的問題,但是等等,其實專門用來控制程式寫作的版本控制系統,例如git與svn,就是專門應用在純文字檔上(所有的程式碼都是純文字檔),何不將這套系統用在純文字的寫作上呢?這些版本控制系統,都是自由軟體,如果你是Linux使用者,這些東西幾乎都是內建,可以馬上使用,版本控制系統以非常輕量與巧妙的方式,紀錄著你每個版本的不同,你可以輕易的叫出兩個不同時期的文章版本,用diff察看兩者的不同[2],你也可以摹仿我的版本控制方式,利用github這類專門提供給程式設計師的原始碼網站,來進行寫作的版本控制與備份,這樣的方式更使得異地寫作與集體寫作變得更加容易(缺點是對方也得熟悉這些東西),只要有網路,即使我不在自己的電腦旁邊,仍然可以隨地clone一份最新的版本,或是白天在公司的電腦撰寫,晚上回來,家裡的文章也已經同步更新了,也同時實現了三個地方的同步備份,不怕檔案有一天會遺失,這種同步備份與管理的機制更不受限於硬體效能,最簡單的硬體就足以使用,git與svn都是發展非常成熟,而且廣為大型軟體專案所採用的版本控制系統,也是學一次就受用一生的工具,最重要的是,你會發現你的檔案井井有條,乾淨的目錄,以及備份時發現讓人感動得痛哭流涕的超低磁碟容量使用率,這看起來就好像老祖宗的智慧再次顯靈一樣(雖然他們實際上並不老)。

寫作之外的意外收穫

是的,使用純文字檔寫作,你可能得學習個輕量級的文件語法,一個好用的純文字編輯器,甚至是版本控制,由於沒有數學編輯器了,你可能也得學學怎麼使用Latex數學,然而與三頭兩天就大改特改的文書處理軟體不同的是,這些東西都是發展已久,成熟且歷久彌新的工具,你不用擔心過幾年這些東西就落伍了,更不用擔心排版不出美觀大方的東西,只是那是寫完文章後才要做的事,純文字檔所提供的敏捷性與彈性更是其他編碼的檔案格式所無法比擬的,雖然可能還是有人覺得純文字實在是太落伍了,就跟使用記事本寫論文一樣,但是我們必須澄清,記事本這個東西其實遠遠達不到我們對於編輯純文字檔的要求,應該去試試Emacs跟vim等被尊稱為神之編輯器與編輯器之神的東西,這就好像在燈紅酒綠,目眩神迷的世界裡走過,最後反璞歸真一般。我們其實需要的不是那些炫麗的排版功能,而是心無旁騖地專注在文章內容上,這才是寫作最重要的事,然而文書處理軟體卻不時存在排版反客為主的問題,因為他就是排版軟體。當你終於將他的功能練至爐火純青的地步時,他總是三不五時來個大改版,讓你武功廢了一大半,你不跟著升級到新版本,似乎也不行呢?

無論是輕量級文件語法,vim/emacs,版本控制,或是Latex,他們的功用都不單單只有寫作,當你學得愈多,你會發現他們可以應用的地方也愈來愈廣泛,舉例來說,你可以用他們來進行Blog寫作,就像我現在做的,同時替未來程式語言的學習鋪路,如果你還是學生,這些技能對於論文寫作更是幫助多多,甚至簡報都可以由這些工具完成。在自由軟體的世界裡,幾乎所有需要數學式子的地方,都優先以Latex支援為考量,例如圖表或是wiki筆記等,同時,輕量級的文件語法非常重視文章結構,他會強迫你注意標題與子標題等架構問題,強迫你注意段落的安排,因此無論是用他來寫作,或是製造簡報,都會在不自覺的情況下創造出結構嚴謹的內容,這也是現今大多數的文章與簡報所缺乏的,這也可以說是因為少了讓人分心的排版所帶來的副作用。說了這麼多,也只有放開心胸學習這些東西才能有所領悟,接下來我們會從編輯器,ReST語法,最後到git版本控制,來帶領各位體會純文字寫作的樂趣。

[1] 這是真實發生的事,有一次我一不小心將含有圖檔的doc檔案儲存成rich text格式,這僅僅是因為滑鼠點錯地方,結果word幫我輸出成500MB的龐大doc檔,想當然爾,不但完全無法開啟,連帶我之前打的內容全部無法還原,只能含淚尋找更早的備份,重新將這幾個小時撰寫的內容憑記憶重新打上,作白工與重寫加起來的時間難以估計。
[2] diff當然也可以用在doc檔這類格式,只是你看到的是亂碼部份不同之處,而且數量將非常可觀,不建議這麼做,除非你想欣賞一些奇觀來娛樂自己一下。

Comments

Comments powered by Disqus
Creative Commons License © 2016 M43幸福之路/OASYS
Share