要apt-get的包有这么几个:
tetex-bin:会自动的把需要的tetex的base,tex=common装上。tex的基本系统就算是安装好了。
latex-cjk-chinese :cjk-latex这个包已经被latex-cjk-XXX之类的包取代了,由于我们只要中文所以只要这一个就可以了。在cjk-4.7中,已经自动支持utf8的中文标签,从此我们可以告别ccmap宏包了,但是dapper可能没有更新到这个,feisty是可以的,我在用的就是这个。如果是edgy的,可能需要用feisty的源升级这个包。
dvipdfmx可选:这是修改过的dvipdfm,可以支持cjk。是dvipdfm-cjk之后的版本。以前,只有用这个生成的pdf才是支持复制粘贴的,所以虽然生成pdf的程序麻烦些,但一般大家都会用这个来生成。但是现在,在cjk4.7中,pdflatex已经自动支持中文标签和中文的复制粘贴,所以就是不用它,也是可以的。
latex-cjk-chinese-arphic-gbsn00lp:我搜了下,发现这个包也是个虚拟的包,其实真正起作用的是tfm-arphic-gbsn00lp。(补充,后来发现好像这个也不是Type1字体,Type1字体是pfb,也许只要ttf-arphic-gbsn00lp,对pdflatex来说就好了吧)
有了这几个包,已经可以生成中文的pdf了,只是字体只有一种就是gbsn。
下面是测试用的代码。
把上面的文字复制到一个文件(ts.tex)中去。保存编码为utf8% in UTF-8 encoding
% utf8bks3: test CJK pdf outline.
% Edward G.J. Lee 2006.02.21
\documentclass[12pt,a4paper]{article}
\usepackage{CJKutf8}%如果要使用中文标签,必须使用这个宏包取代CJK宏包。这个包也是CJK的作者写的
\usepackage[T1]{fontenc}%这两行都是生成中文标签必须的。
\usepackage[unicode,dvipdfm]{hyperref}%如果用pdflatex生成,那么把dvipdfm去掉.
\begin{document}
\begin{CJK*}{UTF8}{gbsn}
\author{李果正 Edward G.J. Lee},
\title{中文 PDF outline 测试}}
\date{\today}
\maketitle
\tableofcontents
\section{将进酒}
君不见,黃河之水天上来,奔流到海不复回。
\section{桃花源记}
晋太元中,武陵人,捕鱼为业,缘溪行,忘路之远近。
\newpage%要编译不出错,在最后必须有这一行。这也是生成中文标签必须的,但不会对最后的pdf有影响。
\end{CJK*}
\end{document}
代码: 全选
pdflatex ts.tex
pdflatex ts.tex
这样,我们的第一篇pdf已经生成了。
下面讲字体的生成。
安装附件中的tex-cjkfonts的deb包。使用方法和怎样修正在论坛搜我的帖子tex-cjkfonts,上面写的很详细了。
将生成的字体deb包用dpkg安装上,使用你自己生成的字体的名字。
这样的手续我觉得应该是比较简单的,不需要太多的转码,字体设置。没有脱离debian的包管理系统。
补充:pdflatex和dvipdfmx两种方法生成的pdf的特点:
pdflatex和dvipdfmx都能直接利用ttf。
不过我查看了用pdflatex生成的中文pdf,发现也是内嵌的Type1的字体。不知道要怎样才能生成不内嵌字体的pdf呢?
但是我们知道,Type1是3次曲线,ttf是2次曲线,当然Type1字体的效果要好些,只不过我们的Type1字体都是由TTF生成的,所以嘛~呵呵,其实二者就没有太大差别了。
pdflatex不能利用eps的图像.dvipdfmx生成dvi可以直接用eps,但是其他的什么bmp阿,jpg阿,pdf阿,都不认。
由于pdflatex的中文标签复制粘贴支持才刚刚加入没多久,所以还是有些小缺陷:hyperref的颜色现实不出来,如果是在evince中,连接颜色都是黑色,和没有定义一样。但在acroread里面,连接的外周方框是正常的指定的颜色。而dvipdfmx生成的则是正常的。
我个人是只使用pdflatex的。但是也不阻止大家用其他。只是要注意hyperref的参数一定要修改哦!
修改一下:pdflatex和dvipdfmx都是可以利用ttf的。我从新看了原始的文档,才发现自己错了。不好意思。
补充:李果正前辈的对字体总结的资料:
2.1 中文 Type1 字型
由於 Type1 字型的規格,只能容納 256 個空間,也就是只能放 256 個字,這在英文語系沒有問題,但中文光 Big-5 就有一萬多字,更不用說是其他更大的編碼字集了。很不幸的,TeX 的字型規格也是如此,只能容納 256 個字。
因此就有許許多多的前輩們想辦法使用 subfont 的觀念,把中文字打散,分裝在不同的 Type1 字型中,由數十個中文 Type1 字型組成一個完整的中文字型,經由 NFSS(New Font Selection Scheme) 的選字機制,來組合數十個分散的 Type1 字型成為一整個的中文字集,再透過字型定義檔 *.fd 來取用字型。
2.2 中文 CID-Keyed 字型
由於 Type1 字型實在是不太適合用於中文,於是 Adobe 公司,另外研發了 CID-Keyed font 字型規格,把字型的實體資料集中在一個檔案內,再另外使用索引、對應的方式來取用所需要的字型,這樣就不會受限於 256 個字的限制了。他仍然是和 Type1/TTF 一樣是向量字,因此用來製作 PDF 檔,在顯示上不會如 pk 點陣字型那麼醜。
除了字數不受限的好處外,CID-Keyed font 的精妙處,就在於「索引、對應」,由於用索引的方式取字,因此,我們一般文字處理上要用到的 cut&paste&search 就可以很容易的達成。這在使用 subfont 方式的中文 Type1 及 pk 字型就沒有這個好處。而且,由於可以索引、對應,也代表著,實體字型資料不必一定要放在檔案中,可以放在使用者的系統中就行了,就像現在的 HTML 格式一樣,可以不必帶著字型跑。這對 ps/PDF 格式尤其重要,因為這些格式雖然顯示上很精緻,但如果嵌入字型的話檔案大了些,在網路傳輸上不很方便。
對 TeX/LaTeX 系統而言,這個好處並不會帶來嚴重的缺失,因為視使用場合,也是可以把部份,甚至全部的字型給嵌入檔案中的,不像 HTML 格式,目前要內嵌字型的話,標準還不統一,IE 可以做到,但其他 web browser 就無法閱覽了。像這篇文章的 PDF 格式中,標題的顏楷體就是嵌入王漢宗博士捐贈的 TTF(CID TruType),仍然可以 cut&paste&search。
如果各位對這些字型檔規格有興趣,可以到 Adobe 公司去下載 spec 規格檔來研究,這些規格都是公開的格式。
2.3 中文 TTF 字型
這是目前使用上相當普及的字型規格,也因此,許多 hacker 們的腦筋都會動到 TTF 上,例如 ttf2pt1 可以將 TTF 轉成 Type1 字型來用,而 DVIPDFM$x$2.2 及較新版的 GhostScript 也可利用 TTF 當成是 CID-Keyed font 來使用。甚至以往的 pk 點陣字,也是由 ttf2pk 來由 TTF 轉出來的。
如果想使用 dvips 來產生 ps 檔,那這裡還要製作中文 Type1 字型。當然,一般使用的話,應該是可以不必製作中文 Type1 了,直接由 dvipdfmx 抓取系統上的 TTF 就可以了,但由於有時要和一些處理 eps 的 packages 配合,例如 PSTrick,所以這裡一併把 Type1 字型製作出來。
給 TeX/LaTeX 處理的話,只需要 *.tfm 檔就可以運作,生成 *.dvi 檔。但要由 dvips, dvipdfmx, pdflatex 處理的話,要有實體的字型才行,因為他們的輸出不是 ps 檔,就是 PDF 檔。
* *.tfm (TeX Font Metric, 字型描述檔)
為二位元檔,TeX 有這個字型描述檔就可以產生 *.dvi 檔,但其中是沒有真正的字型實體資料在裡頭,得由其他的輔助工具來完成。任何型式的字型,要給 TeX 使用前,都一定要先產生這個 tfm 檔,而且 TeX 只要有這個 tfm 檔就可以運作。
* *.afm (Ascii Font Metric)
這也是字型描述檔,但是以純文字的格式存在,要給 LaTeX 使用的話,可以由 afm2tfm 來產生 *.tfm 檔。一般的 Type 1 字型會只附 afm 檔,而沒有 tfm 檔。TTF 的話,可以由 ttf2tfm 來產生。
* *.mf
這是 Knuth 教授設計的 Metafont source,他本身是一種 outline font,但由於顯示/成形(render/raster)較複雜,目前不適合像 Type 1/TTF 一樣 on-the-fly 使用,是另產生 bitmap 形式 *.*gf (generic font) 再由 gftopk 產生 pk 字型來使用的。Metafont 的可執行檔就是 mf,mf 在 font-makeing mode 時可以產生 tfm 檔。MetaPost4.1 也是可以用來製作字型,他的延伸檔名通常是 *.mp,可執行檔則是 mp 或 mpost。
* *.pfa (POSTSCRIPT Font Ascii)
這是 POSTSCRIPT Type 1 字型檔,但是以純文字的格式存在,可由 t1asm 來轉成 binary 格式(即 *.pfb)。
* *.pfb (POSTSCRIPT Font Binary)
和 *.pfa 同,但是以 binary 格式存在。兩種格式目前都可以直接使用。
* *.*pk (packed font)
這是給 dvi viewer/printer/dvips 使用的點陣字,以便真正產生字型嵌入 ps 檔中或供 printer 使用。當然,這個 pk 字,可能是由 Metafont、Type 1 或 TTF 轉成的。
請注意這裡的表示方法,pk 字型是由其解析度來成為檔名的一部份的,例如 600 dpi 的 pk 字型,實際上的檔名是 *.600pk(gf 字型的表示法亦同)。
* *.fd (font description)
這是給 LaTeX 找字型用的字型定義檔。