日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

修改TTF字体美化显示效果【原文转自:http://www.linuxfans.org/】

發布時間:2023/12/8 linux 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 修改TTF字体美化显示效果【原文转自:http://www.linuxfans.org/】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

準備

工具fontforge,原名pfaedit,主頁:http://fontforge.sourceforge.net/

原料:兩款中文字體。一款作為“常規”字體顯示,一款作為“粗體”顯示。兩款字體并不一定是同一種,只要你自己看著舒服就行。但是粗體比常規粗是必須的。當然,如果你不這么做我也沒辦法。

優點:不用對現有字體引擎打補丁、做修改。

缺點:比較麻煩;有版權問題;比較配套的字體不好找。

附言:經wxz8指點后,添加了斜體的制作方法。

備注:Windows的ArialCourier、Times、Verdana等都是通過定義4個相關字體實現的粗斜體,而不是用算法.這樣的效果應該不錯。

我這里以方正圓體為例。

目標:以方正準圓作為“常規”字體顯示,方正粗圓作為“粗體”顯示,統一改為FZYuanTi。

沒用中文名的原因是在不打firefly( http://firefly.idv.tw/setfont-xft/ )補丁的情況下無法顯示中文字體名。

制作常規體

1. 安裝完成fontforge后,在終端里輸入fontforge運行,在彈出的界面里載入方正準圓(fzy3k.ttf)。


2. 點擊菜單欄的Element--Font Info

Fontname改為FZYuanTi_JT(這一步的修改將顯示為PostScript名。右鍵--屬性,Meta信息就可看到);

Family Name改為FZYuanTi

Name For Humans改為FZYuanTi(這一步不改也可以,但為了統一我還是改了);

Weight改為Medium(MS帶的字體這里均為Book,你不改也可以);

關鍵是Family Name應該和你將用的“粗體”統一,名字可以任意。我用FZYuanTi。


3. 切換到TTF Values選項卡

Weight Class改為500 Medium(MS帶的字體這里均為400 Book,你不改也可以)。


4. 切換到Panose選項卡

Weight改為Medium


5. 切換到TTF Names選項卡

在下面第二個選框內選擇Chinese(PRC)zh_CN

改變第一個選框內的內容為Family,此時將下面輸入框內的內容改為FZYuanTi

改變第一個選框內的內容為Fullname,此時將下面輸入框內的內容改為FZYuanTi

改變第一個選框內的內容為UniqueID,此時將下面輸入框內的內容改為Founder:FZYuanTi Regular

然后將下面第二個選框內選擇English(US)en_US(這里字體所支持的語言會用不同顏色顯示,直觀明了、方便選擇。如果我不是色盲的話應該是綠色的);

做與Chinese(PRC)zh_CN類似的修改,即修改Family、Fullname、UniqueID三部分。


6. 點擊OK關閉對話框后,如果彈出窗口提示不匹配,詢問是否改變的話,點擊Retain All,不做改變。


7. 選擇File--Generate Fonts,選擇True Type,點擊Save后生成字體,文件名任意,我取為FZYuanTi_regular.ttf。如果彈出窗口提示什么Em Size的話不用理會,點擊yes確定。

制作粗體

1. 安裝完成fontforge后,在終端里輸入fontforge運行,在彈出的界面里載入方正粗圓(fzy4k.ttf)。


2. 點擊菜單欄的Element--Font Info

Fontname改為FZYuanTi-Bold_JT(這一步的修改將顯示為PostScript名。右鍵--屬性,Meta信息就可看到);

Family Name改為FZYuanTi

Name For Humans改為FZYuanTi Bold(這一步不改也可以,但為了統一我還是改了);

Weight改為Bold

關鍵是Family Name應該和你將用的“常規”統一,名字可以任意。我用FZYuanTi。


3. 切換到TTF Values選項卡

Weight Class改為700 Bold。


4. 切換到Panose選項卡

Weight改為Bold


5. 切換到TTF Names選項卡

在下面第二個選框內選擇Chinese(PRC)zh_CN

確認第一個選框內的內容為Styles(SubFamily),此時將下面輸入框內的內容改為Bold

改變第一個選框內的內容為Family,此時將下面輸入框內的內容改為FZYuanTi

改變第一個選框內的內容為Fullname,此時將下面輸入框內的內容改為FZYuanTi Bold

改變第一個選框內的內容為UniqueID,此時將下面輸入框內的內容改為Founder:FZYuanTi Bold

然后將下面第二個選框內選擇English(US)en_US(這里字體所支持的語言會用不同顏色顯示,直觀明了、方便選擇);

做與Chinese(PRC)zh_CN類似的修改,即修改Styles(SubFamily)、Family、Fullname、UniqueID四部分。


6. 點擊OK關閉對話框后,如果彈出窗口提示不匹配,詢問是否改變的話,點擊Retain All,不做改變。


7. 選擇File--Generate Fonts,選擇True Type,點擊Save后生成字體,文件名任意,我取為FZYuanTi_bold.ttf。如果彈出窗口提示什么Em Size的話不用理會,點擊yes確定。

制作斜體

1. 安裝完成fontforge后,在終端里輸入fontforge運行,在彈出的界面里載入剛才修改過的常規字體(FZYuanTi_regular.ttf)。


2. 點擊菜單欄的Element--Font Info

Fontname改為FZYuanTi-Italic_JT(這一步的修改將顯示為PostScript名。右鍵--屬性,Meta信息就可看到);

Family Name改為FZYuanTi

Name For Humans改為FZYuanTi Italic(這一步不改也可以,但為了統一我還是改了);

Weight改為Medium(MS帶的字體這里均為Book,你不改也可以);

關鍵是Family Name應該和你將用的“粗體”統一,名字可以任意。我用FZYuanTi。


3. 切換到TTF Values選項卡

Weight Class改為500 Medium(MS帶的字體這里均為400 Book,你不改也可以)。


4. 切換到Panose選項卡

Weight改為Medium


5. 切換到TTF Names選項卡

在下面第二個選框內選擇Chinese(PRC)zh_CN

確認第一個選框內的內容為Styles(SubFamily),此時將下面輸入框內的內容改為Italic

改變第一個選框內的內容為Family,此時將下面輸入框內的內容改為FZYuanTi

改變第一個選框內的內容為Fullname,此時將下面輸入框內的內容改為FZYuanTi Italic

改變第一個選框內的內容為UniqueID,此時將下面輸入框內的內容改為Founder:FZYuanTi Regular Italic

然后將下面第二個選框內選擇English(US)en_US(這里字體所支持的語言會用不同顏色顯示,直觀明了、方便選擇);

做與Chinese(PRC)zh_CN類似的修改,即修改Styles(SubFamily)FamilyFullname、UniqueID四部分。


6. 切換到General選項卡,在“Italic Angle:”后輸入12


7. 點擊OK關閉對話框后,如果彈出窗口提示不匹配,詢問是否改變的話,點擊Retain All,不做改變。


8. 選擇Edit--Select--Select All,然后執行Element--Transform

在新彈出的對話框中改變第二個選框內的內容為Skew,在將其后的數值改為12(數值可根據你的視覺需要任意輸入,Windows自帶的英文字體多為10、121316。你可以先單獨選中一個字體Skew一下試試看傾斜程度是否合適)。點擊OK確定。


9. 在彈出的警告對話框中點擊OK確定,如果彈出什么錯誤提示的話不用理會,一路回車。完成后會看到字體已變為斜體。接著按照剛才的警告執行Element--Add Extrema

最后選擇File--Generate Fonts,選擇True Type,點擊Save后生成字體,文件名可任意。我取為FZYuanTi_Italic.ttf。如果彈出窗口提示什么Em Size的話不用理會,點擊yes確定。

制作粗斜體

1. 安裝完成fontforge后,在終端里輸入fontforge運行,在彈出的界面里載入剛才修改過的粗體(FZYuanTi_bold.ttf)。


2. 點擊菜單欄的Element--Font Info

Fontname改為FZYuanTi-BoldItalic_JT(這一步的修改將顯示為PostScript名。右鍵--屬性,Meta信息就可看到);

Family Name改為FZYuanTi

Name For Humans改為FZYuanTi Bold Italic(這一步不改也可以,但為了統一我還是改了);

Weight改為Bold

關鍵是Family Name應該和你將用的“粗體”統一,名字可以任意。我用FZYuanTi


3. 切換到TTF Values選項卡

Weight Class改為700 Bold。


4. 切換到Panose選項卡

Weight改為Bold。


5. 切換到TTF Names選項卡

在下面第二個選框內選擇Chinese(PRC)zh_CN

確認第一個選框內的內容為Styles(SubFamily),此時將下面輸入框內的內容改為Bold Italic

改變第一個選框內的內容為Family,此時將下面輸入框內的內容改為FZYuanTi

改變第一個選框內的內容為Fullname,此時將下面輸入框內的內容改為FZYuanTi Bold Italic

改變第一個選框內的內容為UniqueID,此時將下面輸入框內的內容改為Founder:FZYuanTi Bold Italic

然后將下面第二個選框內選擇English(US)en_US(這里字體所支持的語言會用不同顏色顯示,直觀明了、方便選擇);

做與Chinese(PRC)zh_CN類似的修改,即修改Styles(SubFamily)、Family、Fullname、UniqueID四部分。


6. 切換到General選項卡,在“Italic Angle:”后輸入12


7. 點擊OK關閉對話框后,如果彈出窗口提示不匹配,詢問是否改變的話,點擊Retain All,不做改變。


8. 選擇Edit--Select--Select All,然后執行Element--Transform。

在新彈出的對話框中改變第二個選框內的內容為Skew,在將其后的數值改為12(數值可根據你的視覺需要任意輸入,Windows自帶的英文字體多為10、1213、16。你可以先單獨選中一個字體Skew一下試試看傾斜程度是否合適)。點擊OK確定。


9. 在彈出的警告對話框中點擊OK確定,如果彈出什么錯誤提示的話不用理會,一路回車。完成后會看到字體已變為粗斜體。接著按照剛才的警告執行Element--Add Extrema。

最后選擇File--Generate Fonts,選擇True Type,點擊Save后生成字體,文件名可任意。我取為FZYuanTi_bold_Italic.ttf。如果彈出窗口提示什么Em Size的話不用理會,點擊yes確定。

安裝字體

1./usr/share/fonts目錄下新建local目錄,把剛才制作好的四個字體復制到/usr/share/fonts/local下。

2. 執行

# ttmkfdir -d /usr/share/fonts/local/ -o /usr/share/fonts/local/fonts.scale # cp /usr/share/fonts/local/fonts.scale /usr/share/fonts/local/fonts.dir

3. 更改/etc/X11/XF86Config(如果你用的X是xorg的話就應改修改xorg.conf),在字體字段加入一行

FontPath "/usr/share/fonts/local"

類似于

RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/share/fonts/local" FontPath "unix/:7100"

4. 更改/etc/X11/fs/config,在查找字體字段增加一行

/usr/share/fonts/local,

類似于

catalogue = /usr/share/fonts/zh_CN/TrueType, /usr/share/fonts/local, /usr/X11R6/lib/X11/fonts/korean,

5. 編輯/etc/fonts/fonts.conf,在每個字體字段最前面加入

<family>FZYuanTi</family>

類似于

<alias> <family>FZYuanTi</family> <family>Bitstream Vera Serif</family> <family>Times</family> <family>Times New Roman</family> <family>Nimbus Roman No9 L</family> <family>Luxi Serif</family> <family>Kochi Mincho</family> <family>AR PL SungtiL GB</family> <family>AR PL Mingti2L Big5</family> <family>Baekmuk Batang</family> <default><family>serif</family></default> </alias>

6. 編輯/etc/gtk-2.0/gtkrc(這一步是為在KDE下GTK2的程序設置字體。如果你用的是gnome就不用修改,否則字體設置會不起作用),加入

style "user-font" { font_name="FZYuanTi 12" } widget_class "*" style "user-font"

7. 注銷或者執行init 3退出X。 8. 執行

# fc-cache -fv # /etc/init.d/xfs restart

9. startx或者init 5進入X后,在字體設置里選擇FZYuanTi,大小為12即可。

使用替換字體

往往一款中文字體里的英文字符不是很好看,所以為達到更好的顯示效果就會使用替換字體(顯示中文時使用指定的中文字體,遇到英文時就使用另一款英文字體替換)。這也可以解決中文字體丟字符的問題(有時要顯示的字符沒有包含在這款中文字體里,此時就可以用包含這些字符的字體來替換)例如常用的Tahoma替換Simsun。

方正圓體的英文部分過于緊湊,不好看。我個人覺得Bitstream Vera Sans與其搭配很好(當然你也可以用Windows自帶的Arial)。

1. 編輯/etc/fonts/fonts.conf,把Bitstream Vera Sans (Arial)加在FZYuanTi前,類似

<alias> <family>Bitstream Vera Sans</family> <family>FZYuanTi</family> <family>Bitstream Vera Serif</family> <family>Times</family> <family>Times New Roman</family> <family>Nimbus Roman No9 L</family> <family>Luxi Serif</family> <family>Kochi Mincho</family> <family>AR PL SungtiL GB</family> <family>AR PL Mingti2L Big5</family> <family>Baekmuk Batang</family> <default><family>serif</family></default> </alias>

2. 編輯/etc/gtk-2.0/gtkrc(這一步是為在KDE下GTK2的程序設置字體。如果你用的是gnome就不用修改,否則字體設置會不起作用)。加入

style "user-font" { font_name="Bitstream Vera Sans,FZYuanTi 12" } widget_class "*" style "user-font"

3. 運行qtconfig,選擇Fonts選項卡,在Font Substitution里選擇Bitstream Vera SansFamily,然后在下面的Substitution Family里把FZYuanTi加入,保存退出。

4. 在字體設置里選擇Bitstream Vera Sans。

進一步美化字體

替換字符

到以上為止,使用了替換字體后,顯示效果應該已經可以算不錯了。如果你覺得不夠滿意,不想用那么多字體的話,可以直接修改字體,用一款英文字體替換掉中文字體里的相同部分。

還以上面的方正圓體Bitstream Vera Sans為例。用Bitstream Vera Sans替換掉與方正圓體里相同的字符,如果圓體里沒有某個字符的話就直接用Bitstream Vera Sans補足(如果你覺得Bitstream Vera Sans太粗、字體間距大的話也可以用Windows的Arial甚至是Tahoma)。

注意字體的搭配,斜體配斜體,粗體配粗體。下面以粗斜體為例。

運行fontforge,分別打開/usr/share/fonts/bitstream-vera/VeraBI.ttf(Bitstream Vera Sans的粗斜體)和剛才做好的FZYuanTi_bold_Italic.ttf

Bitstream Vera Sans的窗口中,選擇View--Compacted View,點擊菜單欄的Element--Font Info--Encoding可以看到總共有268個字符,不算多,慢慢來還可以接受。如果太多的話,我勸你還是放棄吧,除非你想鍛煉耐心;

點擊菜單欄的Element--Font Info--Encoded View,把瀏覽方式改回去(生成字體以前一定要改回);

切換到方正圓體Element--Font Info--General選項卡把Em Size改為2048,即與Bitstream Vera Sans一樣(兩款字體的Em Size一定要一樣,否則最后生成的字體會大小不一)。點擊OK后,等待轉換完成;

然后在方正圓體里用鼠標選中與Bitstream Vera Sans重復的字符(可以拖動,多選),右鍵,Clear清除,再用復制、粘貼把Bitstream Vera Sans的字符都貼過來即可(這一點說起來最輕松,但是做起來卻最浪費時間)。有的字符在方正圓體沒有包括,直接貼過來就行了。可以用View--Next Defined Char直接轉到下一個字符,否則找起來很麻煩;

可能是改的字體的問題,別人復制都沒問題,但是在我改的這兩個字體里,直接復制后部分字符會變形,所以使用了合并功能(你做字體的時候如果不能復制粘貼的話,可以試試合并);

方正圓體里與Bitstream Vera Sans重復的字符都清除后,選擇Element--Merge Fonts,在Merge Fonts窗口中選擇Bitstream Vera Sans。完成后,File--Generate Fonts生成字體即可;

合并字體時,只會合并原字體(這里是方正圓體)里沒有包含的字符,而不會覆蓋已有的字符,所以要先清除方正圓體里與Bitstream Vera Sans重復的字符后再合并;

當然你也可以用Bitstream Vera Sans做基礎把方正圓體合并進來,但這時你要修改的字體信息就多了,我不建議這樣做。

此時就不用修改配置文件替換字體了,都使用FZYuanTi就行了。

導入點陣(位圖)字體

有人可能喜歡用Simsun,覺得小字體時中文清晰銳利。那是因為Simsun包含了3個點陣字體。我們把它提取出來。

運行fontforge,在裝入位圖字體對話框中Select All裝入。File--Generate Fonts,在兩個下拉列表里分別選擇No Outline FontBDF即可生成bdf格式的位圖字體。

得到點陣字體后,就可以把他們加入自己想要的字體里。用fontforge打開任一款矢量字體(ttf),File--Import,格式選BDF。導入后File--Generate Fonts,分別選擇True TypeIn TTF生成后就是包含點陣字的ttf。當系統顯示時,如果大小與內嵌的點陣字相同的話會優先使用點陣字體顯示。

另:Windows里除了Simsun以外Mingliu也包含了6個點陣字體,還有gb18030Simsun

Starsuite 7.0soui.ttf里能發現11~21pixel的點陣字。

unisun里包含了6個點陣。其中Simsun的點陣沒有latin1部分,所以在顯示時會使用ttf中的英文,造成效果不好。

但有些字體包含的點陣信息是fontforge讀不出的,各位試試東文宋體就知道了。9~12號格外清晰銳利,無論AA與否。而且fontforge打開后直接生成字體會小好幾M。

在某些方正宋體18030方正黑體18030也含點陣但是一樣讀不出,用gnome-font-viewer就很明顯能看到了,特別是方正黑體。

文筆有限再加上才疏學淺,多有不當之處,還希望大家多多指正。包括錯別字。

作者拾遺

方正細圓+方正準圓是一對比較合適的字體。如果你覺得字體有些發虛模糊的話,可以用方正準圓+方正粗圓搭配。有一點要說一下,圓體在大字體時使用AA會很好看,但是在小字體(例如經常使用的9、10號字)時效果就不怎么好了。我覺得準圓(粗圓)比細圓(準圓)粗的不夠,顯示粗體的時候,只感覺到黑感覺不到粗。

細圓+粗圓、方正黑體+方正大黑東文黑體+東文粗黑、華文宋體+華文中宋搭配也都不錯。

至今沒找到能做宋體粗體的字體,希望能有人給出好建議;如有好的字體搭配建議也盡管共享出來。多謝。

效果截圖

總結

以上是生活随笔為你收集整理的修改TTF字体美化显示效果【原文转自:http://www.linuxfans.org/】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。