使用 org-mode 產生 HTML 網頁的時候,偶而會看到中文字中間會夾雜著一個空 白符號,其狀況如下圖,這到底是怎麼一回事?
會出現這個問題,是因為在 org-mode 中啟用了 auto-fill-mode,會自動將一 行控制在 80 的文字以內,而換行符號則會在 org-mode 轉換成 HTML 的過程中, 被置換為空白符號。這個空格在英文中並不是問題,但是在非英語系的語言中, 可能就會產生令人討厭的感覺。
由於目前這個問題尚未被 org-mode 官方修正,因此讓我們透過 emacs 的
defadvice 功能,來 修正
一下這個問題吧,請在你的 .emacs 加上
(defadvice org-html-paragraph (before org-html-paragraph-advice (paragraph contents info) activate) "Join consecutive Chinese lines into a single long line without unwanted space when exporting org-mode to html." (let* ((origin-contents (ad-get-arg 1)) (fix-regexp "[[:multibyte:]]") (fixed-contents (replace-regexp-in-string (concat "\\(" fix-regexp "\\) *\n *\\(" fix-regexp "\\)") "\\1\\2" origin-contents))) (ad-set-arg 1 fixed-contents)))
這樣使用 org-mode 輸出 HTML 的時候,就不會再出現多餘的空格了 :)
這個問題實際上是網友 Jerry 告訴我我才注意到的,最近因為將整個部若格產 生器改用自己撰寫的 emacs-blogit 來產生,才又再次重視這個問題。