當前位置:編程學習大全網 - 編程語言 - 字體修改詳細圖文教程

字體修改詳細圖文教程

去年十月份改論文時,用matplotlib做圖,生成pdf,插入到word文檔中。但是需要把整個字體都嵌入到pdf裏,生成的文件很大。當時就想通過修改字體,刪除不用的字來解決,這是當時看的壹篇教程,講的很詳細。

目錄

壹、基礎知識介紹

註意:770適應的TTF,必須為2左右的,不能超過2.5M的TTF,所以大家找模板的時候的註意。

首先說壹點題外話,這份字體教程說了許久,壹直沒有拿出來,實在不好意思,在此向各位道歉。因為還沒有寫完,就已連載的形式慢慢發出來,前幾部分為了照顧新手寫得比較啰嗦,後面我會寫的簡潔壹些。下面進入正文。

要學會修改字體,我們必須要對字體有壹定的了解,我希望首先在這裏很快把壹些字體結構的基礎知識都在這裏解釋壹下,為了方便新手理解,我認為使用比較形象的比喻結合相關術語來說明比較好,由於我們主要使用FontCreator來修改字體,下文中的術語將以FontCreator為準。

首先,讓我們把每個字體想象成壹座大廈,這座大廈有他的名字等信息,我們可以通過這些信息來找到這個字體。而我們所需要顯示在屏幕上的每個字符相當於就是住在這座大廈每個房間的人,這就是我們修改的主要目標了。這時妳也許會想到:壹個字體擁有幾萬個房間,我們怎麽知道要找的人在哪個房間呢?

就我們接觸最多的TrueType(.ttf)字體來說,它使用的的是Unicode編碼,它為每種語言中的每個字符設定了統壹而且唯壹的二進制編碼,也就是說我們大廈中的每壹個房間都有壹個統壹而且唯壹的二進制的房間號碼,另外,我們還要同時保證,該房間號碼所對應的人必須是正確的,否則我們找到的人就不是我們想要找的人,顯示出來的字符也就不是我們想要顯示的字符。“統壹而且唯壹”的意思就是無論哪個系統都是按照這個編碼去尋找字符,並且每壹個編碼只可能出現壹次。

這下大家應該比較清楚了吧,我們要讓壹個字體正常並且正確的顯示,首先要保證字體結構是完整正確的,其次我們還有每個字符以及同他相對應的編碼是正確的。當然這只是最基本的條件,實際上具體的情況可能復雜很多。

下圖是壹個完整的Unicode編碼表,我們所能用到的99.9%的字符都屬於其中的BMP(基本多文種平面 Basic Multilingual Plane),也就是0000-FFFF之中。

二、常用軟件介紹

High-Logic FontCreator Professional Edition:這應該是用的比較多的壹款字體創建、修改軟件,雖說不夠專業,但是足夠我們日常使用了。目前最新版本5.6,有漢化版,不過推薦使用英文版。

High-Logic MainType:與FontCreator是同壹家公司的產品,很好用的字體管理軟件,而且可以輔助我們更方便地修改字體,用到時我再詳細介紹。目前最新版本2.1.1。

FontForge :Linux上的壹款開源字體編輯軟件,據說功能和專業的FontLab相媲美,雖然在Windows也可以運行,但是操作習慣有些不同,也不太穩定。但是在某些功能上比FontCreator方便很多,所以我將它配合FontCreator壹起使用。

Unicode編碼轉換工具:可以將您輸入的字符轉換為Unicode編碼,這樣妳就可以快速定位該字符進行修改。有兩款,其中壹款支持雙向轉換。

字體組件:這是我從各個字體中搜刮出來的,按照相應的順序及語種或類別放在了單獨的字體文件中,包含了BMP範圍內我所能找到的所以字形。

11月26日更新了壹下,因為查了些資料,發現有幾個地方是不應存在任何符號的,另外對中文部分對照GB18030做了壹些修改。如果妳是用了該文件修改字體並公開發布的話,希望能署上本人名字或留下我的博客地址,謝謝。

字體編輯FontCreator5.6XX版本(以前我上傳的,定位到這個帖子裏)

2篇修改字體教程!喜歡DIY的看看:

/viewthread.php?tid=164

/viewthread...p;extra=&page=1

三、替換字體的英文字母及數字

接下來我們就正式開始字體的修改,我將采用實例的形式編寫本教程,首先我們從最簡單的替換數字及字母開始,我們以制作準圓NeoSans為例。其實這部分很簡單,就是復制粘貼而已,只需要註意壹點,就是每個字形要復制到對應的編碼下,要不然就會出現顯示錯誤。通俗的說,就是要把新的字形放對房間。

技巧

我建議每次修改字體之前,都確保字體中的字符是按Unicode編碼(也就是文章開頭所說的房間號)的順序排列,這樣壹方面方便修改,另壹方面可以大大減少修改中出現錯誤。在本例中,如果原字體與替換所用的字體排列順序不壹致的話,直接復制粘貼就會出現錯誤。具體操作方法為選擇菜單欄Font - Sort Glyphs,然後選擇第壹項,點擊OK,這個過程需要比較長的時間。

四、少量連續符號或文字的添加

今天將介紹少量連續符號或文字的添加,該操作使用FontCreator比較方便,下面我以給方正準圓添加Nokia特殊符號為例,說明操作方法。

實際上,妳可以利用以下方法,將教程(2)提供的Components.zip中的任意壹個字體組件添加到您的字體中。我修改的字體基本上都是不帶韓文的,如果妳需要顯示韓文的話,通過以下方法就可以實現了。

首先打開Nokia符號組件及準圓字體,全選所有字符(Ctrl+A),可以看到狀態欄上顯示總***有19個字符,同時記住這19個字符的編碼是從F800至F812。然後使用Ctrl+C復制這些字符(也可以使用右鍵菜單或工具欄按鈕)。

五、大量非連續符號或文字的添加

在本教程第二部分提供的字體組件中,有壹個Components.ttf,這個字體文件包含了除中文和韓文以外其余的所有壹萬壹千余個符號及文字,方便大家進行壹次性添加,由於原字體與Components.ttf必定會有壹部分重疊,我們所需要補充的字形肯定不是連在壹起的。

另外,如果妳要修改的字體中文部分不完整的話,為了能顯示所有中文,妳有可能需要使用相似的字體將中文部分補充完整,這時妳需要補充的中文字符肯定也不是連續在壹起的。

在以上兩種情況中,我們就不能按照教程第四部分簡單的進行添加了,這壹部分我們就以利用Components.ttf補充準圓的符號文字為例,分別說明使用FontCreator及FontForge的操作方法。

1. 使用FontCreator進行添加

首先我們打開兩個字體,將Components.ttf中的字形全選,復制。

接著,我們在準圓字體末尾添加11411個空字形,註意下面選擇第二項“After last glyph”(沒有選中字形的話默認為該項)。

2. 使用FontForge進行添加

首先,同樣打開兩個字體,路徑為“cygdrive\盤符\目錄\文件”。

接著分別在兩個字體的窗口中選擇菜單Element – Font Info,彈出窗口的左邊選擇General,將Components.ttf的Em Size(主要是這項)、Ascent、Descent改為與準圓相同的數值,點擊OK,稍等片刻等待該操作完成。

六、刪除不需要的字形

說完了怎麽添加字形,現在該說說說說怎麽刪除字形了,在這裏我們利用MainType,可以很方便的刪除不需要的字形,對字體進行精簡。

首先打開MainType,界面中間的左部是字體列表區域,第壹個選項卡Actives代表已安裝的字體,每次啟動時都會加載該列表下的字體,稍等壹會加載完以後,點擊Browse選項卡,瀏覽到妳要修改的字體目錄,選擇妳要修改的字體,這時妳在右邊就可以看到該字體所包含的所有字形,並且是按照不同的區塊排列的。通過 這個文本文件 ,妳可以查看到區塊對應的用途或語言。

七、字形輪廓的調整

今天繼續為大家帶來我的字體修改教程,這次我們講的是比較重要的壹部分,修改字體的過程中也會經常用到的–對字形輪廓的具體調整,同時也包含對單個字形寬度等參數的調整。

我們打開壹個字形,這裏壹英文大寫字母“K”為例。中間黑色實心的部分就是屏幕上顯示出來的字形,它的附近有幾根紅色的虛線來定義它的位置。水平的幾根同壹個字體內的每個字形都是壹樣的,而垂直的兩根定義了該字形的寬度,同壹個字體裏的不同字形不壹定相同。關於這些虛線的意思和作用大家可以看看下圖中標註的中文。

實例

怎麽使用好這個工具還需要妳自己不斷地摸索,我覺得很難用語言表達清楚,最後我舉壹個小例子,希望能起到拋磚引玉的作用,下面我說壹下怎樣對桌面播放時間不能完整顯示的字體進行調整。

桌面播放時間用到的是數字及英文冒號,經過多次的測試得到,在數字寬度為字體Em Size的壹半,冒號寬度為Em Size的四分之壹時,能保證桌面播放時間的完整顯示。字體的Em Size可以通過Format - Setting,在Units per em後面看到;單個字形的寬度可以右鍵單擊該字形,選擇Properties,在Advance Width後看到。

  • 上一篇:宋小寶編程
  • 下一篇:僑光中學的泉州
  • copyright 2024編程學習大全網