CTex使用心得

来源:互联网 发布:28岁程序员 压力大 编辑:程序博客网 时间:2024/05/01 04:00

最近用LaTeX撰写了英文小论文和毕业的中文大论文,这个过程收获不少,也遇到了不少大坑,全靠自己学习、摸索。花费了很多时间。这些大坑应该不止我一个人可能会遇到,所以这篇文章就整理一下我所遇到的几个问题,分享一下解决这些大坑的经验,希望能对大家有帮助。

本文解决的问题:

  • UTF-8编码方式文件的BOM头的问题;
  • 关于矢量图片格式的问题;
  • 参考文献插入;
  • 其他小技巧。

有需要的同学可以针对性的查看


UTF-8编码方式文件的BOM头的问题

发现这个问题源于我在撰写中文的毕业论文时, 根据规定新的一章另起一页,同时需要保证章节首页位于奇数页上(通过使用\cleardoublepage保证)。检查时发现某一章和上一章之间存在一页无法删去的空白页,经确认不是 \cleardoublepage 命令导致的页数对齐的空白页。不论如何检查文本内容,还是找不到莫名其妙的空白页的原因,而且仅出现在某一章的开头。

因为,大论文的每一章是单独一份tex文件,通过main.tex调用编译。之后分析,这一章是使用Notepad++新建保存的UTF-8编码的tex文件。在winEdt中检查发现这一章的tex与其他tex文件相比多了BOM头。
检查方法:Document->Document Setting->Format->将Include UNICODE BOM的勾去掉。文件在编码时将去掉BOM头。

原因: BOM——Byte Order Mark,就是字节序标记。UTF编码的文件中,存在于文件开头的三字节字符,用于表明编码方式、方便编辑器识别。UTF-8的BOM头是EF BB BF。这个头没有对应的文本信息,在正常的文本中不应有显示,在十六进制的编码中可以看到。但是,LaTeX编译器在编译时不能识别这段字符,因此使用换页符替代。


关于矢量图片格式的问题

关于矢量图片的问题,很多人推荐使用eps格式的图片,因为很多会议要求提供这个格式的矢量图。其实相对eps,个人认为pdf的矢量图片使用时更方便,而且pdf转换EPS很方便,Windows、Mac自带的大部分作图工具都支持PDF矢量图导出,而eps必须要专门的工具打开,最主要的是LaTeX编译器对PDF格式的图片支持更完善。

使用office作图后直接使用导出选项导出PDF格式的矢量图,这时的PDF矢量图需要裁剪,使用adobe acrobat Pro工具裁剪,还可以二次编辑。裁剪方式有一个小技巧推荐给大家,使用这个工具自带的裁剪白边工具,裁剪的准确快速。
具体方法:视图->工具->印刷制作->设置页面边框,如下图图标所示:

这里写图片描述

打钩“删除白边距”,工具会自动删除多余白边,非常好用!比自己手动裁剪精确很多。
另外,这个工具调用层次很深,你可以把这个工具按钮自定义在快捷工具栏中,使用起来更方便。

MATLAB绘制的图片同样可以保存成PDF格式的矢量图,推荐使用MATLAB插件export_fig导出的图片,这个插件在MATLAB官方社区有下载,关于它的赞美网上一大堆,总之就是很好用。所有的线条和文字都是经过抗锯齿处理的,所以视觉效果极佳,这个插件可以生成pdf,eps等各种格式,当然推荐生成pdf格式。关于插件的使用方法读者可以自行百度,非常简单好用。

使用PDF图片另一个非常重要的原因:LaTeX可以使用的几种编译器对中文支持相对较好的编译器有pdfLaTex和XeLaTex两个,这两个编译器都支持pdf格式的图片,但是pdfLaTex编译器不支持eps,如果要是用eps图片,需要使用\usepackage{epstopdf}宏包,调用图片时会自动将eps转成pdf图片加载。

  • pdf手动生成eps的方法:
    adobe acrobat Pro中点击“文件”->“另存为其他”->(“更多选项”)->“内嵌式PostScript”。

参考文献插入

关于LaTeX参考文献插入的文章,百度中有很多。我简单说说我的使用经验。

首先,LaTeX参考文献是由参考文献库数据、文献格式模板、BibTeX编译器构成的。
参考文献数据库就是一个.bib的文件,里面存放了作者可能需要引用的文献信息。
格式模板决定了参考文献输出格式,是一个.bst的文件。如果是国际会议、期刊论文参考文献可能是APA格式,或者出版社规定好的格式,如IEEE会议论文会提供格式模板。对于中文的学位论文,需要使用GB7714-1987标准的模板,这个模板网上有很多,大家可以自行下载,我使用的是南京大学计算机科学与技术系胡海星编写的v2.1.1版,非常好用。
BibTeX编译器就是参考文献专门的生成程序,通过编译将正文部分引用的参考文献排序,提取信息,生成LaTeX可以识别的文字信息,最终生成PDF文档。

然后,讲讲具体的参考文献生成过程。参考文献全部存储在.bib的数据库文件中,存储格式如下:

@article{Vapnik1994measuring,   author = {Vapnik, Vladimir and Levin, Esther and Cun, Yann Le},   title = {Measuring the VC-dimension of a learning machine},   journal = {Neural Computation},   volume = {6},   number = {5},   pages = {851-876},   year = {1994},   type = {Journal Article}}@masterthesis{xiexiaodong2012firmware,   author = {谢晓东},   title = {基于模型检验的固件恶意代码检测技术研究},   school = {解放军信息工程大学},   address = {郑州},   year = {2012},   type = {Thesis}}

@article{是一条新参考文献的开头,大括号后的内容称为key,是每条参考文献唯一的识别信息,因此不能重复。一般采用作者姓名+文献发表年份+文章标题部分内容组成,当然也可以定义成其他内容,这部分是用户自定义的,原则就是好识别。注意!Key必须是英文和数字组成的字符串!每条文献内的各个项目用英文逗号隔开,各个项目之间没有顺序要求,需要包含的项目应该根据模板要求确定,一般都需要包含author、title、pages、year、type。对于学位论文还需要有school、address,对于书籍和会议集需要有publisher、address,对于期刊需要有journal、volume、number。

数据库编辑好后,接下来需要在正文中插入引用。正文中在需要插入引用的地方加入如下代码:
\cite{Vapnik1994measuring}
大括号中是参考文献key,引用一条文献不加逗号,多条文献可以使用逗号隔开不同的key。
在文章末尾需要生成参考文献的地方,插入如下语句:

\bibliographystyle{GBT7714-2005NLang-UTF8}\bibliography{refs}

第一条语句告诉编译器你的格式模板,我的模板是GBT7714-2005NLang-UTF8.bst。第二条语句是告诉编译器参考文献数据库文件是哪个,我这篇文章的是refs.bib。

到这里,参考文献就已经插入完成了。最后,编译。编译的过程分为三部分。编译使用如下两个按钮:
这里写图片描述

首先按“L”使用LaTeX编译器先编译好一版初步的不含有引用的PDF版本,此时所有的引用都是问号,因为编译器在按顺序编译,使用引用的地方还无法找到引用的位置,所以都是问号;然后按“B”,使用BibTex将参考文献内容编译好后添加在LaTeX的链接文件中,最后再按“L”,使用LaTeX编译,将原有问号位置替换为序号,完成最终的编译。

编译过程中要注意控制台输出的信息,从各种warnning、error提示中发现并解决问题,这是解决问题最主要的线索。


其他小技巧

  1. 公式编辑
    LaTeX公式编辑较为繁琐,新手掌握起来不是很容易。对于复杂的公式,我通常使用mathtype编辑好后复制到LaTeX中,通过设置“选项”->“剪切和复制选项”->“转换为其他文字”->“LaTex 2.09 and later”,不要勾选“包括译者名”和“包括mathtype数据”否则会增加很多冗余信息。这种方法可以将原有公式直接变成latex语言,非常方便。对于公式格式需要手动调整,是array还是内部插入,还是equation需要使用者根据实际情况修改。

  2. 图片位置控制
    图片插入后默认浮动格式,通过在\begin{figure}后添加位置控制命令H可以设置强制停靠,LaTeX命令对大小写敏感,此处必须是大写。因为,我用了一个多月的小写,发现没什么用,后来改成大写才发现…………Orz……唉!都是泪

0 0
原创粉丝点击