FontForge教學 #6

翻譯:minihair

變體字

許多文字之中都有變體字。在拉丁字中最明顯的就是所有的字都有大小寫之分。 比較不為人知的,在文藝復興時期s的變體:長s (long-s) 用在單字的起頭和中間,而短s只用在單字的結尾。

大部份的阿拉伯文字有四種變體 (起首、中間、字尾以及獨立) 。

數字也有多種變體:製表數字 (所有的數字等寬,並排起來才不會亂七八糟的) 、比例寬度數字 (數字的字寬符合數字的形狀) 以及舊式或小寫數字 ()。

有些變體字在編碼時就考慮好了 (例如字母大小寫) ,但其它的文字中,在字體裡必須另外包含變體字,才能讓文字處理器知道變體字的存在。 (阿拉伯文介於其中,有的變體字有編入編碼中,有的沒有,所以你還是要提供另外的變體字資訊。)

我們來討論剛剛說過的數字變體。假設稱作「one」的字體是製表數字,「one.prop」是比例寬度數字,而「old.style」是小寫變體。 在font view中選擇「one」,Element->Char Info,點選Subs標籤然後按下[New]。 會出現一個對話框。 在Components輸入區輸入「one.prop」,於下拉式選單中選擇「Proportional Numbers」 (會顯示成「pnum」) ,然後選擇你使用的文字組合 (latn文字和dflt語言會涵蓋大部份的求) 。 最後按下[OK]

在FontForge中,某些變體的資訊已經儲存好,如果你用Element->Typo. Features->Default ATT->(變體名稱),FontForge會自動處理好這些事情。

(註:Type0、Type1和Type3 PostScript字型沒有辦法處理這些事情。你必須建立OpenType或TrueType字型才能輸出這些變體。)

條件式變體

FontForge支援OpenType的Contextual Substitution and Chaining Contextual Substitution sub-tables (可直譯為「文脈置換子表及鏈鎖文脈置換子表」) ,也可以多少支援Apple的contextual glyph substitution sub-table (可直譯為「文脈下字體置換字表」) 。 這代表你可以插入條件式變體到你的字型中。

例如要建造有聯結線的拉丁字型 (例如手寫字型) 時,有些得在底部聯結,而有些在靠近x-height的地方聯結。 我所學到的是,在「b」、「o」、「v」、「w」等字母之後的聯結線在x-height的附近。 所以你需要對所有的小寫字建立x-height聯結變體,然後指定它們會用在「b」、「o」、「v」、「w」之後。

欲知詳情,請見Element->Font Info->Contextual標籤

錨點 (Anchoring Marks)

有些文字 (阿拉伯、希伯來文) 須要把母音置放在主要文字的週圍。 有些其它文字 (例如轉化後的拉丁和希臘文) 有許多可能的重音組合法,因此若對於所有可能的組合建造字體,會非常不實際。

在OpenType (包括Microsoft的TrueType字型) 中,你可以指定基底字母的哪裡才是重音記號該加上的地方,以及指定重音記號該位於基底字母的哪裡。所以你可以把一個錨點 (anchor) 放在大寫A的正上方,表示所有的重音記號 (acute, grave, umlaut, circumflex, tilde, macron, ring, caron, ...) 都要位於此,並且在所有重音記號的下方也要放上錨點,文字處理器遇到相臨的兩個字體 (基底字母和重音記號) 時才知道要如何把重音記號放到A上去。
+ =>

不是所有的重音記號都在字母的正上方 (dot和ogonek位在字母的下方) ,所以為了不同的重音記號你會需要不只一個錨點。

有些字母會加註多個重音記號,例如unicode U+1EA4是A的上面有一個circumflex再一個acute。 如果沒有另外修改的話,circumflex和acute會打在同一點上,看起來又亂又難看。 所以我們改在circumflex上面放入不同種類的錨點 (錨點上的錨點) ,以使acute記號置於其上。

在放入錨點之前我們要告訴FontForge本字型會有錨點。 你需要對每一類的加註方法建立錨點類所以上面A的例子中有兩種加註方法 (一種加在上面,一種在下面) 需要建立兩個錨點類。 Element->Font Info->Anchor Classes對話框就是用來建立錨點類的。

對於每一個要加記號的字體,你要先按一下加點的地方,再開啟Point->Add Anchor對話框。

使用加註記號的注意事項:不是所有的軟體都支援這樣的加註記號。 還有很奇怪的軟體在某些文字下支援加註記號,而其它的文字不會。

-- 上一頁 -- 目錄 -- 下一頁 --