在 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 空格」隱含的內容目標是什麼?不難看出,它的本質要求是「將文本中的數字、字母、漢字部分區別開來」。
因此一個更加優雅的方案是將這個目標分解為兩部分:- Markdown 處理器需要能夠自動識別文本中的數字、字母、漢字片段;
- 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之前和之後進行一些處理。你可以自己寫一個插件來玩。
推薦閱讀:
※將《銀河英雄傳說》引入中文文化圈是怎樣一個過程和感受?
※文案,編輯和策劃的區別在哪裡?
※如何成為一個美食雜誌編輯?
※圖書編輯是做什麼的?圖書的出版流程是怎樣?
※雜誌編輯這個職業發展前途怎麼樣?