標籤:

在 Markdown 中如何自動實現數字、字母與漢字之間空 1/4 em 空格?

這是使用 Markdown 寫作時的困惑。能使用 CSS 設置嗎?如何設置?


這事兒在理論上是可行的,但是現在一般做不到。

先要解釋一下 Markdown 的基本原理:當用 Markdown 寫作時,我們通常不直接、也不應該在 Markdown 裡面指定樣式,而是只用 Markdown 編寫所謂的「與樣式無關的內容」(style-independent content)。然後用 Markdown 處理器將 Markdown 轉化為 HTML 代碼之後,再用 CSS 樣式表指定展示的內容的最終效果。

拋開「樣式與內容完全分離」是否正確不談,我們可以大致認為「自動實現數字、字母與漢字之間空 1/4 em 空格」描述的是一個樣式目標。為了實現這一目標,一個比較簡單粗暴的辦法是手動在數字、字母與漢字間插入萬國碼 (Unicode) U+2005 1/4 em 空格符號。顯然這個方案並不優雅,也與「自動」要求相去甚遠。

此時我們需要反思一下「自動實現數字、字母與漢字之間空 1/4 em 空格」隱含的內容目標是什麼?不難看出,它的本質要求是「將文本中的數字、字母、漢字部分區別開來」。

因此一個更加優雅的方案是將這個目標分解為兩部分:

  1. Markdown 處理器需要能夠自動識別文本中的數字、字母、漢字片段;
  2. Markdown 處理器需要在輸出 HTML 的時候自動在上述片段間插入 U+2005 符號。

在 1 實現了的前提下實現 2 非常簡單,難點還是在 1 上:目前我並沒有見到哪款 Markdown 處理器具備這樣的功能。這件事情實現起來比較麻煩,但也不是完全不可能的事情,Word 之類的字處理軟體很早就能實現這一功能了。問題在於大部分 Markdown 處理器的作者並沒有這樣的需求,於是也就沒有動力去做這種功能。

所以結論是此事理論可行,但暫無現成方案。如果真的有迫切需要,可以考慮找一個 Markdown 處理器的作者商量看能否提供支持。

不過……這裡提的只是一個需求,需求背後肯定有具體的使用場景和動機。不如你把場景和動機再問題補充裡面解釋一下,看看能否通過其他的方式解決呢?^_^


CSS 里指定 text-autospace

至少 IE11 里是有效的(


提供一個解決思路,請參考這個項目:

漢字標準格式

漢字標準格式?使用手冊?漢拉間隙

漢拉間隙(漢字拉丁字母間隙)功能可在漢字同拉丁字母、阿拉伯數字混排時,於其間加入一個小於半形空白的間隙(0.25em或1ch),提升易讀性。

這個項目的原理是在網頁中加入自定義的css和js文件,利用js腳本為網頁上所有文字加上class,利用css提供各種高級功能。


你直接把markdown轉html的那個程序拿出來改吧,最方便。


同意vczh,其實你也可以在轉換後加一層處理。python-markdown貌似支持在渲染markdown之前和之後進行一些處理。你可以自己寫一個插件來玩。


推薦閱讀:

將《銀河英雄傳說》引入中文文化圈是怎樣一個過程和感受?
文案,編輯和策劃的區別在哪裡?
如何成為一個美食雜誌編輯?
圖書編輯是做什麼的?圖書的出版流程是怎樣?
雜誌編輯這個職業發展前途怎麼樣?

TAG:編輯 | Markdown |