有些時候取得的文件是PDF要進行轉換製作,產生出來的文字中會看到一堆的空格密布在內文中,如下圖所示。如果只是少許的空格用手工或一般的尋找取代即可清除,但是下圖可以看出有超多且不管是在中文字前後、或是標點符號前後都有大量空格,甚至也有一些不正常分行的段落。
這些空格如果不處理的話,多多少少會影響到版面的文字間距,所以基本上還是必須清除,這時候可以用「自動」的方式來幫我們處理掉這些空格會比較好。
處理的方式很簡單,就是理解這些空格的存在條件,也就是這些空格出現在中文前後、標點符號前後,那麼我要設定的GREP關鍵字就是編點符號(\p{P*})、任意文字(\w),所以GREP描述式就可以寫成:
(\p{P*}|\w|\d)(\x20+)(\p{P*}|\w|\d)
(\p{P*}|\w|\d) → 表示標點符號、或是不含標點符號的文字字元、或是數字
(\x20+) → 表示只搜尋一般空格,不包含分行字元
如此我就可以把這些密密麻麻的空格找出來,下面是匹配找出來的內容。
在「尋找/變更」視窗中,變更為設定為$1$3,就可以把這些空格全刪掉啦~
這個方法有個禁忌,就是內文裡不能有英文,否則就會把英文句子整個黏起來,例如I eat lunch.就會變成了Ieatlunch.了。如果不想要更換到英文句子,可以把\w改成~K試試。
接下來是不正常分行的處理。正常的分行應該會以句號為結束,當然也有可能是冒號、驚嘆號、問號、右引號等,因為例外情況會很多,所以可能初期要一個一個去看看內文中有哪些不正常分行結尾字元來設定GREP,也許沒辦法全部取代,但是比傳統用眼睛去找快速起有效多了!
GREP描述式就可以寫成:
([^。」?])(\r)
([^。」?]) → ^表示反向的意思,所以整句是句號、右引號、問號以外的字元,根據不同內文可以再增加例外的結尾字元,例如刪節號、冒號、右括弧、驚嘆號等。
(\r) → 一般分行字元
如此就可以找到這些不正常分行的內容:
在「尋找/變更」視窗中,變更為設定為$1,就可以快速尋找並確認是否要刪掉這些不正常分行啦~如果指定的例外結尾字元都沒問題,也是可以一次全部取代喔!
貼心提醒,搭配尋找指定的段落樣式,可以避免將標題也匹配尋找在內。
以上就是這次的內容分享,按照慣例要再打個小廣告,目前已出版了兩本InDesign圖書,歡迎大家多支持!
㊙ 《InDesign Tricks:專家愛用的速效技法》,提供許多InDesign進階編排技術的教學,讓讀者了解專家們都是怎麼快速編排的,本書的電子書互動介紹頁面:這裏。目前有在Readmoo電子書平台、Google play圖書、Kobo、讀冊均有上架喔~❤
㊙ 《GREP Tricks:InDesign自動化的極致,快速搞定瑣碎煩冗的編排流程》,提供了比快速更厲害的神速技巧——GREP應用,目前已在挖貝選物、蝦皮賣場、Readmoo電子書平台、Google play圖書、讀冊電子書上架了~❤
如果你覺得本篇文章對你很有幫助,也歡迎你使用我的永豐個人商店支付打賞贊助,下方是我的支付條碼(或是最上方特色圖片右邊的QR碼),支援Apple Pay、Google Pay、以及個人信用卡刷卡支付(免手續費),贊助一杯咖啡的金額,是支持我繼續寫作分享的動力喔~謝謝~
3 留言
清除內文中大量的空格 「(\p{P*}|\w|\d)(\x20+)(\p{P*}|\w|\d)」 即使換成 「(\p{P*}|~K|\d)(\x20+)(\p{P*}|~K|\d)」 似乎對與用複合字體無效, 請問是否有進階的使用方法呢?
這方法跟複合字體沒有關係,無效的原因可能是你判斷的空格與相鄰的字元有誤吧?你可能要依照你的情況去設定參數,下面是這些參數的定義,提供參考。
\w:任何字元不包含標點符號、半形下底線
\d:任何數字
~K:任何中文
\x20:一般空格
\p{P*}:標點符號
因為我設定~K照理說應該只會選取中文的範圍,但是他依然會選取英文範圍的空格所以才懷疑是否跟複合字體有關?