变体 (Unicode)

(重定向自异体字选择器

Unicode 中,字符变体指通过编码字符序列显示同一字符的不同字形。这种变体序列(英語:variation sequence)由一个基本字符后紧跟一个变体选择符(variation selector)组成。

上方兩個字形被合併到相同的 Unicode 編碼,用戶在純文本環境下難以選擇。開啟了變體選擇符,用戶就可以指定顯示哪一個字形。VS17設置為沒有點的字體、VS18設置為有點的字體。

一个字符的变体通常与它的基本字符有非常相像的外观和涵义。这项技术旨在当一个字符的变体字形不可用时,仍显示其基本字符,却不改变文本本身的涵义。

Unicode 定义了两种变体序列:

  • 标准变体序列(SVS):由统一码字符数据库(UCD)文件StandardizedVariants.txt收录的变体序列[1]
  • 表意文字变体序列(IVS):由表意文字变体数据库(IVD)文件IVD_Sequences.txt收录的变体序列[2][3]

变体选择符定义于数个 Unicode区块内:

概述

葛飾区的葛
葛城市的葛

Unicode 是一個字符編碼表,它只是一個表格,并不描繪每個字形的樣式。同樣意義的字符常會被賦予相同的編碼。因此,在一些情況下,有必要區分不同的字形[4]

須注意的是,譬如拉丁字母「a」是否有從頂部向右延伸的線,通常不屬於不同字形之間的差異,因為可以通過更改電腦字型來修改。可是,在中日韓統一表意文字中,本來根據 Unicode 的認同原則應該統合的漢字異體字字形,卻在一些國家或地方的電腦應用標準裏,經常被視為是「另一個字」的字形。擧例說,「」與「」字形差異細微,讀音、意義都一樣,一般書寫和閱讀時都不會視為兩個不同的字,理論上可以合併。但是,在個別國家或地區裏,此二字在某些情況中出現時,會被當作相異的資訊。因此,根据情況,有時需要在純文本英语Plain text上保存不同字形的區別,例如:

  • 在大部份操作系統中,檔案名稱是純文本,不能區別在文本中不能區分的東西。
  • 輸入法可以輸入的字符串一般都是純文本[5]。即使用戶可以使用桌面出版应用程序選擇不同字型來顯示,除了与输入正常字符有不同的操作外,还必须记住正确的组合,这对于大多数普通用户来说并不实用。例如在 Windows Vista 日语版中,可以區分显示「葛飾区」的「 」和「葛城市」的「 [6],不過「 」與「 」在Unicode編碼上並無區別,其输入法无法正确转换。
  • 用於發送電子郵件SMTP网络传输协议是用純文本發送的,因此不能区分一些相同編碼字符的不同字形[7]

爲了應付這類情況,早期 Unicode 碰到在有關國家或地區既有碼表已分別編碼的字,像「」與「」,就會放棄認同原則,改以原字集分離原則來把兩個字形分別編碼。但若當時有關國家或地區沒有把異體字分別編碼,像日本的JIS90只收錄了一個「葛」字,Unicode就不會分別編碼。

變體選擇符是為了在 Unicode 中解決上述問題而設計出的特殊的「字符」,讓有着相同碼位的異體字(即「葛」字這類例子)可在純文本環境下分別顯示出來。它可以根據前後文來判斷,決定在當前文本中所使用的文字,並由變體選擇符選擇不同的字形[8]。請注意,顯示出來的會是變體選擇符所指定的字形,而不是變體選擇符本身。

種類

变体序列一般分兩種:标准变体序列(Standardized Variation Sequence,簡稱「SVS」[9]),以及表意文字变体序列(Ideographic Variation Sequence,簡稱「IVS」)。

SVS 在非漢字及中日韓統一表意文字中均有启用,这種字形選擇,定義為 Unicode 的標準化變體[10]。要在標準化變體裏添加字形,是統一碼聯盟的工作。

另一方面,IVS 是漢字專用的變體選擇符,字形收集是由表意文字變體數據庫(Ideographic Variation Database,簡稱為「IVD」)定義的。要想在 IVD 中增加字形,也必須根據規定向統一碼聯盟申請[11]

截至2017年12月,由变体序列所使用的變體字符如下所示:

标准变体序列錄入的字集和數量

表意文字變體數據庫錄入的字集和數量

  • CID之Adobe-Japan1集:14,683個[13]
  • 通用電子信息交換環境整頓計劃之Hanyo-Denshi集:13,045個
  • 文字信息基礎整備事業之Moji_Joho集:11,384個
  • 澳門特別行政區之MSARG集:21個
  • 韓國之KRName集:36個

但是Hanyo-Denshi與Adobe-Japan1有很多重複[14]

字形規格

  • OpenType1.5版使用了「Unicode變體選擇符(Unicode Variation Sequences)」規格[15]
  • SVG不僅局限於IVS,亦可以任意Unicode編碼[16]

字體創建工具

  • FontForge - 2007年10月2日之後[17]
  • Adobe Font Development Kit for OpenType (AFDKO) 2.1版之後[18]
  • TTX/FontTools - GlyphWiki來生成IVS對應字體[19]
  • TTEdit - 對應生成IVS TrueType字體。

2007年10月FreeType以後的開發板内置了API工具[20]

軟件

在Alpha及Y.OzFont,以UTS #37輸入以下文字「田さんは屋のお嬢様だ」,「」字之下的「」分別為新字體舊字體

參考資料

延伸閱讀

參見

外部链接