标题:LaTeX学习心得之 —— 中文 书签无乱码 及 pdf书签链接 以及正确的tableofcontents 出处:Blog of Felix021 时间:Tue, 14 Apr 2009 20:43:04 +0000 作者:felix021 地址:http://www.felix021.com/blog/read.php?1554 内容: 看了一天的lshort,终于对LaTeX的使用有了大致的了解,不过还是有些不够熟悉。 决定写个东西练手,但是写着写着遇到一个难以逾越的问题: 使用\label{ooxx}定义一个标签(或者叫做书签?),然后用\ref{ooxx}引用的时候,就出现两个问号"??" 网上的说法是,需要一个gbk2uni.exe把编码转换一下 因为很多人是在win下面编写的TeX文档,默认是GBK编码,而生成书签的需要用UTF-8编码才能被识别 可是我是在Ubuntu Linux下面的,默认的文本编码就是UTF8,没有必要转换了阿 网上查到有人用了hyperref包,但是加上下面这一句之后仍然是俩问号 引用 \usepackage[dvipdfm, pdfstartview=FitH, CJKbookmarks=true, bookmarksnumbered=true, bookmarksopen=true, colorlinks=true, %注释掉此项则交叉引用为彩色边框(将colorlinks和pdfborder同时注释掉) %pdfborder=001, %注释掉此项则交叉引用为彩色边框 citecolor=magenta,% magenta , cyan linkcolor=blue, linktocpage=true, ]{hyperref} % hyperref 宏包通常要求放在导言区的最后!!! 又因为一直是直接用pdflatex b.tex编译的文档,以为是需要按照正常的方式,于是 引用 $ latex b.tex $ dvips b.div $ ps2pdf b.ps 可是在第一步提示 引用 LaTeX Warning: Reference `def' on page 1 undefined on input line 31. LaTeX Warning: There were undefined references. 生成的pdf文件中仍然是不能正常显示,非常囧。 折腾了好久,网上一直没找到解释,却在无意中发现了解决方案: 如果我先用latex编译一次b.tex以后,然后再用pdflatex,就能够解决问题! 然后又突然就明白过来了,运行latex b.tex两次,第二次就没有那个warning了! Orz... 怎么工作得像MASM似的,先扫一遍找Symbol,然后才生成目标代码。。。 如果要生成的pdf中,书签作为超级链接存在,则要加入前面的那个hyperref的package 注意里面的第一个参数dvipdfm(也可以是ps2pdf,这取决于最后你用什么命令生成pdf) 然后引用 $ latex b.tex $ latex b.tex $ dvipdfm b.dvi 然后生成的b.pdf,就是理想的状态了^_^ 经过测试: 如果是dvipdfm,就必须用dvipdfm来生成pdf; 如果是ps2pdf,就必须用ps2pdf生成; 如果不填写,就必须用pdflatex。 -- 至于另一个很诡异的问题: 如果在\section{}里面给的是中文,那么加入\tableofcontents以后,就会出现如下错误 ! Package inputenc Error: Unicode char \u 8:解 not set up for use with LaTeX. 在 http://www2.informatik.hu-berlin.de/~xu/LaTeX.html 找到了博主在 http://i.thuda.org/ir77/?p=60 找到的诡异解决方法: 在文档的末尾加上\newpage 而且居然有效。 太TMD诡异了。 Generated by Bo-blog 2.1.0