《FontForge常見問題FAQ》
翻譯: 字王·中國
===============================
FontForge常見問題FAQ
Sir Toby: Thy most exquisite reason,
dear knight?
Sir Andrew: I have no exquisite
reason for’t, but I have reason good enough.
–Twelfth Night, Shakespeare
托比: 最重要的原因,親愛的騎士?
安得烈:我沒有什么很好的理由,但我有足夠的理由。
–《第十二夜》,莎士比亞,
?為什么需要字體編輯軟件,現(xiàn)在不是已經(jīng)有足夠多的的字體了嗎?
::
但是,Eeyore對自己說,“寫作這回事,再多的鉛筆什么的,如果你問我。愚蠢的家伙,這些,對于寫作,什么用也沒有?!?/div>
–《小熊維尼》,A.A.米爾恩
好了……,否則我不會編寫這個(FontForge軟件),而且,更重要的是,不會每個月有幾千人下載。
經(jīng)常有人問我這個錯誤的問題,你不會去問一位畫家,他是不是已經(jīng)有足夠的水彩。
字體是一種藝術作品,代表著創(chuàng)造者的個人天賦,它不再是一種多余的色彩。
然而,這里是我試圖解答,隱含再這個問題背后,字體設計,更深層次的價值,
1、的確,目前已經(jīng)有很多種(超過十萬)拉丁字體,但其他類型的字體卻很少:希臘、斯拉夫、印度、泰語、中文、日文、韓文,Unicode字庫……
2、目前依然缺乏足夠多的、優(yōu)秀的免費字體。
3、許多傳統(tǒng)、現(xiàn)代的書寫系統(tǒng),經(jīng)常需要設計自己的字體。(ps,例如蘋果的手機、手表字體,adobe、谷歌、hack的開源編程字體)
4。即使是拉丁文,傳統(tǒng)上,每一種新的藝術風格,都需要一種關聯(lián)的字體。(ps,目前微軟、蘋果主導的扁平設計風格)。新字體總是被創(chuàng)造出來,反映時代的美學。
5、計算機字體技術不斷變化,10年前有用的字體風格,現(xiàn)在也許已經(jīng)不適合時代。
6、即使你對現(xiàn)存的字體感到滿意,它們可能也不完整?例如,卻失蹤的連字、重音符號;沒有匹配的斯拉夫語或希臘符號。。。。。。
7、每個人都想要:一種個人筆跡的字體。
8、玩字體很有趣。
FontForge,已經(jīng)超越了簡單的創(chuàng)建和修改字體。
它可以將字體,從一種格式轉換為另一種格式。
它可以從字體文件中提取信息。
或者,它可以輕松顯示你尚未安裝的字體。
?我為什么要開發(fā)FontForge軟件呢?
::
為什么不呢?
–《幻象天堂》,加斯特
因為它是有趣的
因為Macromedia公司,已經(jīng)停止開發(fā)fontoGrapher軟件,
而且fontoGrapher軟件,缺乏很多功能。
因為我喜歡開源、免費的軟件日劇,希望提供良好的產(chǎn)品,這將鼓勵人們不再使用專有系統(tǒng)。
因為編程比市場營銷更有趣,并且把比銷售更容易。
因為如果FontForge作為商品軟件銷售,我要花更多的時間做QA問答(QA非常無趣)。
?FontForge為什么不使用原生的Windows或MAC操作系統(tǒng)?
::
FontForge不是一個商業(yè)軟件,不受市場約束。
我對這樣做不感興趣。
我沒有時間,也沒有能力承擔那項任務。
我想鼓勵人們使用Linux、UNIX
當然,如果我使用GTK、QT的移植困難就會消失。但不幸的是,我不喜歡這些工具集。
現(xiàn)在……如果你想做移植,那將是美好的。我鼓勵你這樣做。
?為什么FontForge是基于非標準窗口模式?
::
我希望這些窗口部件,可以友好處理Unicode編碼。
我特別關注的是,希伯來語和阿拉伯語排版。
由于我不知道有任何類似的窗口軟件包,我只能自己開發(fā)。
我也想要一個軟件工具庫,可以找出合適的復選框,在很多情況下,人眼無法解決
目前,有兩種免費的軟件庫:Qt和GTK,對于Unicode支持更加友好。
不過,目前我還沒采用,因為:
從一種底層軟件庫平臺移植到另外一種,時間周期很長,期間的bug會分散我的注意力。
如果我花時間做的移植,我沒有精力讓FontForge增加更多的新功能。
Qt是用C++開發(fā)的,我不喜歡C++,所以QT出局。
越看GTK,我越不喜歡它:
對圖像的支持很糟糕(這真奇怪,因為它源自著名的圖像軟件GIMP);
不支持客戶端位圖(我希望支持位圖字體)
還在使用RGB索引顏色系統(tǒng),而BGR格式才使用24bit顏色系統(tǒng),而且透明圖像模塊有缺陷
圖像格式不完整,不能通過圖像本身,知道它的位圖,索引或顏色系統(tǒng)。
這些功能都是必須的能的,但這涉及到一些非常底層的開發(fā)工作,我只知道,如何做在X窗口系統(tǒng)進行開發(fā)這些。
我找到文件選擇對話框真丑,它是如此復雜,以致我不知道如何修改它,使它看起來更加友好很好(按我的標準,即。。。)
我也不知道如何修改文件選擇器,目前,F(xiàn)ontForge的文件選擇器,其行為方式,的確有些古怪。
GTK+2并不運行于MAC
OS,目前唯一移植到MAC的GTK模塊,似乎還是gtk-1
許多我想要使用的模塊庫已經(jīng)過時,我不知道,用什么代替了它們,有時我不得不用一個更復雜的部件來代替。
所以,我傾向于與它進行一段時間的搏斗,然后再決定,采用更加友好的軟件庫平臺。
我目前使用的是一套限制版本的GTK,開開發(fā)FontForge,如果有人提供援助,增加更多的權限,我們會非常感謝。
為什么不采用C++開發(fā)FontForge?(或,C++為什么不是我最喜歡的編程語言)?
::
對于這個問題,我有點吃驚,我沒有意識到,自己還需要選擇開發(fā)語言。
我這樣做,是因為,我無法找到面向?qū)ο蟮木幊棠J健?/div>
在大多數(shù)情況下,我發(fā)現(xiàn),面向?qū)ο笫且环N非常復雜的設計模式,我無法輕松地調(diào)試軟件。
我曾經(jīng)幾年使用Smalltalk,面向?qū)ο蟮姆椒?,雖然似乎很自然,但在大多數(shù)情況下,它似乎只是對問題,增加了不必要的復雜性。
C++不能指定一個編譯器模板,而C語言,完全沒有問題的,而且,在C++中模板、構造函數(shù)和析構函數(shù),有無數(shù)的副作用。我覺得這非??膳隆?/div>
外部構造函數(shù)的執(zhí)行順序是未指定的。會產(chǎn)生許多令人費解的錯誤。
我發(fā)現(xiàn)很難調(diào)試,往往涉及許多意想不到的過程調(diào)用。
最后,我發(fā)現(xiàn),c++太復雜,它把各種不同的概念,強行堆砌在一起,每種c++編譯器,做的事情似乎都有點不同。
我第一次接觸c++,是在1981年的c語言教材上。從1987到1994,我使用的是C++編譯器,是綠山軟件開發(fā)的。每一個版本,都增加了大量新的功能,并沒有完善的與舊的。每個版本都不友好,有大量的錯誤、混亂。
以上是我的個人意見和經(jīng)驗,解釋為什么我不使用c++,你的意見可能不同,不過,很少有人,花了5年時間使用“c++編譯器”。
?為什么FontForge使用BSD授權模式而不是GPL?
::
我只是不喜歡GPL。部分是偏見,部分是真實的。
我不喜歡強迫限制人,我贈送FontForge,所以我采用(更加寬松的BSD授權模式)
BSD授權模式說,“無需告知告我,無需包含我的版權聲明,即使你使用了我的代碼”,那是我所關心的全部。
也許我是天真的,但是我不相信任何人會銷售FontForge。
為什么會這樣?
沒有任何意義,嘗試出售我免費發(fā)布的軟件。
如果有人為FontForge添加功能,那么,這是一個不同的問題,或者,他們在自己開發(fā)的軟件中,添加一些FontForge的代碼河模塊,如果有人那樣做,我的看法是:這樣做眼睛,也許有些粗魯,但我不會說“不”。
我知道,現(xiàn)在一些OpenType代碼,已經(jīng)陷入僵局,例如一些TeX
軟件模塊。
我很喜歡幫助別人,也有很多人幫助過我。
為什么FontForge在運行時加載庫?
::
我不喜歡依賴。我討厭:當你下載一個軟件包,發(fā)現(xiàn)它不工作,除非再下載了半打其他軟件包。
我想只提供一個軟件包,它就可以工作,所以我試著寫盡可能多的代碼,不強迫人們到處漫游,尋找不同的部分。
必須時,我會使用一個外部的模塊庫:
如果用戶不會看一個SVG字形就不需要安裝libxml2。如果用戶將不會導入JPEG圖像(真的不想這樣做),他們不需要安裝libjpeg。
這也將加快啟動FontForge。
?FontForge有未來的路線圖嗎?
::
泰森:我不會感到迷惑,我向你保證我不會感到迷惑。事實上,在這一刻,計劃幾乎會在我的腦海中成形。它甚至可能是足夠的。
-《這女人不是為了燃燒》,克里斯托弗弗萊
主要是因為我不認可這種話模式。我不做計劃。
例如,我決定為FontForge,添加Python支持。我發(fā)現(xiàn),這意味著它變得更容易設計字體,用戶可以創(chuàng)建自己的腳本,添加導入/導出文件格式??梢宰層脩舳x自己的菜單項。然后我想通了:如何添加FontForge
Python(而不是相反)?,F(xiàn)在我認識到,沒有理由,我不能定義一套內(nèi)置c語言模塊,使人們可以使用c語言,為FontForge編寫擴展功能。
每一個階段意味著,我能看到一點點的未來,然后再去完善一點點,然后再看一點點的未來。
而且,想法經(jīng)常會來自用戶,有人會問我沒有想到的功能。我發(fā)現(xiàn)我寫的東西有一半是沒有發(fā)生過的,大部分時間我都懶得去更新頁面。我會忘記它。那是無聊的。我最好是簡單地去做,我不喜歡推測。
所以,不要問我:接下來會發(fā)生什么,因為我不知道。這是一次冒險。我們只能等著看。
?你開發(fā)FontForge,是不是類似烤面包的工作?
::
(這個問題,源自一個開源媒體的采訪,LGM2007)
我喜歡做事,我喜歡做一些特別的、美麗的事情。我不知道與烤面包有什么關聯(lián),但我覺得我做了漂亮的鍋。我真的喜歡裝了玻璃窗口。
很難說字體編輯器是美麗的。但我認為,這背后的想法是美麗的,在我的腦海中,在某種意義上,我發(fā)現(xiàn)用戶界面美觀。我不知道世界上還有誰會做,因為這是我想要的,而且我認為它是美麗的。
在做些什么,做些什么,是很有滿足感的。
在制作一些我需要的東西時,也有一種滿足感(如面包)。我吃我自己做的面包,這就是我吃的面包。
所以我只是喜歡做些漂亮的事情。
?FontForge可以修改字體嗎?這是否合乎道德?
::
許多現(xiàn)行的字體,都是以偉大的設計師的作品為基礎的,從幾百年的歷史中來的,因此,利用他人的設計,有著悠久的歷史。
另一方面,不管是什么法律,剽竊,對于任何一個設計師,它顯然都是不道德的。
法律問題因國家不同而不同(也許是在國家)。你真的應該向律師咨詢一個明確的答復。
以下是一些指南:
看看你使用的字體的的許可協(xié)議,
TrueType(OpenType字體)有個OS/2表,限制哪些字體可以修改。
我對美國法律的理解是這樣的:字體設計的法律保護是最小的。以前,法學家稱“字母是公開的”,這意味著一種類型的設計不能受版權保護。
然而,(我告訴)一個設計師可以注冊(與政府)的設計專利,保護設計14年(如果授予)。我不相信它可以更新,但我可能是錯誤的。
注冊專利是一項昂貴且耗時的過程,往往是超出小型設計公司的能力。據(jù)我所知,相關法律從未在美國進行過測試,所以這可能是值得懷疑的。
字體的程序(如PostScript或TrueType字體文件,但不是一個位圖字體文件)可能是受版權保護的。這就意味著設計本身沒有被保護,但它的機制是創(chuàng)造它。
字體的名稱可能是商標,在英國:有一些所謂的“設計權”,有點像版權,對設計作品提供5年的保護。設計師可以注冊的多達5次,以延長這種保護到25年(在整個歐盟)。我不知道這些具體的細節(jié),也不知道如何與國家具體的法律(如英國的設計權)。
在加拿大:字體設計可以被注冊為一個有限的時間(15年)的“工業(yè)設計”,我歡迎任何補充或更正,以及在其他國家的法律法規(guī)的信息。
?什么是12點(point尺寸)字體?(如何測量的字體的點?)
::
字體尺寸(pointsize),不是基于任何的字體大小。
12點字體,是指,字體相鄰兩行文本的基線之間的距離是12點。
過去,字體都是由金屬制成,該字體的尺寸,是指用于字體的金屬模塊的高度。在某種意義上,這是不是一個很好的字體尺寸標準(有些字體可以上升或下降更多的空間,實際的符號高度更小)。
還有一個基于象形文字的高度的測量方案。,在英國和美國,歷來是
1/72.27英寸,而在歐洲其他國家,是1/67.54英寸。歐洲版本的尺寸稍大一點,但英國和歐洲的字體符號,實際大小是相同的。因為,英語不使用重音(除了在極罕見的情況下),而大多數(shù)歐洲語言有音調(diào)符號,所以字體的點尺寸大小略有增加,以允許更多的口音的空間。
(當然,現(xiàn)在大多數(shù)歐洲人,可能所以的是桌面軟件,多數(shù)電腦字體現(xiàn)在包含重音符號,這些區(qū)別可能已經(jīng)消失了)。
? 如何設置字體的行間距?
::
這取決于你設計的字體,你正在運行的操作系統(tǒng),和運氣。
Type1字體無法設置行間距。應用程序通常會使用字體的邊界框中指定的值,并使用那些設置的行間距。這是一個非常壞的想法,但這是一個普遍的做法。
對于True/Open Type字體的答案是復雜的。
在MAC系統(tǒng),行距設置的上升和下降值雖然有”hhea”表,用于設置字體的邊框值。另外一個不太好的選擇,您可以通過以下菜單進行調(diào)整:Element->Font
Info->OS/2->Metrics
在Windows中,行間距應該設置在OS/2表,不幸的是,大多數(shù)Windows應用程序不遵循這個規(guī)則,同樣,您可以通過以下菜單進行調(diào)整:Element->Font
Info->OS/2->Metrics
對于Linux系統(tǒng),我不知道有一個普遍的共識,一個應用程序可能會使用上述方法之一。
現(xiàn)代字體往往有幾種不同的風格,可能有不同的行間距要求。即使在同一種風格,也可能有差異,例如,英國不使用(或極少數(shù))重音符號的字母,而其他大多數(shù)歐洲語言有音調(diào)符號。
字體的行間距,不是一個全局指標,OpenType允許你,根據(jù)腳本,語言和特征,指定范圍。
?我的符號是多大?
::
不幸的是,這個看似簡單的問題,無法簡單地回答。
你可以是任何大小的。輪廓字形可以縮放,而位圖字形,將取決于屏幕分辨率大小不同。
假設你有一個輪廓字體,你畫為12點。然后我們就可以回答這個問題,假設你有一個500個單位長的劃線符號,字體大小為1000個單位。然后你的字形將是500/1000
* 12 = 6點。在72 dpi的屏幕,這將意味著6像素長。
?什么是em單位?(內(nèi)部單位?)
::
當您創(chuàng)建字體時,您可以使用:lement->Font
Info->General,設置字體大小。
對于金屬字體,這是排版基線到基線的距離。
一般的em單位,大小是1000或2048。用:內(nèi)部單位數(shù)(也叫EM單元)來表示他們。
?對于開源字體上,什么授權方式更好一些?
::
在開源授權模式下,許多字體已經(jīng)被發(fā)布,但這些都不能滿足字體設計師的特定需求。我知道有專門為字體制作的授權模式。
我推薦源自SIL的開源字體授權模式許可,這些授權,雖然沒有法律約束力,但可以幫助闡述非英語用戶的授權意圖。
Vera字體字體采用Bitstream授權模式
GNU授權模式,也經(jīng)常使用。
?使用FontForge軟件的最低要求
::
這很大程度上取決于你想做什么。FontForge主要受限于內(nèi)存(雖然屏幕尺寸也可能是一個問題)
如果你使用腳本模式,字庫不超過幾百個簡單的符號(如拉丁字母),192MB內(nèi)存,就綽綽有余。
如果你是做編輯CJK、UNICODE中文、日文字體,最低內(nèi)存要求是
512MB。
FontForge需要彩色(或灰度)顯示器,黑與白是不夠的。
?FontForge ,為什么用這么多的內(nèi)存?
::
字體一般都存儲在一個非常緊湊的文件中,字體設計成容易光柵化的格式,它們不是用于被編輯的。
當加載一個字體文件時,F(xiàn)ontForge需要把它,擴展成一個更直觀的格式,編輯起來更容易。但要大得多。
也許應該改寫FontForge,使用更高效的存儲表示。但這是一項巨大的工作,對我來說,并不感興趣。
SFD文件非常大。因為他們是采用ASCII表示同樣的擴展格式。他們不是設計得緊湊而清晰可辨。
?如何安裝字體?
::
好吧,這取決于你在做什么系統(tǒng),以及你有什么類型的字體
* UNIX和X 系統(tǒng) ,
輪廓字體和fontconfig
,很多程序現(xiàn)在使用fontconfig找到字體(包括FontForge)。安裝fontconfig字體,簡單的復制文件到你的字體目錄:~/.fonts,即可。
位圖字體,和X11系統(tǒng)的字體安裝,建議你看看Linux 字體
HOWTO文件。
基本上,你將一個(或幾個)目錄指定為“字體目錄”。您將您的字體復制到該目錄,你需要在你的字體路徑中包含這個目錄。
可悲的是不同版本的系統(tǒng),和不同格式的字體,使用略有不同,你可能需要修改這些程序。
** KDE ** ,
(我不知道KDE很好,所以的經(jīng)驗和淺?。?/div>
KDE有個工具叫kfontinst,可以用于安裝、配置字體。
** TeX **
TeX有自己的(跨平臺)安裝字體系統(tǒng)。
* Windows **
你安裝的TrueType字體文件,一般保存在:\Windows\Fonts
在安裝之前,您可能需要在字體上設置“執(zhí)行”權限位。
不要直接復制字體文件到 \Windows\Fonts
如果你想使用Type1字體,你需要安裝Adobe Type
Manager。如果你想安裝OpenType字體,在舊的windows系統(tǒng)(在Windows
2000之前,我認為)你需要安裝ATM。
* * Macintosh OS 9 * *
哦親愛的。蘋果把字體貼在資源叉上,把它們用在自己的頭上。
MAC字體不與其他的兼容,具體請參看系統(tǒng)幫助。
** Macintosh OS X **
在OS X,字體應放在頂層:/Mac OS
X/Library/Fonts/ 目錄,或用戶指定的目錄:~/Library/Fonts
?
為什么一些Windows電腦上,無法安裝FontForge設計的字體?
::
通常都是字體安裝時,出現(xiàn)的操作錯誤,例如直接復制字體文件,而不是安裝字體。
另外,(2009)Windows安全補丁決定:字體的“名字”表大于5K是不安全的,拒絕安裝。這是由于在字體中包含的許可證的全文而引起的。
某些老版本FontForge設計的字體,無法安裝于Windows
2000(和XP)系統(tǒng)。如果你有一個舊版本,請升級吧。
?如何從我電腦開始編輯字體?
::
** MAC OS / 9(或更低版本)**
傳統(tǒng)Macintosh存儲字體資源文件,也支持TTF文件。
FontForge知道如何讀取這些字體文件,可以從中提取一個PostScript或TrueType字體。
所以,在蘋果上編輯字體,步驟如下:
1、在系統(tǒng)文件夾中查找文件:字體文件夾
2、將文件復制到您的電腦嗎?使用指定的格式?或使用一些工具如binhex。
3、運行FontForge軟件
4、打開字體文件,開始編輯,
5、按系統(tǒng)支持的格式,保存字體文件
6、把字體文件復制到你的電腦上?一般可以自動安裝,用其他軟件,使用字體。
* MAC OS X *
在MAC OS
X系統(tǒng),可以直接運行FontForge(如果你已經(jīng)安裝X11)。
?如何創(chuàng)建一個蘋果字體家族?
::
蘋果10.6版本,首選的方法是使用TTC分組字體文件,10.6之前,不支持TTC格式的字體文件,首選的方法是產(chǎn)生MAC字體家族。
** 10.6版本后**,
首先,打開所有的字體,在FontForge設計家族字體,然后選擇文件->生成TTC文件。
** 10.5版本前**,
你必須創(chuàng)建一個字體家族。
一個字體家族,所有的字體必須具有相同的開頭名稱(見字體信息對話框)。
字體家族,它反映了80年代初的電腦字體技術,現(xiàn)代的電腦字體,往往有一系列無法表達的變體,包含以下任何組合:
粗體、斜體、延長、下劃線、陰影、輪廓
? 為什么ATM軟件,在我的蘋果電腦字體上工作?
::
編輯字體時,確保字體編碼采用的是Macintosh拉丁格式。
?我生成的OpenType字體無法在Windows安裝。為什么?
::
不幸的是,蘋果、微軟、Adobe不再開放TrueType字體文件格式。
FontForge有一個復選框在生成字體選項對話框標記[蘋果]。當你為蘋果的字體生成一個字體時,請確保選中此。
我無意中發(fā)現(xiàn)的主要區(qū)別是:
在NAME表中的名字不同。(這實際上是蘋果的版本的規(guī)格錯誤)。
包含位圖字體的表格的名稱
縮放引用的方式存儲
包含的印刷特征表是完全不同的
?
我有一個表格的OpenType/TrueType字體,但Windows顯示“TT”(TrueType)圖標并不是“O”圖標,為什么?
::
據(jù)我分析,字體文件,如果包含一個“DSIG”(數(shù)字簽名)表,Windows將顯示“O”圖標。FontForge不產(chǎn)生,數(shù)字簽名(我認為他們是負效用,反正我不知道如何創(chuàng)建它們)。
然而,F(xiàn)ontForge可以創(chuàng)建空白的“DSIG”表,這似乎足以使窗戶高興,(而顯示“O”圖標)。
?如何從一種輪廓格式轉換為另外一種格式嗎?
::
如果你想快速的話,那簡單的回答是:
1.File->Open,打開一個存在的字體文件
2.Element->Generate,生成另外一種格式的字體文件
如果你是從PostScript格式轉換到其他格式(例如PFB、OTF),所需做的就是這些。
如果你是在PostScript和TrueType格式間轉換,你可以做一點額外的工作,對于樣條曲線,進行優(yōu)化。
1.File->Open
一個存在的字體文件(ttf字體文件)
2.Element->Font Info->Layers
菜單,選擇 <*> All layers cubic選取框
3.Edit->Select->Select
All
4.Element->Simplify->Simplify,優(yōu)化樣條曲線
5.Hints->Auto Hint,自動調(diào)整間距
6.Element->Generate
Fonts,生成另外一種格式的字體文件
從
PostScript(otf、pfb)格式字庫,轉化為ttf字庫,步驟如下:
1 .File->Open
一個存在的字體文件(otf、pfb字體文件)
2.Element->Font Info->Layers
3.Edit->Select->Select
All,
4.Hints->AutoInstr, 自動調(diào)整間距
5.Element->Generate
Fonts,生成另外一種格式的字體文件
?如何從一個位圖格式轉換為另一個?<</div>
::
這很容易,打開一個位圖字體,然后使用:Element->Generate,生成所需的輸出字體。
? 如何從輪廓格式轉換為位圖格式?
::
加載輪廓字體。然后使用:Element->Bitmaps
Available,即可。
這個過程被稱為光柵化,電腦做小像素尺寸,很困難,你或許需要對結果,進行修正:
1,Window->Open Bitmap Window
2,修正字體符號
3,Element->Generate
Fonts,生成字體文件,注意關閉輪廓字體生成,并選擇所需的位圖格式。
? 如何將位圖格式轉換為輪廓格式?<</div>
::
除非你有一個非常大的位圖字體(如TeX字體),下面的過程不會產(chǎn)生好的結果。
1,在你做其他事情之前,確保你的系統(tǒng)已經(jīng)安裝了potrace,或AUTOTRAC矢量化程序
2,創(chuàng)建一個新字體
3,使用File->Importcommand菜單,導入位圖字體到新的字體,一定要取消[Background](背景)復選框,
4,菜單 Edit->Select->Select
All,
5,菜單
Element->Autotrace,自動矢量化
6,菜單 Element->>Add
Extrem,
7,菜單 Element->Simplify,優(yōu)化曲線,
8,人工審核、修整各個字體曲線河節(jié)點
9,Element->Generate
Fonts,生成新的字體文件
?如何從蘋果的Typography字體轉換為OpenType?
::
這些字體格式,有許多相似之處,但重疊不全,大多數(shù)轉換會丟失一些信息。簡單的答案是,這是非常自動的。
你讀入蘋果的字體,選擇等效的[*]
OpenType字體復選框選中的選項對話框。
FontForge自動匹配的OpenType特征。
? 如何從OpenType字體轉換為AAT格式?
::
這主要是自動的。
讀入OpenType字體,并產(chǎn)生一個等效的字體與[*]蘋果的復選框選中的選項對話框。
FontForge能夠自動轉換為AAT格式。
?FontForge如何調(diào)整Hints間距?
::
它是自動設置的。
你可以通過選擇一個點和選擇元素來控制,菜單為:Element->Get Info->Hint Mask.,
?我怎么能讓FontForge使用Flex Hints間距?
::
基本上是自動的。FontForge將在適當?shù)臅r候,自動生成相關的Flex
Hints間距。你不需要做任何事。
? 我如何才能告訴你,需要使用UpdateFlex
Hints間距?
::
如果你想看看FontForge要使用Flex的提示,打開UpdateFlex菜單和字形。
FontForge會顯示一個綠色的光環(huán),圍繞一個Flex暗示的中心點。
?
我的符號是所有完美的暗示,為什么有的寬度不同(或出現(xiàn)??,幌u耆В?
::
PostScript和TrueType字形繪制要求,以順時針的方式。一些光柵化程序不在乎。但是其他的光柵化會有困難與逆時針路徑產(chǎn)生不同寬度的莖時,他們應該是相同的,或?木?,或根本脫]小?
解決的方法是,選取菜單:Element->Correct
Direction,調(diào)整 所有你之前生成的字體。
但有時,窮人就不能做正確的事……
?
我裝一個TTF字體,做了一些改變,產(chǎn)生了一個新的字體。新字形看上去遠不如原件,為什么?
::
FontForge讀取TrueType字體時,它使用的hinting間距(指令),都是原來的字體。但是如果你改變一個字形主體,那些指令不再有效(他們依賴緊密的輪廓細節(jié)),所以,需要用FontForge移除它們。結果表明,F(xiàn)ontForge改變字形,會降低很多TrueType字體外觀(不是全部,有些沒有提示)。
FontForge可以生成你自己的TrueType指令,但你必須要這樣做,菜單:Hints->AutoInstr
?OpenType和PostScript(TrueType)字體之間有什么差異?
::
PostScript和TrueType字體,使用PostScript式,TrueType使用TrueType,(實際上,OpenType包括TrueType字形格式)。
OpenType字體文件后綴名,略有不同,一般為PFA、PFB文件,一般為Type 1格式,而 OpenType字體使用Type
2格式。
Type 2格式,幾乎是一個超集,有一些小的變化和許多擴展型。
OpenType字體還可以包括附加的信息,允許復雜腳本的布局(阿拉伯語,印度,等等)的時候,字形變體和精細排版等方面的支持。
?cidmap文件究竟是什么?我應該關心他們嗎?
::
背景材料:
原來,字庫中每個符號被賦予一個名稱和編碼,這些編碼是由一個256個元素的數(shù)組映射。
回來,然后他們開始字庫進行擴展,例如中文GB嗎。日文CJK嗎,以及Unicode,這些字庫有著10000字形、龐大的字符集,
于是,Adobe創(chuàng)建CID系統(tǒng),每個符號有一個索引(CID),這只是一個數(shù)字,這是作為一個名字。然后外部的字體,額外資源(CMAP)為字體的編碼序列的輸入字節(jié),映射到一個CID。
cidmap文件,在設計GB中文字庫、CJK日文字體才有用,通常,歐洲人/美國人不需要他們。
?為什么TeX不能調(diào)用我的字體?
::
,我是一個TeX新手,也許是TeX的編碼–有時被稱為“Adobe標準的TeX文檔編碼。
所以,如果你有打印問題,失蹤的符號,等嘗試改變編碼字體為TeX
base:
1,菜單 Element->Font Info
2,選擇“編碼”選項卡
3,從下拉列表選擇TeX Base。
?
為什么FontForg不讓我e編輯“.MF”格式的字體文件?
::
如Knuth說:“(與WSYWYG問題是……),你所看到的就是你得到的?!?/div>
? 使用非整數(shù)坐標是安全的嗎?
::
FontForge允許你非整數(shù)坐標編輯。許多字體編輯軟件,有些懷疑非整數(shù)坐標的使用,光柵化時,它將扭曲自己的字體。
答案取決于字體格式和如何保存字體,
TrueType字體只能表示整數(shù)坐標。
當FontForge創(chuàng)建TrueType字體,將所有坐標轉換為整數(shù),這一點在曲線中會有輕微的變形。
PostScript(type1,type2,OpenType字體等),可以使用非整數(shù)坐標,但占用更多的空間。
type1字體往往需要更多的空間,來表達type2型(OpenType字體)字體。
默認情況下,F(xiàn)ontForge使用整數(shù)坐標,但你可以改變,在生成選項對話框。
如果你的字體是圓形的,那么會有一些失真。如果不是圓形的話,應該就沒有失真。
PostScript字體,應使用安全的非整數(shù)坐標,當您生成字體,字體文件將更大,但更準確。
如果你覺得需要更準確的TrueType字體,可以改變他們的大小為8096。,你可以在后記Type1字體太大,然而,也有一些應用,假設所有的OpenType
PostScript字體有一個EM大小為1000,所以最好不作為 OpenType輸出。
?為什么是我的Open Type 字體文件很大?
::
這可能是因為,保存字體之前,你沒有將坐標整數(shù)化。
FontForge將使用浮點數(shù),保存字體,這會數(shù)占用大量空間。
?
當我讀入OTF或type1字體,我的大部分的引用被內(nèi)聯(lián)副本替換。我如何得到我的資料?
::
加載PostScript字體時,找出老引用非常困難。
相反FontForge有一個特殊的命令,參考
Edit->Replace ,可以搜索字體中的潛在候選。
? FontForge使用舊的 ‘kern’字距調(diào)整信息嗎?
::
這個問題需要分解為:
** TrueType和OpenType字體**。
字距調(diào)整信息是存儲在 ‘kern’”或‘GPOS’
這些字體表中,F(xiàn)ontForge可以調(diào)用。
** TrueType and OpenType fonts **,
Yes. The kerning information is stored in either the ‘kern’ or
‘GPOS’ tables of these fonts and FontForge can read them (Apple has
made a number of extensions beyond the original truetype spec,
FontForge can read these too).,
? 如何在OS/2 表(或任何其他)設置一個特殊的位元?
::
FontForge無法這樣做,但我已經(jīng)寫了一個工具軟件,可以編輯相關表單。
? sfd文件是什么?
::
sfd文件是FontForge的數(shù)據(jù)文件格式,它是一個文本文件,只使用ASCII字符,這意味著它是大的,但可讀性強。
?simplify曲線優(yōu)化命令是否會丟失精度?
::
是的,是的。但不多。它被設計來替換一組與另一個不同的樣條曲線。
如果這個效果不夠好(在輪廓視圖):
1,菜單 Edit->Select->Select
All:
2,菜單
Element->Transform->Transform
3,Scale Uniformly: 1000%
4,OK
5,Simplify,曲線優(yōu)化
6,Scale Uniformly: 10%,
7,OK,
這將用一個樣條,來替換一組與原來不同的樣條,1個單位。
?
如何將一個cubic三次樣條,轉換為quadratic二次樣條?
::
這可能會有些精度損失。否則FontForge,將原始樣條分成更小的部分,并試圖找到一套二次樣條不同于立方不超過一個單位的任何地方。
(一旦你選擇了2個端點,并且在這些端點處了解該斜率,兩者之間可能只有一次二次樣條)。
?
如何將一個quadratic二次樣條,轉換為cubic三次樣條?
::
這很容易,因為任何二次樣條,都可以表示為一個立方體。
控制點會有變化,將有一些精度損失。
?當試圖導入圖像文件,為什么說“錯誤加載動態(tài)庫”?
::
FontForge加載圖像,需要使用一些外部的動態(tài)模塊庫,它不檢查這些模塊庫的存在,直到你真的去加載圖像。如果你的系統(tǒng)沒有安裝庫,它會給上面的錯誤(并不能加載圖像)。
?為什么FontForge說“EPS文件太復雜無法理解”?<</div>
::
(因為它是一個錯誤的莎士比亞,我怎么能放棄呢?《無事生非》,V.1.217)
大多數(shù)程序,把EPS文件視為黑盒子。他們會讀文件到內(nèi)存,并輸出到PostScript打印機,不變。
不幸的是FontForge不能這樣做,F(xiàn)ontForge需要理解,然后轉換成一個簡單的EPS文件格式(可以使用更少的操作)。
所以,不像大多數(shù)程序,F(xiàn)ontForge必須解釋每個EPS文件–但解釋所有后記是一個巨大的工作,如果是在它所了解的有限。有時它會發(fā)現(xiàn)它不能處理的文件。
?如何從Inkscape ,輸入符號?
::
用Inkscape設計一個文字,它可以很容易地導入到FontForge。
1,打開Inkscape
2,從“文件”菜單中選擇“文檔屬性”
3,設定單位為像素(PX)和文件尺寸為1000 x
1000,單擊“確定”,或如果你的字體有不同的數(shù),他們使用單位,但1000是FontForge 默認的)
4,設置水平導線在200px
5,設計一個glyph,最難的部分!
6,保存的圖紙為SVG文件
7,打開FontForge
8,菜單 File -->
Import,選擇SVG,找到你的圖,點擊OK
9,菜單 Element -->
10,將Y設置為200,單擊“確定”
? FontForge的灰色背景讓我苦惱。我如何改變它?
::
在×資源網(wǎng)頁上,有相關的討論。
?FontForge
,字體使用其界面太小(太大了)。我如何改變他們?
::
X服務器無法調(diào)整屏幕分辨率,當FontForge調(diào)整它時,往往會出錯。(新版本,已經(jīng)基本解決了此問題)
? 我如何標記為等寬字體?,
::
你只需確保字體有相同的寬度,然后FontForge會自動標記為等寬。
(如果你標記為等寬,一些光柵化會給奇怪的結果)。
如果你想設置,菜單:Element->Font
Info->OS/2->Panose
然后設置比例場等寬,這是必要的但不足以標記字體作為一個整體等寬。
如果你不確定是否所有的符號,你的字體有相同的寬度,使用菜單:Element->Find
Problems->Random->Check Advance
當我說“all
glyphs“,我真的是說所有字符,甚至符號中的Unicode表示應我0寬度的,都必須有相同的寬度。
?我怎么告訴FontForge新的編碼?
::
先問問你自己是否真的需要一個新的編碼?
如果你正在使用OpenType字體或字體通常可以得到標準的Unicode編碼。
但是,如果你真的需要一個新的,在這里是一個粗略的想法:
弄清楚你的編碼是什么樣子。通常,這將包括在網(wǎng)絡上尋找一個編碼的例子。例如,如果你想要一個梵文字母編碼,你可以看看網(wǎng)站說明ISCII編碼
這些編碼只顯示前96個字符,大概也像我們一樣的ASCII。看圖片,找出它們?nèi)绾斡成涞経nicode(或者更確切地說,那些人物適當?shù)暮笥浀拿质鞘裁矗?/div>
創(chuàng)建一個文件(稱之為“梵文。PS”在這種情況下)。它應該從一條線:,
\/梵文{ ,這告訴FontForge,編碼被稱為“天城”,然后按照這個名單的所有角色的名字(之前有一個斜線)。
現(xiàn)在加載此文件為FontForge的編碼,菜單Encoding->Load Encoding
?如何添加一個新的名字符號?
::
讓我們說你想添加一個“dotlessi”字形的字體(ISO-8859-1編碼不包括dotlessi)。
解決這個問題的方法有:
1,菜單 Encoding->Add Encoding
Slots,找到你要的號碼類型(大概1)
2,按OK鍵向下滾動到結束的字體,和找到新的符號,菜單:Element->Glyph,鍵入你的新名字為Unicode名稱字段
3,菜單
Encoding->Reencode->ISO-10646-1
4,菜單 View->Goto Type
5,現(xiàn)在開始設計符號
6,菜單
Encoding->Reencode,再次改變編碼
? 為什么FontForge給我的一些符號名字錯誤?
::
FontForge的命名約定是在Adobe的字形的命名約定,指定,不幸的是,有一些問題(一般為舊編碼兼容)。
?在我生成的字體和退出,為什么FontForge問我是否要保存的字體?我什么也沒變。
::
有兩個原因可能發(fā)生:
1,即使你沒有在這個會議上改變什么,F(xiàn)ontForge可能需要(重新)產(chǎn)生暗示在一個或幾個符號信息(如,例如那些符號已經(jīng)改變(在以前的會話)但沒有提示已生成他們自)。這些新提示將標志著字體的改變。
2,如果你的字體在字體信息的XUID區(qū),然后FontForge會增值的最終數(shù)量在xuid每次PostScript字體生成–,這也算是一個改變。FontForge(為什么這樣做?因為它應該說。一個小的煩惱,但它避免了一些問題與字體緩存時,你改變了一個舊版本的字體為一個新的一個)。
? 為什么我的窗口圖標化的時候,我想得到縮小視圖?
::
一些窗口管理器(gnome)鍵盤沖突,您必須使用“視圖”菜單->縮小相反。
? 為什么在希臘字體里沒有一個叫字符“mu”?
::
Adobe想得更多的是,向后兼容,當他們在Unicode編碼,分配希臘字母時。因此得名“mu”指的是微信號(U +
00b5),而不是字符“mu”。
?為什么Edit->Copy,不能復制符號名稱以及字形信息?
::
首先是因為我相信,任何復制一個字形的名稱的嘗試,都可以通過定義一個自定義編碼來更好地進行。
其次,因為大多數(shù)時候你不想被復制的名字。
再次,因為它是審美的,應該只有更好的數(shù)據(jù)和元數(shù)據(jù)的工作。
不過……
有足夠多的人問這個問題,我已經(jīng)啟用了一種模式,在編輯-復制從-
>字符的名稱,允許您改變默認的行為。
? 為什么Edit->Paste,名稱重復?
::
因為你有:Edit->Copy From->Copy
Metadata, 復制元數(shù)據(jù)檢查。選中它。
? 如何設置字體的默認字體?
::
如果字形命名”。notdef”,包含了一些樣條(但沒有引用),它將作為默認的符號(即字形時使用非編碼符號)。
除了在OpenType字體(即
PostScript,OpenType字體),的".notdef"字形不用于默認字形,而是“空”字形。(別看我,我沒有寫規(guī)格)
?我看著華文楷體或mingliu.ttf和輪廓看起來像正確的符號。怎么了?
::
有些TrueType字體(如華文楷體或mingliu)不存儲正確的輪廓。
相反,他們依靠使用指令移動,產(chǎn)生輪廓。這個輪廓看起來不是很適合網(wǎng)格的,只是位置。
FontForge不會說明,因為它讀取字體。在大多數(shù)字體中,這將是錯誤的事情,我不知道:我怎么能告訴什么時候需要做……
?當我使用:Element->Build->Build
Accented Glyph ,建立重音符號,來建立一個擴展的希臘銘文(U + 1f00-u +
1FFF),F(xiàn)ontForge挑選錯誤的口音。為什么?
::
因為Unicode統(tǒng)一了希臘語和拉丁語口音,即使他們不一樣。
當FontForge遵循簡單的Unicode定義,它可能會選擇一個希臘符號拉丁口音。
幸運的是Unicode也包含希臘口音大約從U +
1fbd代碼點,如果你把這些代碼點與適當?shù)目谝?,然后FontForge將使用這些而不是拉丁口音。
?當我使用: Element->Build->Build
Accented Glyph,建立重音字形,“U”或“Y”我的口音不在字形中部。為什么?
::
你的一個筆畫比另一個高一點。FontForge口音中心在字形的最高點。如果有幾點相同的高度,那么平均使用。
如果你的所有的筆畫是相同的高度,那么重音應該是適當?shù)募小?/div>
?我做了所有的字母,但字體仍然是缺失字符言,亂碼?
::
一些字體軟件(如默認的Ubuntu字體查看器),要求所有的A–Z字母,加上所有的數(shù)字和標點符號如“,否則他們就吐出的胡言亂語。
?如何設置空格字符?
::
在感嘆號之前,空格字符被找到。
這是用一個黑色菱形標記在里面的問題。你設置的空間寬度,通過拖動預先寬度與任何其他符號。
?歐元符號在哪里?
::
默認情況下,F(xiàn)ontForge始于Latin-1編碼一個新的項目(ISO
8859-1)。
這套全英文字母,西歐口音,和一些北歐的象形文字,再加上各種符號和分數(shù)。歐元符號是在ISO
8859-1被發(fā)明,所以他們把它一路下跌在8364位置以及一些其他的貨幣符號。歐元符號也發(fā)現(xiàn)與其他符號正確表示如果你設置的編碼模式的latin-0(ISO
8859-15)。
?為什么是字形表這么長時間,當我打開Unicode
BMP/Full?
::
因為Unicode長,它包含了超過十萬字形。他們中的大多數(shù)是中國和日本的文字,還有塊希臘,斯拉夫(俄羅斯),切諾基,甚至埃及象形文字。這并不意味著你可以忽略一切后的字符雖然。許多英語標點符號像-,-,?,引號,和數(shù)學運算符,如減符號被發(fā)現(xiàn)“下方的褶皺”。訪問一個簡單的方法是設置你的編碼方式,像Adobe的標準或Macintosh拉丁。
::為什么ttf2afm會出錯,在處理FontForge生成的TTF文件時?
::
我不知道。我的ttf2afm程序,在RedHat 7.3
Linux確實崩潰。當我下載了源從CTAN pdfTeX面積和建造它(調(diào)試)生成的程序沒有崩潰。因此,我相信這是ttf2afm
bug,bug已經(jīng)修復。
通過ttf2afm產(chǎn)生的AFM文件,不符合Adobe的規(guī)格。,
?為什么許多不同的字體名稱相同意思嗎?
::
菜單:Element->Font
Info,顯示字體名稱窗格與幾個不同的領域
為什么會有這么多的人,他們都是什么意思?
名稱窗格包含用于PostScript字體名稱。還有一個名字窗格包含TTF相似的一套用于sfnts名稱(一個sfnt是字體文件的格式,包括字體,字體,和一些比較?淖痔甯袷劍?
字體可以包裝在一個sfnt后記。在這種情況下,它可以有一套后記的名字,和一套sfnt(TTF)名稱。這些名字可能是不同的(通常不是一個好主意,但他們可能是)。
“人類的名字”是傳統(tǒng)與字體關聯(lián)的名稱。它可能是“新世紀教材斜體#
4”。這是一個字符串,應用程序可以用來顯示當他們想讓人類知道什么是字體。
該字體的存在是因為PostScript是一種編程語言,這是用來確定在PostScript字體名稱。它對可能在名稱中的字符有限制(沒有空格是最大的。但它也不能像一個數(shù)字,沒有圓括號等)和長度的名稱。它可能看起來像“itcnewcenturyschoolbook斜體”。
姓是一個家族的名字。在上面的例子中,“新世紀教材”可能是姓。,”庫文件名”是不是一個真正的名字與字體本身相關。它只不過是讓你的生活更容易在使用FontForge。當你產(chǎn)生一個字體,F(xiàn)F會為你選擇一個默認的文件名(你可以改變它,當然,如果你想使用默認名稱是一個很方便的)。
通常情況下,默認名稱將只與一個擴展的字體添加。但有時人們想要一個不同的名稱為默認,也許只是newcentschlbk-ital.ttf。
因此,控制包含字體文件的默認文件名,并沒有直接涉及到字體本身的東西。修飾字符串是“粗”,“黑”,“細”,等,不包括其他文體的變化(你不會把斜體或凝聚在這里)。
版權字符串應該是自解釋的。,除了字體信息的“名”窗格中,還有一個TTF名稱窗格。
在許多方面,這是一個重復的名稱窗格,但有一些差異。它是用來指定名稱的sfnts。,這里
更復雜的事情,有例如:WWWS Family, ?WWS
SubFamily,我真的不明白為什么這是必要的,但微軟認為他們是。據(jù)我所能告訴他們應該(在大多數(shù)情況下)一樣,因此應省略。
CID字體應該是除非你正在建設一個CID鍵字體忽視(這通常意味著你正在一個CJK字體,)。
這是兼容的另一個名字。我想應該是姓名相同,并應略。,
TTF名稱可在多個指定語言和書寫系統(tǒng)。翻譯最頻繁的條目是亞族。因此,斜體字體,你會有一個英語入門“斜體”,也許
?我的FontForge不斷崩潰,因為保持內(nèi)存超出。我能做些什么呢?
::
買更多的內(nèi)存,如果你編輯大字體,F(xiàn)ontForge可能耗盡內(nèi)存。
往往當FF耗盡內(nèi)存,內(nèi)核會崩潰而不是錯誤情況的報告。FontForge不分配失敗和嘗試釋放一些記憶塊當系統(tǒng)返回一個錯誤–我從未見過這個代碼激活,雖然檢查n次。
FontForge的確提供了一種機制,可以幫助你避免這種。FontForge通常浪費很多記憶保存的撤消左右。
你可以明確的撤銷與字形與編輯->刪除撤消命令。你也可以限制一些撤消,:File->Preferences->Editing->UndoDepth
?為什么FontForge如此不穩(wěn)定?<</div>
::
做質(zhì)量保證,太麻煩。我不喜歡這樣做,也沒有人付錢讓我去做,所以很少有人做。
如果你愿意做質(zhì)量保證,讓我知道(這是一個公共郵件列表)。這是一個吃力不討好的工作,但很重要!<</div>
?為什么FontForge
在Xgl/Compiz下難看?<</div>
::
我還不知道,但是我告訴你可以把它設置:xlib_skip_argb_visuals = 1
?我為什么不說在會議嗎?
::
因為我沒有什么話要說,
泰森:我不被發(fā)現(xiàn)。我完全占領了其他地方。如果你想找到我,我將在我的書房里。你可以敲門,但我會給你答復的。我希望能和我的信念獨處。晚上好。
-《這女人不是為了燃燒》,克里斯托弗弗萊,
對偉大的問題的答案…?
是的…!是……是的…!是……是的…?。?!……?
“四零二,”深沉的思想與無限的威嚴和平靜。
“四零二!“
loonquawl喊道,“你得給七個百萬年的工作?
“我很徹底地檢查了一下,”計算機說,“這很肯定是答案。我認為這個問題,對你很誠實,是你從來沒有真正知道的問題是什么。
–《漫游指南銀河》,道格拉斯亞當斯,
這都是柏拉圖,在柏拉圖:保佑我,他們怎么教他們這些學校的?<</div>
–《最后的戰(zhàn)役》,路易斯
”我已經(jīng)回答了三個問題,這就夠了,”
父親說,“別擺架子!你認為我能整天聽這些東西嗎?下車,否則我就把你踢下樓梯?!?/div>
–《你老了,威廉爸爸》,卡羅爾劉易斯
原文:《FontForge常見問題FAQ》
http://fontforge./en-US/faq/
翻譯:字王·中國
blog:http://blog.sina.com.cn/zbrow
================
ps:有趣的是,這個FAQ的第一個問題就是,為什么需要新字體
經(jīng)常有人問我這個錯誤的問題,你不會去問一位畫家,他是不是已經(jīng)有足夠的水彩。
英文畢竟十萬種了,設計簡單,面臨的壓力,是創(chuàng)新困難。
與字王blog《沒的選擇時,存在就是合理的》遙想呼應
http://blog.sina.com.cn/s/blog_7100d4220102vqqx.html
|
|