返回列表 回复 发帖

[系统] 比较Texlive 2007 中 Xetex和CJKutf8处理中文的差异

今天装了 Texlive 2007 尝鲜,试了一下XeteX,感觉不错。
和CJKutf8做了一下比较,效果相差不大,tex文件有些细微差别

                                 CJKutf8               XeTeX
中文bookmark             OK                      OK
中文文档属性                OK                      OK
中文Copy                     OK                      OK (Adobe Reader OK ,但是 KPDF  0.5.5不能Copy)
中文字体                 Type1,专门制作          直接使用系统字体

相对来说,Xetex中文字体选用更简单一些,

我用的是 Kubuntu 6.10

Xetex 测试文档,用xelatex编译 ,PDF
  1. \documentclass[12pt,a4paper]{article}
  2. \usepackage{hyperref}%不能有unicode选项,否则bookmark会是乱码

  3. \usepackage{fontspec}
  4. \setromanfont{Adobe Song Std}%字体来自Adobe Reader 8.0 OpenType,可以选用任何系统已有的字体
  5. %中文断行
  6. \XeTeXlinebreaklocale "zh"
  7. \XeTeXlinebreakskip = 0pt plus 1pt

  8. \hypersetup{pdfauthor={作者  李白 author},
  9.               pdftitle={将进酒}}     %注意,在document之外的导言区

  10. \begin{document}
  11.   \tableofcontents

  12.   \section{高堂明镜悲白发}

  13.   君不见,高堂明镜悲白发,朝如青丝暮成雪。

  14.    \section{高堂明镜悲白发}

  15.   君不见,高堂明镜悲白发,朝如青丝暮成雪。

  16. \end{document}
复制代码
CjkUTF8 测试文档,用pdflatex编译
  1. \documentclass[12pt,a4paper]{article}
  2. \usepackage{CJKutf8}
  3. \usepackage[unicode]{hyperref}    %没有unicode选项,文档属性中的中文会是乱码
  4. \begin{document}
  5. \begin{CJK}{UTF8}{gbsn}
  6. \tableofcontents

  7. \hypersetup{pdfauthor={作者  李白 author},
  8.               pdftitle={将进酒}}     %注意,在document之内的正文区

  9.   \section{高堂明镜悲白发}

  10.   君不见,高堂明镜悲白发,朝如青丝暮成雪。

  11.    \section{高堂明镜悲白发}

  12.   君不见,高堂明镜悲白发,朝如青丝暮成雪。
  13.                  
  14. \newpage
  15. \end{CJK}
  16. \end{document}
复制代码
[ 本帖最后由 meterten 于 2007-3-29 11:38 编辑 ]
1

评分次数

  • Neals

生成的文件大小?
中文标点的处理呢?
原帖由 PaladinHL 于 2007-3-29 16:42 发表
生成的文件大小?
中文标点的处理呢?
字数多的时候Xetex生成的文件小,实际上它只嵌入了一种字体。而CJK 嵌入了一系列字体

Xetex不会对中文标点做特殊处理,所以破折号可能会在结尾的地方出现。

XeteX 的地位等价于 tex,但支持Unicode,属于引擎级别的

CJKutf8是tex的一个宏包,是为了让tex支持Unicode不得已而为之的Crack。

只是,CJK在处理字体的同时,又针对中文做了一些排版上的优化(例如,标点),
这些特殊的优化,不是Xetex的工作,需要另外的宏包来支持。

总的来说,Xetex 能够内在的支持Unicode,从根本解决中文tex的问题,是很有前途的。
CjkUTF8 测试文档,发现在ctex2.4.5-8下编译不了,即使用UE转换成utf8编码

! Argument of \CJK@XX has an extra }.
<inserted text>
                \par
l.9               pdftitle={将进酒}}
                                          %注意,在document之内的正文区
无论是用asc还是utf8编码来保存,ctex 2.4.5-8都不能编译,测试了一下texlive2007,发现utf8编码的正常编译,呵呵,

运行环境 winxp en sp2, 使用的是如下的texlive版本
ftp://202.118.224.241/software/S ... rretl-nodoc.iso.zip
xelatex 在\usepackage{fontspec} 后,原来 tex 中的 “-”、"--"、"---"等连字符指令都失去意义了。
原帖由 lyanry 于 2007-6-27 16:05 发表
xelatex 在\usepackage{fontspec} 后,原来 tex 中的 “-”、"--"、"---"等连字符指令都失去意义了。
该问题已解决,见 http://bbs.ctex.org/viewthread.php?tid=39657&extra=page%3D1
>中文字体                 Type1,专门制作          直接使用系统字体
CJK可以直接使用ttf字体的
>Xetex 测试文档,用xelatex编译 ,PDF
目前XeTeX使用起来还比较麻烦,比如符合中文排版习惯,中英文混排等.
>CJKutf8是tex的一个宏包,是为了让tex支持Unicode不得已而为之的Crack。
macro级别的算不上crack. UTF-8的CJK区文字用Knuth的3.x版本的tex处理是没有问题的.
>字数多的时候Xetex生成的文件小,实际上它只嵌入了一种字体。而CJK 嵌入了一系列字体
CJK的话你用dvipdfmx可以嵌入一个字体.
Xelatex 生成的PDF体积确实是比CJK的小很多。

但是Xelatex总是在相邻汉字之间产生难看的空白。对汉字间距处理不好。
>Xelatex 生成的PDF体积确实是比CJK的小很多。
不会
>但是Xelatex总是在相邻汉字之间产生难看的空白。对汉字间距处理不好。
不会
返回列表