书签乱码
众所周知,LaTeX是一种基于ΤΕΧ的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在20世纪80年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由TeX所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。
一般LaTeX的工具套件主要以CTeX和TexLive为主,听说CTeX比较好用(忘了听谁说的,好像是一个科研大牛说的:)),于是下载了CTeX,将近3GB,经过十分钟左右的安装,终于安装完毕,写个测试脚本,内容如下:
\documentclass[a4paper,onecolumn]{ctexart}
\usepackage{latexsym,afterpage,amssymb,amsmath,amsthm,amsbsy,amsopn,amstext,amsxtra,amscd,color,multicol}% 常用宏包
\usepackage{bm,calc,lastpage,listings,indentfirst,ifpdf,CJK,CJKnumb,fancybox,fancyhdr,float,subfigure,times,longtable}
\usepackage{everypage,lastpage}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{url}
\setcounter{secnumdepth}{4}
\pagestyle{plain}
\hypersetup{CJKbookmarks=true}
\title{标题标题}
\author{pangpang}
\begin{document}%
\begin{CJK*}{GBK}{song}
\begin{abstract}%
\noindent \textbf{摘要}
\noindent{\bf 关键字}\\
\end{abstract}
\section{第一章}
第1章hellohello,你好。
\section{第二章}
第2章hellohello,你好。
\section{第三章}
第3章hellohello,你好。
\section{第四章}
第4章hellohello,你好。
\section{第五章}
第5章hellohello,你好。
\section{第六章}
第6章hellohello,你好。
\section{第七章}
第7章hellohello,你好。
\bibliographystyle{plain}
\end{CJK*}
\end{document}
选择"PDFTexify"
编译,运行,生成pdf。一切都很顺利。但是美中不足,生成的pdf标签竟然乱码!!简直无可忍受。
解决方案一:编译工具改为“PDFLaTeX”,问题解决
关于TeX几个重要名词的解释:
TeX:一种宏语言。
Plain Tex: Tex中的一个最基本的宏集合与TeX的基础语言构成的一种格式。
LaTex : Tex中的一个宏集合,构成一种与 Plain TeX 不一样的格式。
Tex程序 :把Tex语言转换为排版的程序,也叫Tex。为区别,称这个 TeX 程序叫Knuth TeX。
tex命令 :Tex程序中的编译命令。tex命令默认用Plain TeX格式进行排版。也就是说tex命令后面默认跟的
tex文件应该是用Plain Tex格式写的。
latex命令:tex命令加上某一个选项使用,就会用LaTeX 格式进行排版,也就是说此时后面跟的tex文件应该是用LaTex格式写的。为方便,就把tex 命令与对应编译选项合成为一个命令,叫latex命令。
ε-TeX 程序:Knuth TeX程序的一个扩展,也是一个程序,一般写成 eTeX。增加了少量的几个命令,但一般来说是与Knuth TeX程序没有太多区别的。
实现:在文中的意思就是指“程序”的意思。如文中:eTeX 程序和 Knuth TeX 都是TeX语言的一个实现(也就是说,eTeX 程序和 Knuth TeX 都是把TeX语言转换为排版的程序。程序作用于tex文本文件,把tex文件编译成dvi文件)。
pdfTeX程序:Tex语言的又一个实现,也就是把Tex语言转换为排版的又一个程序。它会把 TeX 语言写的代码直接编译成 PDF 文件。
pdftex命令:pdfTex程序中的命令,用来编译用Plain TeX格式写的tex文件。
pdflatex命令:pdfTex程序中的命令,用来编译用LaTeX格式写的tex文件。
XeTeX程序 :TeX语言的新的实现,即把Tex语言转换为排版的一个新程序。支持Unicode 编码和直接访问操作系统字体。
xetex命令 :XeTeX程序中的命令,用来编译用Plain TeX格式写的tex文件。
xelatex命令:XeTeX程序中的命令,用来编译用LaTeX格式写的tex文件。
pdftexify :是一个winedt自己写的脚本
TeX 是一种排版语言。LaTeX 是在 TeX 基础上的一种格式。CTeX 是关于 TeX 的一个完整的具体软件包,
而ctex不过是基于miktex的一种发行,它里面可以使用tex,latex,amstex或者其他的语法,并且加入了cct中文处理,是这些东西的一个集成,简单的说是一个工具软件。
latex的软件叫miktex
4,简单澄清TeX、LaTeX、TeX Live、TeX Studio这几个概念:
TeX是一种语言,类似于Java和C之类的计算机语言,但是它是为简单的排版操作设计的;
LaTeX是TeX的扩展,又称为宏集,简单说就是TeX的命令太原始了,为了方便作者写作,Leslie Lamport给TeX语言加入了很多新的功能,这些他写的功能跟TeX加在一起被称为LaTeX。LaTeX当然也是一门语言,是基于TeX的一门语言;
TeX Live是一个TeX发行版,它是一组程序的集合,主要作用就是将你写的TeX代码进行解析排版输出成PS或者pdf。“TeX发行版相对于TeX语言”大致可以理解为“C语言编译器(如GCC或Clang)相对于C语言”的关系;
部分编译日志如下:
。。。
gbk2uni, version 0.22, initially implemented by cxterm and ZLB in Jan. 2003
enhanced by hooklee in Mar. 2003.
please visit www.ctex.org and www.chinatex.org for more information.
gbk2uni test.out is finished!
以上的解决方案是因为CTeX套件自带了“gbk2uni.exe”这个工具(位于CTeX安装目录\CTeX\cct\bin\下面),所以实现起来比较简单。要是工具集没有自带gbk2uni.exe这个工具怎么办呢?下面请看方案二。
解决方案二:配置gbk2uni.exe。
为了演示本方案的有效性,我们把CTeX自带的gbk2uni.exe重命名一下,让系统无法找到该可执行文件。
Step1:下载gbk2uni.exe,光速传送门,压缩包内容如下:
将该压缩包,下载解压到任意目录,比如“E:\1_Program_File\CTeX\gbk2uni”
Step2:将该文件夹的绝对路径配置到系统环境的“PATH”变量,如果不清楚,请自行百度,不在本文的讨论范围。
Step3:配置。
3.1打开WinEdt -》Options-》Options Interface..
3.2配置MainMenu.ini
双击左边Options Interface-》Menus and Toolbar-》Main Menu
CTRL+F搜索:MENU="TeX_Menu"。在第一个ITEM前面添加如下红色内容:
MENU="TeX_Menu"
CAPTION="Te&X"
CONFIG_FILTER="Default;MiKTeX;TeX Live"
ITEM="-"
ITEM="GBK2UNICODE"
CAPTION="gbk2uni"
IMAGE="Notepad"
SAVE_INPUT=1
MACRO=:Run('gbk2uni.bat %P\%N');
REQ_FILTER="%P\%N.out"
ITEM="TeXify"
3.2配置Toolbar.ini
搜索字符串:BUTTON="ps2pdf",改动如下(红色内容):
BUTTON="ps2pdf"
BUTTON="|"
BUTTON="GBK2UNICODE"
Step4:保存以上两个文件,并且更新配置
此时,如果不出意外,将出现以下图标(编辑*.tex文件才能点击):
Step5:先点击"PDFLaTeX"编译一次,生成*.out文件,然后点击上一步出现的菜单栏图标
出现报错:
E:\1_Doc\CTEX\test 2>gbk2uni E:\1_Doc\CTEX\test.out
gbk2uni, version 0.22, initially implemented by cxterm and ZLB in Jan. 2003
enhanced by hooklee in Mar. 2003.
please visit www.ctex.org and www.chinatex.org for more information.
Cannot open e:\1_doc\ctex\test.out to read!
test.tex所在的文件路径中空格去掉,再次尝试。处理成功:
E:\1_Doc\CTEX\test2>gbk2uni E:\1_Doc\CTEX\test2\test.out
gbk2uni, version 0.22, initially implemented by cxterm and ZLB in Jan. 2003
enhanced by hooklee in Mar. 2003.
please visit www.ctex.org and www.chinatex.org for more information.
gbk2uni e:\1_doc\ctex\test2\test.out is finished!
E:\1_Doc\CTEX\test2>pause
再次点击"PDFLaTeX"编译,查看pdf,可以发现,书签正常
如果无法显示书签,请点击SumatraPDF的View-》 Bookmarks