Metapost畫圖添加中文字體問題

最近一直在弄論文裏面的插圖,並且在實驗室例會上做了一個用Metapost畫圖的經驗報告,結果讓實驗室的某些同學抓住要求幫忙做某個很水的課的beamer答辯插圖,昨天晚上有空準備就地解決,結果卻碰了一鼻子灰,太他媽蛋疼了,和latex對中文的支持一樣,metapost對中文的支持簡直到了無法忍受的地步,所以,一晚上我果斷沒搞定那幾張插圖,整個晚上盡在查資料,幸好今天週末,所以有時間繼續搞定這個問題,不過幸好現在基本搞定了,想想大週末的,我也算是蠻拼的,下面介紹具體的解決方案。

    在網上查了不少資料,看了王垠的主頁,也看了唐老師的學習資料,到此爲止我能解決的問題是編譯能通過了,其實很簡單,就是用label的時候使用命令行指定使用的tex引擎就行了,具體命令如下:

mpost -tex=latex yourfile.mp

編譯通過後能生成eps文件,但是打開發現中文是亂碼,由於我使用的是GSview預覽的,最後發現是GS缺少中文字體的問題,於是我就準備自己安裝中文字體,就在此時,我看到了另一個說法,只需要在安裝CTEX的時候手動設置一下字體就行了,具體的不多說了,直接上圖

wKiom1RUmlijeinYAAC4ZDD0__4472.jpg

    這裏說明一句,如果你的CTEX文件夾沒有圖上這麼多子文件夾,尤其是沒有FontSetup,很可能你安裝的不是full版本,所以在此建議大家直接選擇full版本的ctex,也就1.3G左右,避免後續的很多麻煩,運行FontSetup,就能看到這樣的界面

wKiom1RUmxfDCxY0AAGEEj0uKac394.jpg

然後選擇生成Type1字庫和使用Type1字庫,點擊安裝就可以了,只不過這裏的等待時間稍微有點長,不過沒關係,能解決問題就行了。

    插一段話,介紹的是這兩種字體的區別,Type 1字體是Adobe公司隨着頁面描述語言PostScript一起推出的。頁面描述語言對圖形描述的一大特點是不採用設備像素進行,而是抽取圖形實體描述。因此,這種描述方法經濟而有效,並且和設備無關。PostScript語言把文字也看成爲圖形,可對它施加任何類型的圖形操作,從而能夠產生高質量的、既符合使用要求又豐富多彩的文字輸出。
  PostScript語言的字體結構在LEVEL1時推出2種格式,分別是Type1和Type3。Type3是用戶自定義字體。兩者具有相似的結構,均是一段PS程序。但還是有區別的,Type3字體給出僅僅是一個框架,不包括數據和字體技術;Type1字體包含了一套完整的字體技術,包括字形設計、數據加密等。
  Type1字形設計,1、比劃:在任何Type1字體程序中,字符描述總是核心部分。每個字符形狀都由一系列PS程序語句描述路徑組成。字符主要垂直比劃通常被看做是垂直筆段,主要水平比劃被看做水平筆段,筆段能直能彎。2、寬度方向的尺寸參數:西文字符控制比中文字符更加困難,因爲不像中文字體框框結構,西文每個字符高度和寬度可能都不相同。西文字符寬度方向上參數有字符原點、字符寬度、左邊界和左邊界點。3、高度方向的尺寸參數有基線、基線越界位置、頂高、頂高越界位置、X-高度、X-高度越界位置。
  TrueType字體是繼Adobe Type 1後又一種典型的曲線字體描述方法,是由Apple和Microsoft公司於1991年聯手推出。TrueType字體技術是TrueImage頁面描述語言中的字形描述部分。TrueType字體由於沒有什麼特色,所以並未流行,但TrueType字體是windows系統一級使用的字體,因而開始受到越來越多人的關注。

    好吧,科普類的東西就介紹到這裏吧,接着講正題,直接上代碼吧,我寫了一個test.mp,代碼如下:

prologues:=3;

filenametemplate "%j-%c.eps";

verbatimtex

%&latex

\documentclass{article}

\usepackage{CJK}

\begin{CJK*}{GBK}{kai}

\begin{document}

etex

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

beginfig(0)

label.lft(btex 我就是要用中文 etex,(0,0));

endfig

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

verbatimtex

\end{CJK*}

\end{document}

etex

end

    命令行運行mpost -tex=latex test.mp,於是我就得到了一個test-0.eps,用GSView打開是這樣的

wKioL1RUnWrSNkJaAADZ6cb3I0U421.jpg

    然後我選擇用acrobat X pro把它轉成PDF,方便查看,結果類似

wKiom1RUnZaQN1koAAHgqrwTAqk122.jpg

    好啦,就寫到這裏吧,我把代碼傳個附件吧,方便大家查看,也方便自己以後翻出來看,各位看官,再見,我吃飯去啦!

    尼瑪不上上傳mp文件,只好打包了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章