Shihui Guo

CJK+GBK+Hyperref+pdflatex 目录/书签乱码解决办法

由于环境配置限制的比较死,就是CJK包下,用的是GBK的编码,还需要要hyperref来做超链接,用的是pdflatex编译,尝试了若干种办法之后,发现下面的方法适合我的问题,故分享之。看网上的其他的一些配置环境,可以有更简单的方法,例如用xelatex,CJKutf8等等,对于我这种懒人,就先继续在这个环境下工作吧。

方法的核心就是用gbk2uni这个小工具把.out目录文件由gbk转换为unicode,然后再重新生成目录,步骤如下:

- pdflatex source.tex, 生成source.out
- ./gbk2uni -l source.out, -l选项可以避免转换后的.out被覆盖,否则的话还是会有乱码。
- pdflatex source.tex, 重新生成文档

gbk2uni没有现成的程序,需要从ctex网站下载源代码,然后自己编译,其实就是两个文件,我在这里也给出copy,为我自己以后留个备份:
gbk2uni.c
gbk2uni.h

编译:

g++ -o gbk2uni gbk2uni.c

Hyperref的包里最好加上CJKbookmark选项

\useackage[CJKbookmarks=true]{hyperref}

点击查看评论