原文標(biāo)題:FAQ - Line Breaking
原文來源:
問:什么是“斷行"(自動(dòng)換行)
答:斷行就是計(jì)算機(jī)讓一長串文字自動(dòng)的換行,最后形成一個(gè)真實(shí)可見的段落。計(jì)算機(jī)通過算法來確定每一行的每一個(gè)字符是否可以斷行。一個(gè)簡單的例子就是。每當(dāng)你調(diào)整瀏覽器的窗口寬度時(shí),經(jīng)過斷行處理后,原先段落里的字符都會(huì)發(fā)生了變動(dòng),或者被擠到下一行開頭,或者變成了上一行的末尾,最后形成一個(gè)新的段落,而這個(gè)段落的每一行寬度都沒有超過段落的可見范圍。
問:Unicode 是否有關(guān)于斷行的標(biāo)準(zhǔn) ?
答:有。《Unicode Standard Annex #14, Unicode 斷行算法》 規(guī)定了使用于所有 Unicode 字符的斷行算法。相關(guān)文件介紹了 Unicode 字符對(duì)應(yīng)的斷行屬性。
問:為了使用 Unicode,是不是就必須完全遵循 UAX #14 標(biāo)準(zhǔn) ?
答: 不一定, UAX#14 算法是經(jīng)過仔細(xì)設(shè)計(jì)的,它可以適用于各種環(huán)境,但是更復(fù)雜的樣例就不行了。比如給長單詞自動(dòng)添加連字符然后斷行,就超出了這個(gè)算法的功能。所以不直接使用空格斷行的東南亞字符集就必須通過字典模塊逐個(gè)字符匹配,才能識(shí)別出當(dāng)前字符是否是可以斷行的。也就是說,用戶是被允許調(diào)整斷行算法,來達(dá)到某種需要的排版風(fēng)格。
問:那我可以隨意修改斷行規(guī)則么?
答:不能。因?yàn)橛行┳址某霈F(xiàn)就是為了表示這個(gè)地方可以斷行的。它們的行為必須和 Unicode 規(guī)定的一致。這一部分不能根據(jù)用戶需求修改的斷行規(guī)則, 具體可以看 Section 4 of UAX #14