1. 程式人生 > >Word Wrap (不加換行符自動換行)帶來的好處

Word Wrap (不加換行符自動換行)帶來的好處

任何一個簡單文字編輯器,例如Windows下的notepad、更加廣泛使用的含有各種編碼的編輯器NotePad++等,都有Word Wrap選單項,一般是否預設開啟由不同的編輯器規定。我在剛開始學電腦的時候就已經注意到這個功能,但沒有太在意,認為它就是一個簡簡單單的功能,沒什麼大不了的。最近我經歷的事情讓我對它另眼相看了。我要講一講在NotePad++中沒有使用它給我帶來的麻煩及我推薦使用它的情況。這僅僅是我的感悟,僅供參考。

1 問題產生

我最近使用了Tex live 2015,一個很好用的書寫latex的軟體。使用它關鍵是中文,亦即你在編輯器中需要使用UTF-8編碼的方式,才能使用xelatex

正確的編譯。最開始我使用的NotePad++編輯器編寫latex程式碼,後來也認識到了TexWorks編輯器的好用,也轉而使用TeXworks了。我也要感謝TeXworks編輯器,它預設是開通Word Wrap功能的,所以讓我認識到了我遇到問題的原因之所在:就是沒在NotePad++中開通Word Wrap功能。

接下來,簡單明瞭點明問題之所在。我開始寫latex程式碼時,沒開通Word Wrap,所以在寫的時候快到NotePad++編輯器右邊界的時候,我總是會新增一個換行,讓我接下來的內容在新的行書寫,是整個內容處在編輯器的範圍內。否則,我就需要使用水平scroll bar來看程式碼,我認為不方便。一切ok,可是後來我需要將tex原始檔中的內容拷貝到doc檔案中,麻煩就來到了,當我將tex中的一段(所有中間不含空白行的行的結合體稱為一段,因為編譯後的pdf檔案中就是一段)拷貝到doc檔案中,就會含有多個換行符。我截圖給個效果:
這裡寫圖片描述


上圖中上半部分是tex檔案中每個行的結尾都加了一個換行符;下半部分是將它們拷貝到word中的效果。

當時,我沒有考慮那麼多,甚至將UTF-8編碼的轉為ANSI編碼格式,拷貝過來後仍然不奏效。沒辦法,最後手工將word中多餘的換行符刪除。如果內容僅僅就一段,無可厚非,使用手工刪除的方法完全可以。可是,我面臨的是60多頁的學位論文啊!手工量可想而知。

2 原因分析

利用latex展現文件很好,它本身將tex檔案中的單個或多個空格、單個或多個製表符、單個換行在編譯後都當成以個空格使用;只要當你輸入連續2個換行符的時候才另起一段。事情到這裡,你在tex檔案中用不用word Wrap功能無所謂。但是,當你將tex中的內容拷貝到doc檔案中去的時候,由於word程式本身不是latex引擎,它只是按照自己的方式來理解,一個換行符就是一個換行符,而一個換行符在word中就表示另起一段。word是所見所得的,二者的不一致就會造成上圖中的結果。

3 經驗總結

為了避免日後的麻煩,在編寫tex等檔案的時候,不另起一段的時候最好不要用換行符,同時為了避免使用水平Scroll bar,開啟NotePad++的Word Wrap功能(window記事本中也有次功能),如下圖:
這裡寫圖片描述
以使一段就是一段。這樣就不會帶來向doc檔案拷貝時,本來應該是完整的一個段落卻變成了多個段落的情況。

回憶:2013年的時候,我使用的是WinEdt,它也自動開啟了Word Wrap功能,即到了編輯器的右邊界的時候,你不用加換行符自動轉到物理上的下一行顯示。我為什麼這麼說呢?是因為我使用bucket時,在網頁上面,每一段就是一行,需要使用 Horizontal Scroll bar向右滾動才能看到右邊的東西。當時,我還感覺到奇怪,為什麼會是這樣?到現在想想是自己沒有多想想,沒有做到“事事留心皆學問”,沒有將司空見慣的東西重視起來的原因。