latex中用hyperref和CJK生成中文书签

在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

转载请注明出处



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值