「數位排版中注音調號定位方式」階段性成果

注音符號,我國國語文拼讀教育的基礎,在數位化的環境中一向缺乏良好的支援。

傳統注音字型的限制

傳統的做法為注音字型,如同鑄造活字一般,將漢字與注音符號製作在一起,透過切換字體或者其他選擇技術來挑選讀音。這種做法行之多年,對於「使用數位工具產製類比印刷品」,例如,以排版軟體排印教科書、教師製作考卷教案等需求,足以滿足。但若要應用在純數位的教學環境中,就會遇到相當的限制。

首先,是通用性。

注音字型的破音字,讀音與排序來源為民國88年、教育部公布之〈一字多音審定表〉,然而語言流變,該表的讀音也有了改變、新增。有了版本差異,注音字型也須隨之更新,不僅需要時間精力成本維護,也會有舊版本無法顯示新版的問題。

這也影響到表現的自由。

注音字型僅能顯示表定讀音,然而在教學應用上,有時需要刻意顯示錯誤的讀音,例如考卷出題;在創意應用上,更有符合創意標示不同讀音的需要。

最後是語意。

注音字型在顯示上可以切換表定破音,但對於數位系統與程式而言,無法透過數位資料取得該字的正確讀音。當應用在無障礙環境時,文字轉語音就必須手動調整破音讀音,難以輕易做到數位平權。

網頁技術的成熟

在1999年,中央研究院以數位典藏專案參與網頁標準化組織W3C時,就已經提出在網頁上呈現注音符號的需求,與日文漢字標注讀音的「Ruby」採用相同的技術。然而,直到2012年前後,採用網頁技術作為基礎的EPUB 3和與HTML 5標準陸續底定,才成為實際可用的技術。

十年間數位環境也有了很大的變化,Web成為了全球最大的內容載體,而網頁技術也同時通用於電子書與各種數位內容。使用HTML中的ruby標籤來為漢字標注注音,能一舉解除傳統注音字型的限制,推動轉型勢在必行。

然而,注音符號的版面呈現相較於日文假名,更為複雜。W3C僅定義如何標注,但細節的排版調整,則需使用其他技術達成,如字型技術。但如何達成,需要取得業界的共識。

產業標準「數位排版中注音調號定位方式」做了什麼?

本會制定的產業標準「數位排版中注音調號定位方式」,不僅為國語注音符號補上了技術上的最終一哩,能夠正常於網頁、電子書、應用程式顯示注音外;也為台語注音符號的數位活用,訂定了基礎。

當與國際標準化組織討論注音符號排版時,過往僅有教育部的《國語注音符號手冊》可做為參考。但該手冊主要供印刷排版作為參考,缺少各種技術上的資料,例如:注音符號與調號的Unicode碼點各為何?會以何種方式排列?

制定「數位排版中注音調號定位方式」標準,從決定碼點開始,列出各種注音的排列組合。國語注音已有明確約定俗成的大量範例,但處理台語注音以及調號,卻是第一次;主要也是因為直到2018年,本會提案補齊台語注音入聲韻尾「」,台語注音編碼才正式完善。

本標準先列出這些資料,再近一步採取OpenType技術來處理調號排版。包括,在直排、橫排不同狀況下,決定採用何種已經註冊的OpenType功能名稱,以及決定採用調整位置(GPOS)或替代字符(GSUB)何種手段來進行調整。在進行決定的同時、邊諮詢字型與編碼專家邊試做範例字型,在現今通行的瀏覽器與字型排版引擎(如Apple的Safari瀏覽器採用Webkit引擎,字型引擎則為CoreText、Google的Chrome瀏覽器採用Blink引擎,字型引擎則為Harfbuzz)上進行測試,希望能夠以符合語意規定且需要開發端調整最少的方式完成注音符號的排版。

目前本專案在Github上之公開成果頁面,請參見:https://cmex-30.github.io/Bopomofo_on_Web/testpage/index.html

有關「數位排版中注音調號定位方式」產業標準之中文文件英文文件也完整公開,提供各界作為指標性的參考文獻。

使用本標準所製作之範例字體,配合必要的CSS語法,即可以在網頁上正確顯示注音符號,將調號放到正確的位置。同時,台語注音符號也可以使用相同的機制來進行排版呈現。在這之前,台語注音符號僅能透過「吳守禮台語注音字型」來顯示。

國際標準調整與採用推動

本標準的範例字型,在採用Harfbuzz字型引擎的瀏覽器應用程式上都可以正常運作,例如Google Chrome、Mozilla Firefox、LibreOffice。然而也有幾項問題需要進一步解決。

一是Apple Safari瀏覽器中,以下兩個台語注音調號無法調整位置:

  • ˫ U+02EB MODIFIER LETTER YANG DEPARTING TONE MARK
  • ˪ U+02EA MODIFIER LETTER YIN DEPARTING TONE MARK

這部分問題在本案團隊努力下,目前Apple已經修正此項Bug,預計於下一版更新Safari即可解決這項問題。

另外,注音符號調號在Unicode編碼歷史上與西方文字的音調符號整合,所以在Unicode Consortium發表,處理字碼於直排時為直立或者轉向的UAX#50文件中,皆為轉向(R),然而本標準需要為直立(U)以啟動直排時的OpenType功能'vert',本項問題也在2020年被提案且受到初步接納、2021年列為待辦事項。預期將會於新版本進行變動,可以使得LibreOffice等應用程式支援得更好。

處理完這兩項問題後,我們可以更進一步推動作業系統開發者採用此套標準,將之包含在系統與開放授權字型中,包括Apple、微軟;Google與Adobe的Noto和思源字體中。

後續推廣應用

目前在網頁和EPUB格式電子書中,只要嵌入本標準提供的範例字體、配合一些CSS語法,即可正確地顯示注音符號,無論位於內文還是標注於旁側(橫排為上方),調號都能正確顯示。

同時,本會也開發提供線上版「注音標註編輯器」。只要輸入中文漢字,就可以搜尋《重編國語辭典修訂本》詞庫中的讀音,自動帶出供挑選破音,或是手動輸入人工標音,之後可輸出標注完成的HTML Ruby語法供使用,不需要手動輸入。

最後,台語注音也藉由此專案得到數位上的支援,得以有標準化的字元排列結構、完善的排版顯示。台語注音在注音符號的基礎上,具有易學易讀易記易寫的特色,未來本會將活用此項技術,應用於建立台語字辭典、輸入工具等,進一步地推廣台語文教學與書寫。

 

︿
回頂端