網路城邦
上一篇 回創作列表 下一篇   字體:
CJK中文的安裝(二)字體的安裝說明
2013/06/15 01:39:53瀏覽1462|回應1|推薦3
接前文,中文ttf轉好後形成數百個檔案,主要是.tfm, .afm, .pfb, .enc。

轉好後先製作aming.map檔。這個檔是提供給dvipdfm(x),dvips, pdftex等程式使用的字體的位置,它們會根據TeX編譯好的dvi檔內的資訊,把指定的自體載入輸出成pdf或ps等可以在電腦螢薡觀看或印表機可以打印的檔案。

在aming目錄下,用終端機指令進入這個目錄,執行:

for i in *.tfm

do

cat>> aming.map<< EOF

${i%.tfm} ${i%.tfm} < ${i%.tfm}.pfb

EOF

done

這指令可建立一個aming.map檔案,內容是每個 aming*.tfm和相對aming*.pfb的對印表。

然後建立一個檔案名稱為c70aming.fd的純文字檔,內容:

\def\fileversion{4.8.3}

\def\filedate{2012/05/07}

\ProvidesFile{c70aming.fd}[\filedate\space\fileversion]

\DeclareFontFamily{C70}{aming}{\hyphenchar \font\m@ne}

\DeclareFontShape{C70}{aming}{m}{n}{<-> CJK * aming}{\CJKnormal}

\DeclareFontShape{C70}{aming}{bx}{n}{<-> CJKb * aming}{\CJKbold}

\endinput

這裡面定義明體(aming) 的通常字體,和粗體,這裡面是同樣的字體,如果其他的字體有安裝好,例如楷體(akai), 可以在這裡設定其為粗體,其中的內容可以就改成:

\DeclareFontShape{C70}{aming}{bx}{n}{<-> CJKb * akai}{\CJKbold}

那麼就可以在tex文件中指定自型為粗體時,就會把楷體排入。C70指的是字碼編碼為unicode。

然後就把字型搬到CJK套件所指定的目錄中。照其說明文件,把*.tfm搬到

~/library/texmf/fonts/tfm/CJK/aming 中,沒有的目錄就自已建立好目錄。在終端機環境下執行

mv *.tfm ~/library/texmf/fonts/tfm/CJK/aming

同樣的 *.pfb搬到

mv *.pfb ~/library/texmf/fonts/type1/CJK/aming

把aming.map搬到

mv aming.map ~/library/texmf/fonts/map/dvips/

把c70aming.fd搬到

mv c70aming.fd ~/library/texmf/tex/latex/CJK/UTF8


這些都完成之後,在終端機環境下執行:

sudo texhash

sudo updmap-sys --enable Map aming.map


這樣一來,中文CJK字體就算裝好了。dvipdfm(x)也運作正常。但是,TeXShop下,中文編排還有點問題,原之是它使用pdftex命令來執行排板工作,這個命令所找的map檔並沒有載入到pdftex.map內容中,所以這點自已搞定,用文字編輯器打之前所制作的aming.map內容全部複制後貼入到pdftex.map中就可以了。pdftex.map位置在

~/library/texlive/2012/texmf-var/fonts/map/pdftex/updmap/pdftex.map


這些都做完了後,TeXShop也可以順利運作了。可以在應用程式目錄中,執行TeXShop,在其偏好設定中,設定其文件格式是以unicode編碼儲存(utf8)。然後在TeXShop編輯軟體中,打入:

\documentclass[12pt]{article}

\usepackage{CJK}

\begin{document}

\begin{CJK}{UTF8}{aming}

This is a test. What a different day!\\

這是中文測試。

\end{CJK}

\end{document}

存檔後,按下視窗左上角的Typeset鍵,它就可以順利的編排完成,並且輸出成pdf檔,並且馬上打開這個pdf來看其結果。


之前轉檔時,還剩下*.afm和*.enc以及arplmingu20lt.ttf怎麼辦?

*.afm 可以放到 ~/library/texmf/fonts/afm/CJK/aming

*.enc的用途是給pdftex直接使用ttf的用途,但是,這樣子可能有問題,因為有時候直接取用ttf檔的作法會非常的慢。而使用type1的pfb就沒這個問題。而dvips則無法使用ttf如果要使用ttf,則可以這樣做:

dvipdfm(x)使用ttf

把arplmingu20lt.ttf 放到 ~/library/texmf/fonts/truetype/

在 ~/library/texmf/fonts/dvipdfm/cid-x.map 的內容加上一行:

aming @Unicode@ unicode arplmingu20lt.ttf


而pdftex則是要製作aming-enc.map,這個名稱是要和type1字做出區分。在轉檔轉好後,可以執行:

for i in *.tfm

do

cat>> aming-enc.map << EOF

${i%.tfm} < ${i%.tfm}.enc < arplmingu20lt.ttf

EOF

done


把map放到 ~/library/texmf/fonts/pdftex/CJK/aming-enc.map

把enc放到 ~/library/texmf/fonts/enc/CJK/aming/*.enc


使用方法:在.tex文件上面加入二行:

\pdfoutput=1

\pdfmapfile{=aming-enc.map}

\usedocumentclass{article} ...


因為使用ttf可不能保證其運作速度,所以不建議使用ttf。



文鼎公司提供的這個字型有二萬多字,也包含了簡體中文,所以繁體中文,簡體中文都可以用這個字體搞定。
( 興趣嗜好電腦3C )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=paraquat&aid=7761714

 回應文章

paraquat
等級:7
留言加入好友
2014/10/14 13:24

將aming.map的內容寫入psfont.map後,MetaPost就可使用CJK的aming字體。位置在TeX能找到該檔案的位置。例如在
/usr/local/texlive/2012/texmf-var/fonts/map/dvips/updmap/psfont.map
或是放在
~/library/texlive/2012/texmf-var/fonts/map/dvips/updmap/psfont.map 

或是以前的常用的~/library/texmf裡面相對應的位置中。