Apr
14
LaTeX学习心得之 —— 中文 书签无乱码 及 pdf书签链接 以及正确的tableofcontents
看了一天的lshort,终于对LaTeX的使用有了大致的了解,不过还是有些不够熟悉。
决定写个东西练手,但是写着写着遇到一个难以逾越的问题:
使用\label{ooxx}定义一个标签(或者叫做书签?),然后用\ref{ooxx}引用的时候,就出现两个问号"??"
网上的说法是,需要一个gbk2uni.exe把编码转换一下
因为很多人是在win下面编写的TeX文档,默认是GBK编码,而生成书签的需要用UTF-8编码才能被识别
可是我是在Ubuntu Linux下面的,默认的文本编码就是UTF8,没有必要转换了阿
网上查到有人用了hyperref包,但是加上下面这一句之后仍然是俩问号
又因为一直是直接用pdflatex b.tex编译的文档,以为是需要按照正常的方式,于是
可是在第一步提示
生成的pdf文件中仍然是不能正常显示,非常囧。
折腾了好久,网上一直没找到解释,却在无意中发现了解决方案:
如果我先用latex编译一次b.tex以后,然后再用pdflatex,就能够解决问题!
然后又突然就明白过来了,运行latex b.tex两次,第二次就没有那个warning了!
Orz... 怎么工作得像MASM似的,先扫一遍找Symbol,然后才生成目标代码。。。
如果要生成的pdf中,书签作为超级链接存在,则要加入前面的那个hyperref的package
注意里面的第一个参数dvipdfm(也可以是ps2pdf,这取决于最后你用什么命令生成pdf)
然后
然后生成的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诡异了。
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
决定写个东西练手,但是写着写着遇到一个难以逾越的问题:
使用\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 宏包通常要求放在导言区的最后!!!
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
$ dvips b.div
$ ps2pdf b.ps
可是在第一步提示
引用
LaTeX Warning: Reference `def' on page 1 undefined on input line 31.
LaTeX Warning: There were undefined references.
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
$ 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诡异了。
欢迎扫码关注:
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
我郁闷了半天就是不出中文,原来这么扯淡的解决啊。。
居然google到这里了。。
那个解决方案确实诡异。谢谢了。