当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 18 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : [教学]tetex+utf8编码+字体deb包生成+中文标签+可复制粘贴.(01/06/2006)
帖子发表于 : 2007-01-06 14:59 

注册: 2006-01-18 15:01
帖子: 1074
送出感谢: 0 次
接收感谢: 1
刚才有新手又照着置顶的帖子做了,结果会发生错误。主要是置顶的帖子已经有段时日。而且还有点小错误(不过也不算是错误,因为已经没有这个包dvipdfm-cjk了)。在这里总结一下。

要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。
下面是测试用的代码。
引用:
% 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}


把上面的文字复制到一个文件(ts.tex)中去。保存编码为utf8
代码:
pdflatex ts.tex
pdflatex ts.tex

注意,pdflatex要执行两遍。第一遍把生成标签的辅助文件生成好,第二编把标签信息编译进pdf中。
这样,我们的第一篇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 找字型用的字型定義檔。


附件:
tex-cjkfonts_0.3-4_i386.deb [11.29 KiB]
被下载 267 次
页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-01-06 17:48 

注册: 2006-01-10 19:09
帖子: 1334
送出感谢: 0 次
接收感谢: 0 次
收藏了


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2007-01-06 18:08 
头像

注册: 2005-11-17 15:45
帖子: 2996
地址: 湖北
送出感谢: 0 次
接收感谢: 1
赞!


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-01-06 18:50 
头像

注册: 2006-07-08 14:07
帖子: 1771
送出感谢: 14
接收感谢: 1
靠,6.06的为什么 就是这么慢


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2007-01-06 20:24 

注册: 2006-09-10 11:01
帖子: 29
送出感谢: 0 次
接收感谢: 0 次
谢谢xiechy


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2007-02-02 0:49 

注册: 2006-06-05 14:39
帖子: 6
送出感谢: 0 次
接收感谢: 0 次
详细,收藏


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2007-02-03 15:04 

注册: 2006-12-06 19:47
帖子: 29
送出感谢: 0 次
接收感谢: 0 次
我根据贴子操作了,把我的sources.list源改为feisty后,仍然没有找到cjk-4.7。不知楼主是怎么做得。
我是新手,下了cjk-4.7但是不会装。里面的说明太复杂。我希望cjk-4.7能早些出现在我们的源上。

我希望能在ubuntu上早日用latex.


页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2007-02-03 15:42 

注册: 2006-01-18 15:01
帖子: 1074
送出感谢: 0 次
接收感谢: 1
aptitude install latex-cjk-common
编译出来的包不是叫做cjk。被分割成了很多包。


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2007-02-06 19:47 

注册: 2006-06-05 14:39
帖子: 6
送出感谢: 0 次
接收感谢: 0 次
这个包在我的系统下有个小问题。我的系统是 ubuntu 6.10 + tetex 3.0 + cjk 4.5.2 。
我在生成UTF8编码字体时,其中的c70*.fd 有问题。我做了点小修改。
$ sudo vim /usr/share/tex-cjkfonts/scripts/Makefile
把其中的28-32行替换为

@echo "\def\\\fileversion{4.5.1}" >> $(FDFILE)
@echo "\def\\\filedate{`date +%Y/%m/%d`}" >> $(FDFILE)
@echo "\ProvidesFile{$(FDFILE)}[\\\filedate\space\\\fileversion]" >> $(FDFILE)
@echo "" >> $(FDFILE)
@echo "\DeclareFontFamily{C$(EID)}{$(ENCNAME)}{\hyphenchar \\\font\m@ne}" >> $(FDFILE)

你也可以从这里得到 http://www.haikuo.googlepages.com/Makefile
或者直接得到deb包 : http://www.ubuntufans.googlepages.com/t ... 4_i386.deb


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2007-02-18 16:48 

注册: 2006-04-28 20:48
帖子: 17
送出感谢: 0 次
接收感谢: 0 次
引用:
LaTeX2e <2003/12/01>
Babel <v3.8d> and hyphenation patterns for american, french, german, ngerman, b
ahasa, basque, bulgarian, catalan, croatian, czech, danish, dutch, esperanto, e
stonian, finnish, greek, icelandic, irish, italian, latin, magyar, norsk, polis
h, portuges, romanian, russian, serbian, slovak, slovene, spanish, swedish, tur
kish, ukrainian, nohyphenation, pinyin, loaded.
(/usr/share/texmf-tetex/tex/latex/base/article.cls
Document Class: article 2004/02/16 v1.4f Standard LaTeX document class
(/usr/share/texmf-tetex/tex/latex/base/size12.clo))
(/usr/share/texmf/tex/latex/CJK/CJKutf8.sty

! LaTeX Error: File `ifpdf.sty' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)

按照本文做的,到生成pdf的那一步,出现了这些信息。怎么办类?我的是edgy。


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2007-02-21 22:52 

注册: 2006-01-18 15:01
帖子: 1074
送出感谢: 0 次
接收感谢: 1
aptitude install texlive-latex-recommended


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2007-07-20 15:41 

注册: 2007-04-11 19:05
帖子: 83
送出感谢: 0 次
接收感谢: 0 次
支持


页首
 用户资料  
 
13 楼 
 文章标题 :
帖子发表于 : 2007-07-23 22:52 

注册: 2006-09-20 19:56
帖子: 768
送出感谢: 0 次
接收感谢: 1
楼主的测试文档生成pdf时格式变得混乱,生成ps没问题,生成dvi有乱码。
把[T1]这个参数去掉后,一切正常,谁能解释一下。


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2007-07-25 15:49 

注册: 2006-01-23 16:41
帖子: 108
送出感谢: 0 次
接收感谢: 0 次
请教楼主两个问题
1。我用的是ubuntu606,可以先把源换成704,安装latex-cjk-common后,再把源换回来吗?

2。我是用王垠那个程序安装的中文字体,它能用utf8吗?


页首
 用户资料  
 
15 楼 
 文章标题 :
帖子发表于 : 2007-07-25 15:54 

注册: 2006-01-23 16:41
帖子: 108
送出感谢: 0 次
接收感谢: 0 次
请教楼主两个问题
1。我用的是ubuntu606,可以先把源换成704,安装latex-cjk-common后,再把源换回来吗?

2。我是用王垠那个程序安装的中文字体,它能用utf8吗?


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 18 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 5 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译