如何在Adobe InDesign中匯入漢字標音

Thomas Tsoi
Aug 3, 2023

--

English version

我在2017年編輯《小王子香港粵拼版》時,需要為全書中所有文字加上粵拼(粵語的標音系統)。這項工序在InDesign現時的介面中很難可以有效率地完成。首先,在英文的InDesign中並沒有加注標音的工具,因此你需要安裝中文介面的InDesign。然後,即使在中文InDesign中有標音工具,但要逐字或逐行加上標音,事實上也很不方便。實際情況下,往往先在文字檔編輯校對好,再直接匯入是最快捷的方法。

一般來說,要找出如何做到以上所講應該只要Google一下就會有答案,畢竟有加注標音的兒童圖書其實並不算少。奇怪的是竟然事與願違,網上怎找都找不到方法(而我實在不知道那些兒童圖書出版社是怎樣做的)。於是乎,我唯有自己探索能夠快速匯入標音的途徑。

Adobe InDesign標記文字檔

幾番研究後,我發現在InDesign中可以將文字匯出成Adobe InDesign標記文字檔,同時亦可反向利用標記文字檔直接匯入文字;而這些文字是可以支援標音,亦即英文中所謂的ruby character。這種標記文字檔的格式有點複雜,尤其是當文本套用了字體、排版式樣等參數後,匯出的似乎並非純文字檔。不過,如果不套用格式,只著眼標音的話,其標記並不難理解。且看以下一個簡單的例子:

<UNICODE-WIN>
<vsn:18.5><fset:InDesign-Roman><ctable:=<Black:COLOR:CMYK:Process:0,0,0,1>>
<pstyle:><cr:1><crstr:zung1>中<cr:><crstr:><cr:1><crstr:man4>文<cr:><crstr:><cr:1><crstr:zi6>字<cr:><crstr:>
<pstyle:><cr:1><crstr:siu2 wong4 zi2>小王子<cr:><crstr:>
匯入以上標記文字檔後的文字

當中頭兩行是基本設定,可以忽視。第三、四行以<pstyle:>開始,代表段落開始,漢字標音部份格式有點奇怪,不像HTML或XML那樣使用開始標記和結束標記,但總之一個漢字單元格式如下,留意標音藏在第一個<crstr:>標記中:

<cr:1><crstr:zi6>字<cr:><crstr:>

此外,必須留意這個標記文字檔需要以UTF16-LE格式和Windows的CRLF換行字元儲存,否則InDesign不能正確匯入。

技術層面搞清楚以後,剩下來就只需要寫一個小程式將漢字文本和相關標音轉化做符合格式的標記文字檔,就可以輕鬆將大量文字加注標音而無需在InDesign內逐字修改。這就成了ruby2indesign這個小工具:

ruby2indesign — https://ruby2indesign.vercel.app

ruby2indesign接受以下輸入格式的.txt文字檔:

整句的漢字文本和標音符號分別放在不同行數上,單數行是漢字,雙數行是標音。漢字不用空格分隔,但標音符號之間需要用一個空格分隔。

你好,小王子!
nei5 hou2 , siu2 wong4 zi2 !
拜拜啦!
baai1 baai3 laa3 !

格式轉換後,全形標點符號上會自動省略其相應的半形標點符號,匯入後效果如下:

匯入步驟

在InDesign內創造一個文字框:

在選單中,選取 檔案 > 置入

然後選取從ruby2indesign轉換格式後得到的_indesign.txt文字檔。

--

--