「動態組字」技術現狀如何?有哪些困難?還有發展前途嗎?

目前主流漢字編碼都是在「單字」的層面上逐字編碼,相應的設計字體也必須「逐字」進行。這實際上是將漢字等同於字母,按照字母的思維來處理漢字。這造成一方面漢字字體設計相較英文字體費時費力,且體積龐大;另一方面雖然常用字只有幾千,但漢字的無窮可能性使得「缺字」問題原則上無法得到解決(比如古籍用字、「招財進寶」、biangbiang面,等等)。

「動態組字」的精神是在漢字「基礎部件」的層面上處理漢字。我理解「漢字基礎部件」是漢字的字母,而「單字」才對應單詞。目前的研究大概知道,漢字有 400 到 500 個基礎部件,這些基礎部件的平面組合可以生成幾萬個漢字。實際上就像 26 個字母可以生成無窮多的單詞,由基礎部件出發,可以生成無窮多的漢字,所以一舉解決缺字問題。另一方面,字體設計可以只設計這幾百個基礎部件,然後找到某種演算法實時生成並渲染「單字」,即所謂動態組字。這似乎也大大降低漢字字體設計的難度。

看上去「動態組字」技術對漢字的理解和處理更科學,更理想。那麼為什麼還沒有變成主流?有什麼困難?


你怎麼不去學韓語……

漢字的組合超複雜的,上下結構不是1:1,左右結構也不是1:1,根據偏旁大小會有不同的調整,根據偏旁的高低又有不同調整,有些偏旁還會變形,有些偏旁會戳到另一個偏旁裡面去一截,完事了還有左中右結構的字,有包圍結構的字,包圍還分全包圍和半包圍,有包圍沒包住又出頭了的,這個事情最坑的就是等你把這些規則都實現了,會發現按規則生成出來的字只有千分之一是別人用的字,剩下的都是從來沒被造出來過的字,然後你還得去一個一個確保那兩千個常用字沒出問題。最後常用字還是只有兩千個,何必呢。


從設計上簡單的說的話,電腦自動拼的字不完美。

每個字雖然組成部件有很多重複,但是灰度分布不同、筆畫複雜度不同、大小比例不同等等原因,導致自動生成的字體在設計師眼裡總覺得不夠完美,有些甚至不是不完美是略挫or不能看的。筆畫粗細的問題也是一樣的,批量生成的總是需要手工再調整。

拼筆畫/自動生成是大公司製作字體的一個流程,肯定有技術做,但不會依賴,只能當做是減少手工拼接的工序。

好像一般都是拼筆畫而不是拼部件

商業上,據說日本太晚很多字體商用的自家研發的字體製作工具。但不公布的,使漢字字體製作的門檻更高了……


我知道某廠搞古籍和某 wiki 做戶籍文字用了類似的技術,弄了三十多萬…


之前在 Wikisource 上看到過用這玩意跑 Unicode IDS 的提議:

GitHub - sih4sing5hong5/han3_ji7_tsoo1_kian3: 漢字組建:快速產生漢語用字、古書、姓名。

GitHub - MGdesigner/Mediawiki-IDSextension: A Mediawiki extension : Use Unicode IDS to resolve ancient Chinese lacking characters.

這東西實現上為了規避直接拼字難看,內部有個查表的部分好重定向到已有的漢字直接出字。

至於題主舉例子提到的兩個比較出名的字,其實可以直接去 GlyphWiki 找 U-source 字(UTC-00791、UTC-00949、UTC-01312)。

(這個答案只是告訴你存在開源實現。)


倉頡輸入法與中文字形產生器

上古黑科技


對於日常使用的情況下沒鳥用。

如其他回答所說,可能在某些特定領域有些用處。

一是,基礎部件在不同字體上不做出輕微修改,根本不能看。

二是,當字體比較小時,是會進行特殊處理以使得能夠較為清楚辨識字形,這是個整體性細微調整。

三是,十幾M的空間佔用對於現在根本不值一提。

四是,所謂的動態組字,你也需要事先給每個字編碼連接上對應顯示的字體。

五是,把簡單的問題變複雜了。


如果實現了在遊戲上能降低好多內存,加油!


動態組字會使漢字的信息熵大大降低,目前對此沒有有效解決方案。


在造漢字這件事上,創造字形的同時需要給對應的字創造相應的語義才使得這個字有納入語言的可能。漢語言現在沒有產生大量新字的需求。要表達新的語義,我們用已有的漢字組成新詞就夠了。


目前沒有開源解決方案。建議字體愛好者們共同開發開源「動態組字」技術。可以在github上面建立項目,自願參加。


推薦閱讀:

英文書信的格式規範有哪些?
如果知乎在全平台採用漢儀旗黑會如何呢?有沒有可能實現?
從下圖能不能說明San Fransisco字體尚存問題?
為什麼思源黑體粗細不一?
寫給大家看的中文排版指南

TAG:字體 | 字體設計 | 漢字 | Unicode統一碼 | 字體排印 |