系统环境

Debian stable
en_US.UTF8

错误再现和分析

在此环境下,编辑一个 tex 输入文件,使用中文 CJK 宏包,并选用 GBK/GB 字符集。

\documentclass[a4paper,12pt]{article}
\usepackage{CJK}
\begin{document}
\begin{CJK*}{GB}{gbsn}
  你好!
\end{CJK*}
\end{document}

然后保存退出,用 pdflatex GB_sample.tex 一下,会发现系统报错,说什么“未定义的字体”之类(当然原文是英文的)。

 

出现这一错误的原因是,系统环境是 en_US.UTF8,因此编辑文件时所用的字符都默认为 UTF-8 字符集
中的文字,而不是 GBK 字符。因此用 pdflatex 想要得到正确的 pdf 文件是不可能的!

解决之道

知道了产生错误的原因,就可以很容易地解决它了。一共有两种方法可以解决这个问题。

方法1

把文件中的字符从 UTF-8 转换成 gb2312 就可以了。使用的工具是 iconv,这个工具大多数 Linux 发行版都有的。
iconv -f utf8 -t gb2312 GB_sample.tex > test.tex
pdflatex test.tex
这样就能得到正确的 pdf 文件

方法2

直接使用 CJKutf8 宏包。由于我的环境是 en_US.UTF8 的环境,所以用 CJKutf8 是最适合我的。这样就免去了再进行编码转化的麻烦。
而且如果你的 latex 中需要出现一点繁体的话,用这个宏包就再好不过了。

范例:

\documentclass[a4paper,12pt]{article}
\usepackage{CJKutf8}
\begin{document}
\begin{CJK*}{UTF8}{gbsn}
  你好!
\CJKfamily{bsmi}
  中國!
\end{CJK*}
\end{document}


然后保存为 UTF8_sample.tex,再用 pdflatex UTF8_sample.tex 就可以得到正确的 pdf 文件了。
而且 pdf 文件中,还能看到繁体中文。

在默认安装 latex-cjk 的情况下,latex 中只有四个免费的中文字体可以用,分别是
gbsn(简体宋)、gkai(简体楷)、bsmi(繁体宋)、bkai(繁体楷)
如果想得到黑体输出之类的话,就要自己添加字体了。

作者: 觉知的机器 发表于 2011-07-16 09:03 原文链接

推荐.NET配套的通用数据层ORM框架:CYQ.Data 通用数据层框架
新浪微博粉丝精灵,刷粉丝、刷评论、刷转发、企业商家微博营销必备工具"