在latex中使用中文问题多多,前一篇博文 http://blog.csdn.net/yanxiangtianji/article/details/17539571 讨论了怎么安装中文环境。
为了便于浏览,我们经常加入带有链接功能的书签(bookmark)或者叫目录树、索引,latex中最方便的是使用hyperref宏包,只要导入了它,它就会自动为各种交叉索引加入链接。
但是配置不当的时候加入了它可能无法编译,或者可以编译出正常的pdf正文部分但是书签部分全是乱码。
出现问题的地方主要有2点:
1,utf-8与ansi/gbk的问题。
这里需要保持“文件保存格式”与“文件中命令(包名、参数)形式”的一致。
为了避免不必要的麻烦,建议把文件保存为utf8格式(windows下默认会保存为ansi格式,并采用GBK编码)并使用相关指令,一般可以在编辑工具的选项里面设置。否则需要借助网上盛传的gbk2uni工具,它其实就是做了一个把中间文件(*.out)从ansi/gbk到utf-8转码的功能。
ansi/gbk配套包名、命令:\usepackage{CJK} 及 \begin{cJK}{GBK}{字体}
utf-8配套包名、命令:\usepackage{CJKutf8} 及 \begin{cJK}{UTF8}{字体}
2,hyperref包的选项。
如果文件采用了utf-8编码保存,那么千千万万不要在hyperref包的选项里面写入CJKbookmarks,这会导致乱码。而应该使用unicode选项。
一个简单问题:如果采用pdflatex编译,选项中应该写pdftex;而如果采用类似latex->dvi2ps->ps2pdf这样的一条编译链的话就应该使用选项dvipdfm。
其他说明:
如果修改了目录结构,pdflatex命令需要执行2到3遍(前面的几遍用于更新中间文件(.toc等),最后一遍用于将中间文件和.tex文件整合),否则得到的pdf文件的在目录等某些地方没有更新。如果只是修改了正文,那执行一遍就可以了。
这是一个我在使用的没有问题的导言区例子:
\documentclass[fleqn]{article} %align all the equations to the left
\usepackage{geometry}
\geometry{left=3.18cm,right=3.18cm,top=2.54cm,bottom=2.54cm} %word中默认的A4纸边距
\usepackage{CJKutf8}
%\usepackage{CJK}
\usepackage[cmex10]{amsmath}
%\usepackage[CJKbookmarks,pdftex]{hyperref} %dvipdfm
\usepackage[unicode,pdftex]{hyperref} %dvipdfm
\begin{document}
\begin{CJK}{UTF8}{gbsn} %文件保存为utf8格式时需要,宋体
%\begin{CJK}{GBK}{gbsn} %文件保存为ansi格式时需要,宋体
......
\end{CJK}
再附一个hyperref各种选项的官方简要说明:
http://mirror.math.ku.edu/tex-archive/macros/latex/contrib/hyperref/doc/options.pdf
为了方便网络条件不是很好的朋友,提供csdn下载站的一个副本:
http://download.csdn.net/detail/yanxiangtianji/6799105
原载于http://blog.csdn.net/yanxiangtianji
转载请注明出处