% !Mode:: "TeX:UTF-8" \chapter{本说明文档已废弃!} 这份“论文”原本是本模板的说明文档兼生成样例。2015年2月13日模板更新到v1.1.0之后,不再更新本说明文档。此说明文档中讲解的TeX安装方法、命令用法等已不全,或根本不再正确了。但本文档依然可作为一份样例供用户参考源码。 新版本的说明见Github主页的Wiki:\url{https://github.com/shifujun/UESTCthesis/wiki} \chapter{更新日志} \noindent 2014年3月12日:v1.0.1 \begin{enumerate} \item 将数学公式中的字体改回CM字体。此前v0.6.8中有所疏忽,只将特殊符号改回。现在数学公式字体应该和大多数会议论文中的字体一致了。 \end{enumerate} \noindent 2014年3月12日:v1.0.0 \begin{enumerate} \item 因研究生院正式推荐使用本模板,故将版本号改为v1.0.0。可称为正式版了。 \item 本版本除版本号外,和v0.6.9完全一致。 \end{enumerate} \noindent 2014年3月8日:v0.6.9 \begin{enumerate} \item 修复BUG:当子图环境整体标题中存在下标时错误判断为标题超出一行。 \end{enumerate} \noindent 2014年3月6日:v0.6.8 \begin{enumerate} \item 在v0.6.1中将所有正文的英文字体改为Times字体,却忽略了公式中的字体也被修改为Times字体。现改回v0.6.1 之前版本中公式的字体(CM)。 \end{enumerate} \noindent 2014年3月4日:v0.6.7 \begin{enumerate} \item 修复BUG:缩略词表和主要符号表各自的第二页页眉不正确的问题。 \item 添加bm宏包,以支持希腊字母在数学模式中的粗体。例如:\\ \verb|$\mathbf{X} \bm{\Lambda}$| \end{enumerate} \noindent 2014年3月3日:v0.6.6 \begin{enumerate} \item 修复BUG:按照规范,脚注应该每页重新编号。 \item 修复BUG:参照研究生院范例修正注脚线和内容的距离。 \item 针对脚注跨页的情况,在说明文档中加入第~\ref{subsubsection:footnote}~节,说明解决方案。 \item 针对源代码排版段落在换段后会多出一个空行的问题,在说明文档的第~\pageref{par:scrextraline}~页加上一段话。提示大家在用Highlight转换出的源代码排版文件中,需要手动删除一个多余的换行命令。 \end{enumerate} \noindent 2014年3月1日:v0.6.5 \begin{enumerate} \item 修复BUG:子图有不居中的情况。 \item 修复BUG:当子图环境整体标题和子图标题都超过一行时,子图标题没有悬挂缩进的问题。 \end{enumerate} \noindent 2014年2月25日:v0.6.4 \begin{enumerate} \item 添加了研究生院规范中附件1,2,3的所有封面、中文扉页、英文扉页。具体使用方式见第~\ref{degree:subsection}~节。 \item 添加了两个选项,分别用于使模板不生成摘要之前内容或正文之外的所有内容。详见第~\ref{options:subsection}~节。 \end{enumerate} \noindent 2014年2月24日:v0.6.3 \begin{enumerate} \item 修订硕博封面第2页,使之和学校范例尽量一样。 \end{enumerate} \noindent 2014年1月20日:v0.6.2 \begin{enumerate} \item 新增一个用于检查模板所依赖的全部宏包版本的packagecheck.tex。编译它即可输出当前版本的模板所需的全部宏包的所需版本和当前已安装的版本,或者找不到需要的宏包。 \end{enumerate} \noindent 2014年1月20日:v0.6.1 \begin{enumerate} \item 论文中所有正文中的英文修正为\href{http://en.wikipedia.org/wiki/Nimbus_Roman_No9_L}{Nimbus Roman No9 L字体(wiki链接)},这个字体和Times New Roman字体高度相似。 \item 中英文摘要的关键词内容改为悬挂缩进。 \item 将中英文摘要和目录加入到pdf书签中。 \item 修正附录中的图表和公式的标号形式。 \end{enumerate} \noindent 2014年1月16日:v0.6 \begin{enumerate} \item 添加选项listoffigures,用以打印图目录。 \item 添加选项listoftables,用以打印表目录。 \item 添加命令\verb|\englishshcoolextraline|,用以在titlepage.tex文件中。当用\\ \verb|\englishshcool|命令填写学院英文名时,英文名过长一行显示不下的情况下(例如通信学院),用\verb|\englishshcoolextraline| 命令将写不下的词写在下一行。 \item 根据反馈,去掉所有超级链接的有色外框。 \item 将枚举环境的序号缩进到和正文一致。 \item 添加选项cv。开启后会用contents目录下的cv.tex替换publications.bib生成的攻读硕博期间发表的论文。cv.tex是按照一位通信学院的同学提供的一份往年的硕士论文中的格式做的模板。这个“个人简历及攻读硕士学位期间取得的研究成果”格式,以及“个人简历”都不是学校规范中要求的。所以如果不是自己学院要求、自己导师要求,建议不要用这个选项。 \item 将原有的主要符号表的实现机制改为更新的宏包,同时支持了缩略词表。原有的主要符号表使用方式略有更改,详见第~\pageref{subsection:glossaries}~页。 \item 修正可能在\verb|\verb|命令中或排版源代码中可能使用仿宋的问题。已全改为宋体。 \item 本说明文档在第~\ref{subsubsection:skill}~页补充了一小节关于图表制作技巧的内容。 \end{enumerate} \noindent 2013年12月25日:v0.5.6 \begin{enumerate} \item 本次更新不影响排版效果。仅仅修改了封面上校徽的颜色,使橙色和蓝色与学校识别视觉系统一致。 \end{enumerate} \noindent 2013年11月26日:v0.5.5 \begin{enumerate} \item 在v0.5.3版本修改中,子图的标题过长,导致引用总标签失败。现修复了这个问题。并在第~\pageref{testpicslabel}~页进行了一小段测试。 \end{enumerate} \noindent 2013年10月29日:v0.5.4 \begin{enumerate} \item 修改封面到摘要之前的部分实际的页码,避免pdf阅读器中页码冲突。 \item 修改中英文摘要标题和关键词的字体,改为加粗形式。并按照范例,在“摘要”二字中间加空格。 \end{enumerate} \noindent 2013年8月10日:v0.5.3 \begin{enumerate} \item 根据2013年7月18日研究生院网站发布的新的《学位论文撰写格式规范》\url{http://gr.uestc.edu.cn/article.shtml?id=6643},修改了模板。但由于本科教务处学位科尚未修改规范,所以本科选项的排版规范暂未做大变化。 \end{enumerate} \noindent 2013年6月7日:v0.4.8 \begin{enumerate} \item 修正目录的标题字体。之前用了2008年本科规范的宋体小二,是错误的。 \end{enumerate} \noindent 2013年6月3日:v0.4.7 \begin{enumerate} \item 根据一位同学的需求,将源代码的排版改为等宽字体。为了实现这个功能,将highlight.sty的内容更改,并内置到模板中了。所以之前使用了排版源代码并用input命令加载了highlight.sty的同学需要删除那个input语句,否则会报错说一些命令已经定义过了。 不过我并没有做到完全自动化的等宽效果。原因和解决办法见更新后的\ref{source:section}节。 \end{enumerate} \noindent 2013年6月2日:v0.4.6 \begin{enumerate} \item 修正BUG:页脚字号改为小五。 \end{enumerate} \noindent 2013年6月1日:v0.4.5 \begin{enumerate} \item 根据一位同学的需求,将本科论文中需要的外文资料翻译部分的章节标题做了调整,英文部分题注改为英文。详见\ref{translation}节。 \item 上一版示例中将获奖的条目类型拼错了,所以显示结果不对。 \item 我自己临时打算继续用LaTeX的Beamer幻灯片文类做答辩幻灯片,于是新建了一个幻灯片主题。但是因为没设置完,也没有说明文档,所以还没法交给新手直接用。所以不建议动手能力弱的同学现在使用。 \end{enumerate} \noindent 2013年5月25日:v0.4.4 \begin{enumerate} \item 修正摘要关键词的逗号之前会有一个多余的空格,而英文摘要关键词的逗号后没有空格的问题。 \item 修正可能会出现超大段距的问题。并且重新设置了一个默认为0的弹性段距,最大为10磅,最小为-1 磅。有弹性段距会让排版得到更美观的结果。而且-1 到10磅相对于行距来说并不明显。 \item 增加了一个参考文献类型ONLYNOTE,可以将参考文献的note字段直接作为参考文献条目内容。用于录入不规范的参考文献条目,例如攻读期间取得的成果中可能会要录入获奖\cite{onlynoteexample}。而获奖并不是标准的参考文献类型。 \item 本科论文目录中加入外文资料原文和译文。 \item 本科论文的章标题序号改为阿拉伯数字序号。 \item 修正表格字号,按照规范应为五号字(英文10.5磅)。 \item 发现问题:如果\verb|\citeup|命令之前是标点符号,请暂时手动将前面的字符同\verb|\citeup|命令都放入\verb|\mbox{}| 命令的括号中,例如:\verb|《新华字典\mbox{》\citeup{xxx}}|。 这样可以避免在这个标点符号之后直接换行,而将上标的[] 置于下一行行首。 \end{enumerate} \noindent 2013年5月20日:v0.4.3 \begin{enumerate} \item 修复BUG:枚举环境之前与前后文有额外的间距,现已去掉。 \item 修复BUG:之前模板没有按照规范要求将摘要等前置内容章起右页,现已修正。至于中文摘要在第I 页,而英文摘要在第III 页的问题,我认为是正常的,页码不应该因为左页没内容就跳过去。奇偶页码与左右页的关系不应该改变。 \item 修复BUG:由于我的疏忽,本科论文规范修订时将目录中的缩进打错成半角,这和硕博规范不一致。现已将本科论文的目录缩进修正和今年的规范一致,硕博不变。 \item 修复BUG:之前模板的参考文献和致谢的顺序是按照硕博规范设置的,刚刚发现本科规范和硕博规范在这个顺序上是反的。现已将本科论文的致谢置于参考文献之后。 \item 发现可能编译出错的问题,新安装的CTeX套装在安装目录下\verb|\CTeX\tex\latex\ctex|中有一个旧版本的ctex 宏包,应将这个目录删除,ctex 才会下载最新的ctex宏包。我已在模板中添加了需要的ctexbook版本。 \end{enumerate} \noindent 2013年5月14日:v0.4.2 \begin{enumerate} \item 修复BUG:此版本之前,当目录只有一页时目录的页眉显示成主要符号表。 \item 上一版本在使用WinEdt等自带的编译功能时不显示LOGO,但是会引起封面多出一页。此版本装饰了这个问题,在不使用正确编译的编译脚本编译时在LOGO 处显示一段说明文字。 \end{enumerate} \noindent 2013年5月4日:v0.4.1 \begin{enumerate} \item 将封面所需的两个png文件去掉。采用pstricks宏包生成的矢量图,并嵌入到cls文类中。感谢周光耀同学帮忙! 生成所需的特殊编译过程已写入到批处理脚本中。这个过程是: 用filecontents环境将pstricks图片嵌入到cls文件中,令其生成logo.tex文件。然后在文类中利用write18 命令正确编译logo.tex,生成logo.pdf。这个write18 命令默认是不允许使用的,所以在WinEdt中执行编译是不会生成logo.pdf 的,也就不会显示Logo。 \end{enumerate} \noindent 2013年4月4日:v0.4 \begin{enumerate} \item 添加english选项,使用后将所有预定名变为英文。供我校留学生使用。这个需求是研究生院老师提出来的,同时也有研究生同学向我询问可否支持的。使用方法是在master或doctor 选项后加上,english。 例如:\verb|\documentclass[master,english]{uestcthesis}| \item 添加定理环境的结束符语句。但是目前所有结束符还设置为空。也就是没有任何变化。因为学校的规范中没有定义各种环境的结束符应该是什么。这个需求是一位数学学院的同学提出来的。需要用的同学可以暂时自己改,例如,将uestcthesis.cls文件的661行改为\verb|\theoremsymbol{【证毕】}|,即可在证明环境后自动加上这个标志。注意修改cls 文件请使用notepad++等支持无BOM 头的UTF-8编辑器。 \end{enumerate} \noindent 2013年2月25日:v0.33 \begin{enumerate} \item 设置定理环境的缩进。 \end{enumerate} \noindent 2013年2月21日:v0.32 \begin{enumerate} \item 将参考文献中英文条目的作者名改为:名在前缩写,姓在后全拼。 \end{enumerate} \noindent 2013年2月21日:v0.31 \begin{enumerate} \item 去除枚举环境的所有垂直附加距离。感谢不中同学反馈BUG。 \item 已确认还未解决的问题:参考文献中英文作者名的录入规则和学校要求不符。缺少获奖类型的参考文献录入。 \end{enumerate} \noindent 2013年2月13日:v0.3 \begin{enumerate} \item 在模板内部修复了参考文献的遗留问题,不再需要sed工具。 \item 模板已经提交到CTAN,并已被MiKTeX收录。所以本模板已经可以通过MiKTeX的宏包管理器安装,不再需要typesetting目录。更新说明中安装一节。 \item 在pdf元数据中填写了论文的信息,并加入了XMP高级元数据。设置了用Adobe Reader 打开时的默认阅读方式为书籍方式。 \item 加入了排版源代码的方案说明,见\ref{source:section}节。 \end{enumerate} \noindent 2013年1月14日:v0.2 \begin{enumerate} \item 完成本硕博三种格式论文所需的全部结构。 \end{enumerate} \chapter{注意事项} \begin{enumerate} \item 本模板不能帮用户更改图片中的字体、字号,使之符合学校规范。请注意学校规范中对图片中字体、字号的要求。 \item 插入图片、表格如不使用模板封装好的命令,需自行注意学校规范对于图表标题的要求。 \item 插入参考文献,必须对照本说明文档的范例,如果对照范例缺少项目,则不能保证参考文献格式正确。本说明文档的范例包含所有类型的参考文献,必能找到对应的范例。 \item 欲求完美的排版效果,不能完全依赖本模板。必须在论文完全定稿后,文字不再变化时,参考各类\LaTeX{}书籍,对换页、图片位置、公式中的间距进行微调。这些微调方式本说明文档中暂无介绍。 \item 本模板已尽量保持对\LaTeX{}原本命令的兼容性,遇到问题可参照互联网上绝大多数的解决方案。 \end{enumerate} \chapter{模板使用说明} \section{简介} 2013年1月14日更新后的模板已经支持本硕博三种标准。并且本人已经和教务处实践科交流过,实践科对本模板是支持的。同时实践科也表示可以接收pdf 格式的电子档。并且已经同意将本科毕业论文的排版规范改为和研究生标准统一化,所以也简化了本模板的开发工作。本次更新后已经针对本科和硕博的不同要求,可以分别编译出不同结构的论文。 本模板以《研究生学位论文(含研究报告)撰写规范(2012年修订版)》(以下称学校标准)为标准。对于其中未提及的规范,参照中国高等学校自然科学学报编排规范(修订版)》。参考文献格式符合学校标准的基础上,采用国标GBT7714-2005。 编译结果已经可以符合学校标准,如有不完全符合的地方,请大家分享反馈回来,我尽量修改。改不了的地方,请大家看看历年的硕博论文,本模板的排版质量已经非常非常高了。 \subsection{面向没用用过\LaTeX{}的用户介绍} Q:什么是\LaTeX{}? A:\LaTeX{}是\TeX{}的一种扩展。\TeX{}是科技论文排版的首选软件,\TeX{}程序从1989 年至今没有过任何修改,可见这个程序的可靠性之高。在用\TeX{} 写文章时,需要边写内容边定义格式。而\LaTeX{}在\TeX{}基础上,将排版和写作分开,使得写作的人不用管格式的处理,从而专注于文章的内容! Q:我怎么没听说过这东西? A:确实\LaTeX{}在国内普及度不高,学校对本科生的论文很少要求到\TeX{}可以达到的高度。但是研究生和博士生论文一般都需要用\LaTeX{} 排版。全世界著名大学都要求用\LaTeX{} 排版毕业论文。国内大部分的重点大学也都有\LaTeX{} 学位论文模板(\href{http://zzg34b.w3.c361.com/templet/graduateThesis.htm}{点击查看列表})。比如清华大学的校内论坛还有专门的TeX 讨论分区。 Q:使用本模板比使用Word好在哪? A: \begin{enumerate} \item 不用设置任何字号、字体、行距、页眉、页脚、页边距、目录,使用者根本就不需要知道这些命令。 \item \TeX{}诞生的最初目的之一就是排版数学公式,\TeX{}排版出的数学公式比Word在细节上要好太多了。全世界所有的数学期刊包括中国的数学期刊,都(只)接受\LaTeX{} 源文件。 \item 文章中的所有序号,第X章、第X节、图X-X、表X-X都是自动生成的,绝不会出错!如果要引用某个图,只需要给图起一个别名,引用这个别名即可,TeX 会自动将它变成正确的序号。 \item 全自动的行距、字距微调,确保不该换行的地方不换行(比如参考文献的引用角标不会到下一行开头去),不该换页的地方不换页(比如图和图题之间),能放下的图片不会因为一点点距离不够就放到下一页。 \item 参考文献的格式全自动处理成模板设置好的格式,绝不会出错!参考文献的输入内容大多学术网站都查询后可导出,比如Google学术搜索。 \item 生成的PDF文件可全文查找,所有的引用都自动生成超链接。 \end{enumerate} Q:\LaTeX{}有什么缺点? A:编写过程中不能像Word一样所见即所得,\LaTeX{}是一种所思即所得的排版系统。\LaTeX{}需要在编译时才能确定文章中的引用序号和各种图片表格的位置,所以虽然不能边写边看结果,但是得到的结果质量比Word 高。 Q:多久能学会使用\LaTeX{}? A:使用本模板写作毕业论文,使用者是作者的角色,并不需要学习如何编写\LaTeX{}模板。作者只需要写文章内容,用几个简单的命令指明哪段文字是章标题,哪段文字是节标题。或者用参考文献引用的命令引用参考文献。以及插图命令、表格命令。文科论文大概只需要对照说明文档即可立刻投入写作。理工科论文由于要输入数学式等特殊内容,需要多学一些专门输入数学式的方法。各种复杂的数学符号有专门的网站可以手写识别出LaTeX中需要输入的命令。 \subsection{面向\LaTeX{}使用者的介绍} 本模板提供了插入单张图片、子图、三线表、自动换页三线表、截图表格,以满足完成论文的大部分的图片和表格插入需求。详见后文介绍。 编译时使用pdflatex编译,暂时没有设置hyperref对各种编译器自动兼容。hyperref的兼容性本来就非常糟糕,暂时不动它了。 正确编译的方式见模板根目录下的“compile.bat”文件内容。其中编译过程的原因是:由于硕博论文使用了multibib 宏包以支持显示攻读期间的研究成果,所以$\mathbb{C}$\kern-.05em\TeX{}套装自带的WinEdt默认编译方式会少编译这一部分。 在撰写论文的过程中可以不用这个“compile.bat”,按照常规的编译方式只会缺少“攻博/硕期间发表的论文”。 其余内容见后文介绍。 \subsection{面向\LaTeX{}程序员的介绍} 许多\LaTeX{}用户并没有区分出\LaTeX{}和\TeX{}的重要区别:\TeX{}是内容和排版混在一起的,而\LaTeX{} 是将内容和排版分开的。如果没有注意到这个区别,使用\LaTeX{}只是比\TeX{} 多了些高级命令而已。 本模板直接将所有排版内容都写在了文类中,并包装了一些作者命令。希望今后的维护者能够注意到这个特点,不要破坏它。国内许多其他高校的\LaTeX{}模板大多没有采用文类,许多设置的方式也不是最好的。所以借鉴时需要谨慎。 目前本模板试图和标准的\LaTeX{}命令完全兼容,插图和表格的包装命令中并没有前后间距的设置。所以如果用标准命令插入图片和表格,也不影响符合学校标准。但是注意,非常不推荐模板使用者这样做。 \section{安装$\mathbb{C}$\kern-.05em\TeX{}套装} $\mathbb{C}$\kern-.05em\TeX{}是Windows系统下面向中文优化的一套\TeX{}工具的集合,包括编译器、编辑器、阅读器等一系列工具。安装后即可立刻使用。 从网页\url{http://www.ctex.org/CTeXDownload}下载$\mathbb{C}$\kern-.05em\TeX{}(当前版本2.9.2.164,大小203M) 。 可以在网页上看到这个203M 的版本不包含完整的宏包(插件),所以安装这个版本在第一次使用时需要联网才能正常使用。也可以直接下载1.31G 的完整版(不推荐)。安装完成后,前者比后者会节约大概2GB的磁盘空间。 安装时建议不要改变除安装路径以外的其他选项,即完整安装。由于安装包中包含非常多文件,所以某些笔记本硬盘可能会安装的比较慢。这是正常现象。安装完成后扩展名为tex 的文件应该会被自动关联。双击thesis.tex应该会自动用WinEdt 打开。 注意:安装完$\mathbb{C}$\kern-.05em\TeX{}之后必须启动其所带的MiKTeX的宏包升级工具:Update (Admin)。一般可以在开始菜单中CTeX的目录下找到。一般一路下一步就可以了。默认的选项就是自动判断一个最近的软件源更新宏包。仔细看看选项,可以手动确定一个软件源。似乎ustc的源会比较快。需要注意的是,像$\mathbb{C}$\kern-.05em\TeX{}自带的MiKTeX版本已经比较旧了的情况下,升级工具不能一次性的升级所有宏包。有时可以看到可升级的宏包列表中,默认有许多宏包没有被勾上。这就是说必须先更新一部分内容。更新完毕后,点击确认这个程序会关闭。并不会自动重启再一次更新。你需要再次运行这个程序,再次更新宏包。通常两遍应该就能更新完所有宏包了。总之,你应该第三次运行这个程序,它应该会告诉你没有宏包可以更新了。 \subsection{UESTCThesis模板编译环境安装指导} 这一小节是在v1.0.0在河畔上发布之后,依然有很多同学不能成功编译模板的情况下,我在河畔发的一个帖子。所以行文和前后小节不连贯,或有重复。 其实模板中的说明文档已经讲解了如何安装、测试,但很多同学还是不能成功编译。主要原因是我编写说明文档的时候,CTeX还可以安装完就直接使用,而现在已经不能了。不能的原因是随着模板的更新,模板依赖的其他宏包版本也提升了,有些宏包没有和旧版本兼容,所以不能正常编译。 很多同学看了上面的话就糊涂了。我再解释一下那些东西吧。首先,UESTCthesis模板是一个LaTeX文类。LaTeX除了有文类还有宏包。文类就是一个模板,宏包就是一些特定功能的附加模块。文类中一般会使用很多宏包来帮助实现特定的效果。所以它们之间是依赖的关系。UESTCthesis依赖了一百余个宏包,所以想要成功编译模板,必须先安装好它所依赖的宏包。 那么LaTeX实际上是个编译器,而且是不止一个编译器,有很多不同的编译器。UESTCthesis使用的是其中的pdflatex编译器。那么这些编译器和宏包就需要一个软件来管理。这些管理LaTeX及其宏包的软件就是各种LaTeX发行版了。在不同平台上有不同的发行版,比较流行的是Windows平台上的MiKTeX、Linux平台上的TeXLive以及Mac OS平台上的MacTeX。我在说明文档中提到的CTeX实际上不是一个发行版,它是一个一键式安装包。它其中的LaTeX管理软件就是MiKTeX。 CTeX包含的工具主要就是三类:LaTeX管理工具、LaTeX撰写编辑器、LaTeX输出文件的查看器。管理工具就是MiKTeX。编辑器就是WinEdt。查看器包括dvi查看器、pdf查看器、ps查看器等。所以其实我们如果只使用UESTCthesis也只需要安装这三类工具就可以。 如果已经安装了CTeX,但无法成功编译模板。我们需要先运行其中MiKTeX的宏包升级工具:Update (Admin)。一般可以在开始菜单中CTeX的目录下找到。一般一路下一步就可以了。默认的选项就是自动判断一个最近的软件源更新宏包。仔细看看选项,可以手动确定一个软件源。似乎ustc的源会比较快。需要注意的是,像CTeX自带的MiKTeX版本已经比较旧了的情况下,升级工具不能一次性的升级所有宏包。有时可以看到可升级的宏包列表中,默认有许多宏包没有被勾上。这就是说必须先更新一部分内容。更新完毕后,点击确认这个程序会关闭。并不会自动重启再一次更新。你需要再次运行这个程序,再次更新宏包。通常两遍应该就能更新完所有宏包了。总之,你应该第三次运行这个程序,它应该会告诉你没有宏包可以更新了。这时,你的系统中的所有已经安装的宏包才是最新版的。但是呢,UESTCthesis模板依赖的许多宏包可能还没有安装呢,所以也谈不上更新。MiKTeX的一个重要功能就是在编译过程中自动安装缺失的宏包。在安装MikTeX的时候可能会有这个功能的开关选项,没看到也没关系。打开Settings (Admin),第一页最后一个框中:Install missing packages选成Yes就可以了。这样的话,我们只需要编译一次模板就应该自动安装上缺失的宏包了。需要注意的是,在Win7以上的Windows中,这次安装宏包的编译必须用管理员权限运行。方法是:开启一个管理员权限的命令提示符窗口,cd到模板的目录,然后运行compile.bat。不能直接用管理员权限在资源管理器中运行compile.bat。 如果还没有安装CTeX。我想也没必要一定安装CTeX了。可以去MiKTeX的官网直接下载MiKTeX的联网安装程序。这样安装好的MikTeX所带的宏包就都是最新版的了。MiKTeX的下载地址是:http://miktex.org/download。不要下载那个Recommended Download,下载Other Download里的Net Installer。注意有64位版的,在64位系统下编译会明显变快。这个安装器会把当前最新的一个basic版或者full版安装程序下载下来。basic版安装完依然无法满足UESTCThesis的宏包依赖。还是需要用管理员权限编译模板,自动安装缺失的宏包。倒是不太推荐安装full版,因为full版太大了,很多宏包是多余的,模板中也用不上。 安装完MiKTeX就已经可以正常编译模板了。但是为了更加方便的撰写论文,通常也不能真的用记事本写LaTeX。CTeX中捆绑的WinEdt是个不错的编辑器。不过它是共享软件,CTeX中捆绑的是破解版。而且版本已经很旧了。可以从它的官网http://www.winedt.com/上下载个试用版的。试用期是31天。但是过期之后也可以使用,唯一的麻烦就是它总会提醒你注册。其他的LaTeX编辑器也有很多,大家相互推荐吧。我个人其实没有用过太多。 最后就是需要一个PDF阅读器了。推荐用SumatraPDF:\\ http://blog.kowalczyk.info/software/sumatrapdf/free-pdf-reader-cn.html\\ 这个阅读器不会锁定pdf文件,每次重新编译时无需关闭阅读器,编译后阅读器也会自动更新pdf文件的变化。 \subsection{安装模板} \subsubsection{从GitHub上下载模板} 推荐从GitHub上的本项目主页(\url{https://github.com/shifujun/UESTCthesis})中下载本模板。页面上有一个zip按钮,可以无需安装git程序下载最新的模板。解压开这个zip,可以得到本说明文档和一个example目录。example目录既是本说明文档的源文件也是模板。example相当于一个人的论文撰写工作目录。关于它的结构,见下文的\ref{templatestructure}节。 \subsubsection{从CTeX(MiKTeX)中安装模板(不推荐)} 此安装模板的方法可以将模板安装在CTeX宏包库中,这样在任何位置都可以使用模板。不过我们撰写论文一般只撰写一份,所以这样做好处不是很大。而且这样的安装方式并不总能获得最新的模板。 运行开始菜单 $\longrightarrow$ CTeX $\longrightarrow$ MiKTeX $\longrightarrow$ Maintenance (Admin) $\longrightarrow$ Package Manager (Admin)。 这个程序是管理CTeX 系统中的宏包用的。点击菜单栏中的Repository $\longrightarrow$ Change Package Repository。 选择第一项“Package shall be installed from the Internet”,点击下一步,选择服务器。在学校使用可以选择China 的mirrors.ustc.edu.cn。这是中科大的源,同在教育网中,速度会比较快。然后点完成。之后程序应该会立刻开始同步数据。 同步完成后,在工具栏右侧的Name:处填写uestcthesis,然后回车。搜索出来的就是本模板。右键点击本模板的条目,选择Install。完成后点Close 关闭。 安装完成后运行开始菜单 $\longrightarrow$ CTeX $\longrightarrow$ MiKTeX $\longrightarrow$ Maintenance (Admin) $\longrightarrow$ Settings (Admin)。依次点击按钮“Refresh FNDB” 和“Update Formats”,然后确定。 \subsection{更新模板} 在正式打印论文之前一定要访问项目主页检查模板是否有更新。一般来说每次更新都会修正bug,所以推荐尽早更新模板。更新模板时无需改动已撰写的论文内容。只需替换模板的两个排版设置文件uestcthesis.cls和uestcthesis.bst。这两个文件一般在工作目录中,也可能由CTeX安装在系统中。如果从GitHub上下载的模板,指的就是example目录中的这两个文件。从GitHub上下载新的模板,用其中的cls和bst文件替换现有的文件即可。 如果是用CTeX或MikTeX安装的模板,请用Update程序更新模板。但不一定能获得最新的模板,因为模板首先在GitHub上更新。 \subsection{测试编译} 在v0.6.2版本中新增加了一个packagecheck.tex文件,编译它即可输出当前版本的模板所需的全部宏包的所需版本和当前已安装的版本,或者找不到需要的宏包。缺失的宏包可以通过用管理员权限编译该文件,使MikTeX自动安装缺失的宏包。版本过旧的宏包需要通过MikTeX的更新程序更新宏包。 用WinEdt打开thesis.tex如图~\ref{winedt}(双击即可)。 \pic[htbp]{WinEdt界面}{width=\textwidth}{winedt} 点击图中红色箭头指向的黑色实心小三角,在下拉菜单中选择PDFLaTeX。 然后点击绿色箭头指向的按钮将此文件设置为主文件。最后点击蓝色箭头指向的按钮,或按键盘上的F9按键,编译论文。用这种方式编译论文比较方便,但会缺少研究生论文所需的“攻读期间发表的成果”一章。所以正式编译时必须用compile.bat 编译论文才能得到正确的结果。 通过将此文件设置为主文件之后,以后只要thesis.tex在WinEdt中打开了,即使当前编辑的文件不是thesis.tex,编译时也会编译thesis.tex文件。这样可以避免每次都切换回thesis.tex 编辑窗口。 如果安装的是Basic版的$\mathbb{C}$\kern-.05em\TeX{}套装,则第一次编译时会自动联网下载缺少的宏包,所以会比较慢。编译完之后会自动弹出编译好的pdf 论文。 如果安装的是Full版的$\mathbb{C}$\kern-.05em\TeX{}套装,当前版本应该没有问题。但也应该联网更新宏包。选择菜单TeX,MikTeX,MikTeX Update Wizard。 然后选择“I want to get updated packages from a remote package repository”,“Let me choose a remote package repository”。 同样可以选择中科大的源。 \section{模板结构}\label{templatestructure} 从GitHub上下载的zip解压后,只有example目录是一份模板。source目录是模板的源代码。example就相当于一份论文,也叫工作目录。你可以重命名这个目录。 工作目录中应包含3个目录和3个文件,见表~\ref{structtab}。表中说明为Windows环境下的情况。Linux和Mac 请将bat 文件换为sh文件即可。example 目录中还有两个zip文件:windows下编译脚本.zip和linux,mac下编译脚本.zip。选择其中一个解压到工作目录中。 \threelinetable[htbp]{structtab}{\textwidth}{lcX}{模板结构} {名称&目录/文件&说明\\ }{ chapters &正文目录 &使用者可复制其中的DuplicateMe.tex,创建论文的各章子文件。\\ contents &其他内容目录 &使用者可以通过编辑其中的文件填写论文结构的非正文部分。\\ pics &插图目录 &使用者在编写论文时要插入的图片放在此目录中。\\ thesis.tex &主文件 &最终得到论文需要编译这个文件,这个文件的内容应该只包含章的载入顺序。 使用者可以重命名这个文件,但须将compile.bat中第一行的thesis改为相应名字。\\ compile.bat &编译批处理 &双击编译论文,得到正确的thesis.pdf文件。\\ clean.bat &清理批处理 &双击可删除目录中全部编译过程生成的中间文件。\\ }{} \section{开始编写论文} \subsection{确定学位信息}\label{degree:subsection} 打开thesis.tex文件,第三行如下:\\ \verb|\documentclass[doctor]{uestcthesis}|\\ 修改第三行中间的中括号中的doctor为其他的选项。bachelor代表学士学位;master代表学术型硕士学位;doctor代表博士学位;engineeringmaster代表工程硕士学位;professionalmaster代表专业硕士学位;researchreport代表留学生研究报告; engineeringdoctor代表工程博士学位; 这些选项选择好之后,模板会自动添加相应的封面、扉页等前置必备页面。 然后打开contents目录中的titlepage.tex。填写其中的信息。本科生注意要删除其中后一部分的信息,否则编译会出错。 \subsection{模板的其他选项}\label{options:subsection} 本模板还有如下可选选项:\\ 选项listoffigures,用以生成图目录。\\ 选项listoftables,用以生成表目录。\\ 选项cv。开启后会用contents目录下的cv.tex替换publications.bib生成的攻读硕博期间发表的论文。cv.tex是按照一位通信学院的同学提供的一份 往年的硕士论文中的格式做的模板。这个“个人简历及攻读硕士学位期间取得的研究成果”格式,以及“个人简历”都不是学校规范中要求的。所以如果不是自己学院要求、自己导师要求,建议不要用这个选项。\\ 选项withoutforepages。启用后不编译摘要之前的部分(封面、中文扉页、英文扉页、独创性声明和论文使用授权)。\\ 选项onlychapters。启用后只编译正文部分。\\ 最后两个选项都是方便撰写论文时加快编译用的。为了这个目的,还可以使用draft选项。这个选项会不真正插入图片。如果在撰写论文正文中经常需要编译查看改动结果,在不涉及图片、参考文献等附加内容的情况下,建议开启onlychapters和draft选项。同时只需要运行一次pdflatex命令编译即可。编译脚本执行的正确编译会连续编译3次,所以会比较慢。 以上这些选项的启动方式形如:\\ \verb|\documentclass[doctor,onlychapters,draft,listoftables]{uestcthesis}|\\ \subsection{编写正文} \subsubsection{新建一章} 论文正文的每一章都是一个单独的tex文件,存放于chapters目录中。由于本模板采用UTF-8 编码,所以不能用Windows 记事本新建的UTF-8文本文件创建tex 文件。因为Windows的UTF-8 格式文件头和我们用的不一样。所以为了方便起见,chapters 目录下有一个DuplicateMe.tex文件,它是一个写好文件头的空文件。新建一章时只需要将它复制一份,改一个新的文件名即可。文件名最好可以代表这一章的内容。 chapters目录中的文件并不会都出现在最终的论文中,比如DuplicateMe.tex放在chapters 中就不会有影响。将一章加入到论文中,需要在thesis.tex中加入\\ \verb|\include{chapters/DuplicateMe}|这样的语句。\verb|\include{}|的顺序决定章的顺序。在写作中,可以将前面已经写好并检查排版没问题的章暂时从thesis.tex去掉,比如在\verb|\include{chapters/DuplicateMe}| 前面加一个\%,把这行注释掉。 为了跨平台着想,本模板直接采用了UTF-8编码。每个文件的第一句话都是\verb|% !Mode:: "TeX:UTF-8"|,\%后面都是注释,不会出现在文章内容中。这句话是为了让一些文本编辑器自动选择UTF-8 编码打开文件。在Windows 中,文本文件的默认编码是ANSI,虽然可以另存为UTF-8,但是依然有区别。Windows记事本的UTF-8 格式多了一个BOM文件头。 \subsubsection{章节命令} 本模板使用的全是标准的章节命令。有:\\ \verb|\chapter{}\section{}\subsection{}\subsubsection{}|\\ 这四个级别的章节命令。如果不懂怎么用,可以打开tuition.tex看看。 \subsubsection{修改论文} $\mathbb{C}$\kern-.05em\TeX{}套装自带的PDF阅读器SumatraPDF,也就是按F9编译后自动弹出的PDF 阅读器,它可以自动在tex源文件中找到对应的段落。在SumatraPDF 中双击指定段落,即可自动转到tex源文件中对应的位置。另外,可以用这个方法查看范例论文中的图片、表格、公式等源文件编写方法。 \subsubsection{插入图片} 为了控制全文的图片插入形式一致,包括居中、前后间距、题注字体等,本模板定义了几个命令来插入图片: \verb|\pic[htbp]{图标题}{width=0.6\textwidth}{文件名}|\\ \pic[htbp]{菊花}{width=0.6\textwidth}{Chrysanthemum} 这条命令用于插入单个图片,第一个中括号是可选参数,用于向系统建议图片的位置。默认参数htbp就是让系统考虑放在当前位置(h)、本页底部(b)、次页顶部(t)、单独一页(p)。图片不会浮动到引用位置之前,只会向后浮动。另外可以设置\verb|[H]|,命令系统不考虑版面美观,就放在当前位置。也可以向\verb|[]|中加入“!”,告诉系统不用考虑版面限制,但此时还只是一种建议。 第三个参数中可以设置图片的大小,最大不能超过\verb|width=\textwidth|。因为这是设置图片按宽高比不变放大或缩小到宽度等于一行文字的宽度。如果超过这个大小,图片将超出版心。例子中的0.6 是乘以0.6倍的意思。也可以设置\verb|height=5cm| 等参数。最后一个参数既是文件名也是标签名(标签名用于引用图片,如图X-X这种),这个文件名不需要扩展名,有也没关系。图片必须放在pics目录下。同时建议不同扩展名的图片,也不要起一样的名字。图片格式支持png,pdf,jpg,jpeg。 还可以插入多幅图片组成的子图组,这些图共用一个图编号,各自又有自己的子编号。\\ \verb|\begin{pics}[htbp]{整体标题}{整体标签(英文数字组成)}|\\ \verb|\addsubpic{子图标题}{width=0.4\textwidth}{文件名}|\\ \verb|\addsubpic{企鹅}{width=0.4\textwidth}{Penguins}|\\ \verb|\end{pics}|\\ \begin{pics}[htbp]{子图效果}{picsaaaa} \addsubpic{郁金香}{width=0.4\textwidth}{Tulips} \addsubpic{企鹅}{width=0.4\textwidth}{Penguins} \end{pics} 这四行命令中,第一行和最后一行定义了一个子图环境,在其中可以插入若干条addsubpic 命令。当一行图片排满后可以换行到下一行。注意图片间有间距,所以两张\verb|0.5\textwidth|宽的图片不能排在一行。\par \label{testpicslabel}测试引用图片标签。单张图片图\ref{Chrysanthemum}是一副菊花。子图效果如图\ref{picsaaaa} 所示,其中有两幅子图。子图\ref{Tulips} 是郁金香,子图\ref{Penguins}是企鹅。 \subsubsection{插入表格} \TeX 系统对表格的支持可能不够出色。这种说法主要是因为微软的Excel 实在是太出色了,以至于人们经常用Excel 制作结构非常复杂看起来很好看的表格。其实大多数表格都可以简化。《中国高等学校自然科学学报编排规范(修订版)》中讲到:表应精心设计,为使表的结构简洁,建议采用三线表,必要时可加辅助线,如表~\ref{tab2}。 插入普通三线表可以用我定义的命令:\\ \verb|\threelinetable[htbp]{标签}{0.4\textwidth}{lcr}{表标题}|\\ \verb|{项目&频率&技术\\|\\ \verb|}{|\\ \verb|802.11b\tnote{a}&2.4GHz&DSSS\\|\\ \verb|蓝牙&2.4GHz&FHSS\\|\\ \verb|HomeRF&2.4GHz&FHSS\\|\\ \verb|}{|\\ \verb|\item[a] 这里还可以添加脚注!|\\ \verb|}|\par \threelinetable[htbp]{tab1}{0.4\textwidth}{lcr}{目前学术界广泛推荐使用的三线表} {项目&频率&技术\\ }{ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ }{ \item[a] 这里还可以添加脚注! } 插入带辅助线的三线表可以将头部改为:\\ \verb|{&\multicolumn{总列数减1}{c}{内容}\\\cmidrule[0.05em]{辅助线开始列号-辅助线终止列号}|\\ \verb|项目&频率&技术\\|\\ \verb|}|\\ 具体请查看tuition.tex中的这部分源代码。 \threelinetable[htbp]{tab2}{0.4\textwidth}{lcr}{带辅助线的三线表} {&\multicolumn{2}{c}{参数}\\\cmidrule[0.05em]{2-3} 项目&频率&技术\\ }{ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ }{ \item[a] 这里还可以添加脚注! } 仔细观察可以发现,threelinetable是一个有8个参数的命令。第一个参数和插入图片的一样,是一个可选参数,功能也一样。第一行的参数只有那个\{lcr\} 要说一下,大括号里的字母可以是lcrX四个字母。每个字母代表表中一列的对齐方式。lcr分别是左对齐、居中、右对齐。X是将剩余空间都分配给这列,并且这列内容可以自动换行。X可以有多个,那样多列宽度平均分配。 第二行和第三行的一对大括号中是表头内容。第三行和第七行的一对大括号中是表格的内容。这两部分的内容使用的都是TeX 的标准表格格式:每个单元格间用\&符号分开,每行结束要用\verb|\\|表示换行。 在802.11b旁边有一个\verb|\tnote{a}|命令,它是用来添加表格脚注的命令。a是手工输入的编号,因为你可以在表格中加许多个a。在最后三行的大括号中,要解释这个脚注a的内容,就像倒数第二行的内容那样。如果表格中没有脚注,将最后一个大括号内容空置即可。 这个普通的三线表也是一个浮动体,和图片一样,它的位置也是系统决定的。并且表格和表格的标题(题注)不会分在两页,这一点Word就差很多了。 我们有时还需要打印比较长的表格,我们希望它可以换页。这时可以用这个命令:\\ \verb|\longthreelinetable{标签(英文数字组成)}{表标题}{列数}{lcr}|\\ \verb|{|\\ \verb|项目&频率&技术\\|\\ \verb|}{|\\ \verb|802.11b&2.4GHz&DSSS\\|\\ \verb|}|\par \longthreelinetable{longtab1}{可自动换页的超长三线表}{3}{lcr} { 项目&频率&技术\\ }{ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ 802.11b\tnote{a}&2.4GHz&DSSS\\ 蓝牙&2.4GHz&FHSS\\ HomeRF&2.4GHz&FHSS\\ } 这个超长三线表环境不支持添加脚注。这个表格不是浮动体,会排版到当前位置的。 为了解决复杂的表格暂时不方便用\LaTeX 制作的问题。我定义了一个折中的命令,就是插入表格的图片,然后给图片加上表格的标题,如表~\ref{excel}。 这个表格是用Excel绘制的,然后在Excel中选中这些单元格,然后右键点复制。Excel 会把表格以图片的形式复制到剪贴板,所以可以打开Windows 画图粘贴进去就行了。注意不要用QQ截图等工具截图,这样会截图到本不该显示的一些Excel辅助线。\\ \verb|\pictable[htbp]{表标题}{width=\textwidth}{图片文件名}|\par 这个命令其实和插入图片的命令是相像的。\par \pictable[htbp]{用Excel制作的表格}{width=0.5\textwidth}{excel} \subsubsection{图表设计技巧}\label{subsubsection:skill} 学校规范中规定了图表中的文字应用宋体五号字。而图片中的字号本模板没有办法代为解决。但是我要介绍如何做到这一点。无论用户使用什么制图工具,一般都可以先设置画布的大小设置为426pt*672pt或者149mm*235mm。这样大小的画布和论文页面版心的大小基本相同,所以在这张画布上绘图可以以100\%大小插入到论文中。也就是可以将\verb|\pic|命令中指定图片大小的大括号空置。这样在绘图的时候插入文字如果注意设置好字体为宋体五号字,在插入到论文后也能够保持字号了。 关于图片的格式转换。推荐大家下载开源的工具Inkscape:\url{http://www.inkscape.org/zh/}。在模板中请尽量插入矢量图,大部分理工科所用的制图工具都支持矢量图的导出。虽然矢量图格式会有所不同,但是Inkscape都能处理,并且都可以转换为pdf格式。在本模板中插入矢量图都需要先转换为pdf格式。 如何去白边是个常见的问题。去白边是指去掉图片四周多余的空白。用Inkscape打开图片,然后打开文件菜单,选择文档属性(快捷键Shift+Ctrl+D)。在页面选项卡中有自定义尺寸方格,点击“缩放页面到内容”的加号。最后点击“缩放页面到绘图或选区”按钮。最后保存文档即可。如果图片四周依然有很大的空白,则需要仔细检查图片的背景是否本身就是一块白色的图案。在矢量图中一般可以选择到,并删除它。 在注意了以上问题之后,其实用矢量图制作出来的表格效果完全没有任何问题,因此推荐复杂的表格用这样的方法制作。 \subsubsection{插入脚注}\label{subsubsection:footnote} 本模板已经设置了脚注的格式,使之符合研究生院撰写范例中要求的格式。每页注脚不能超过10个。 通常注脚不会跨页。但是如果\LaTeX{}没有更好的办法了,它会把注脚分成两部分,后一部分排版到下一页的注脚区内。虽然这样的情况发生的概率非常小,但是如果出现之后,又不想注脚跨页,可以选择两种办法:\\ 1.最好的办法是重新组织文字,使插入注脚的位置向前或者向后移动至少1行。\\ 2.在主文件的\verb|\documentclass|行之后加入一行:\\ \verb|\interfootnotelinepenalty=10000|\\ 这样\LaTeX{}会强制换页将注脚所在行移到下一页去,在前一页留下空白。 \subsection{插入数学公式} 本模板对数学式没有做过多修改,仅添加了amsmath和kmath宏包,以提供更美观的数学字体。关于数学式的编写规则请阅读“TeXbook中文版.pdf”中的16 至19 章。这本书是\TeX{}的作者高德纳写的\TeX{} 权威著作,网友xianxian翻译。 行内公式:单个\$包围的行内公式。例如:\\ \verb|若$A\in F^{n\times n}$,且对任意非负整数$p$,有|\\ 编译结果是:\\ 若$A\in F^{n\times n}$,且对任意非负整数$p$,有\\ 这就是行内公式。 行间公式:\\ \verb|\begin{equation}|\\ \verb|A^D=\lim_{\varepsilon\rightarrow 0}(A^{p+1}+\varepsilon I)^{-1}C^{(p)}_A|\\ \verb|\end{equation}|\\ 其中第一行和最后一行是公式环境的标志,中间依然按照数学式的输入规则输入。\\ 编译结果为:\\ \begin{equation} A^D=\lim_{\varepsilon\rightarrow 0}(A^{p+1}+\varepsilon I)^{-1}C^{(p)}_A \end{equation} 若无需显示标号,则将第一行和最后一行中的equation都替换为equation*。 \LaTeX 是数学学界广泛使用的工具,大部分数学工具例如matlab都支持导出LaTeX公式。详情请自行在互联网上搜索。 各种数学符号的输入方法可以在一些在线网站上通过手写查询出来:\\\url{http://detexify.kirelabs.org/classify.html}\\ \url{http://webdemo.visionobjects.com/equation.html?locale=zh_CN}\\ 互联网上任何有关LaTeX数学式的技巧应该都适用于本模板。 \subsection{定理环境等} 本模板提供了四种分别编号的环境:定义、定理、公理、引理。和一种不带编号的环境:证明。 这五种环境的环境名都是它们的拼音全拼。 例如:\\ \verb|\begin{dingli}|\\ \verb|通过任意闭合曲面的电通量等于该闭合曲面所包围的所有电荷量的代数和与电常数之比。|\\ \verb|\end{dingli}|\\ \begin{dingli} 通过任意闭合曲面的电通量等于该闭合曲面所包围的所有电荷量的代数和与电常数之比。 \end{dingli} \subsection{交叉引用} 在正文的任意位置可以用命令\verb|\label{标签名}|\label{crossref}在此设置一个标签,然后在论文的其他位置可以使用命令\verb|\ref{标签名}| 和\verb|\pageref{标签名}| 分别显示该标签位于的章节号和页码。例如:此例见第~\pageref{crossref}~页的第~\ref{crossref}~节。在输入\verb|\ref{标签名}| 命令时,如果其前后有是中文,可以在其与中文之间加入一个\verb|~|符号,使其空一格更美观。 \subsection{枚举环境} 枚举环境就是如下的东西,使用方法见此处的源代码。可以引用其中编号,例如~\ref{testinenumerate}。 \begin{enumerate} \item 内容。 可以另起一段。 \item 内容。 \item 内容。 \item 内容。 \item 内容。 \item \begin{enumerate} \item 内容。 \item 内容。 \item 内容。 \item 内容。 \item \begin{enumerate} \item 内容。 \item 内容。 \item 内容。 \item 内容。 \item \begin{enumerate} \item 最多到此4层嵌套。 \item 内容。 \item 内容。 \item 内容\label{testinenumerate}。 \end{enumerate} \end{enumerate} \end{enumerate} \end{enumerate} \section{其他内容} 其他内容指的是:中文摘要、英文摘要、目录、参考文献、鸣谢、外国原文、中文译文,还有可以省略的附录等,见表~\ref{contentsstruct}。这些内容的格式和顺序都是固定的,所以将它们单独放在一个目录中。使用者只需要编辑它们的内容,并不用选择按什么顺序载入它们。 \threelinetable[htbp]{contentsstruct}{\textwidth}{lX}{contents目录中文件用途} {文件名&说明\\ }{ titlepage.tex &封面信息\\ Cabstract.tex &中文摘要\\ Eabstract.tex &英文摘要\\ acknowledgements.tex&致谢\\ appendix.tex &附录\\ original.tex &外文资料原文,研究生可忽略此文件,不用编辑\\ translation.tex &外文资料译文,研究生可忽略此文件,不用编辑\\ reference.bib &参考文献\\ publications.bib &攻读期间的研究成果,本科生可忽略此文件,不用编辑\\ }{} \subsection{封面} 我们校毕业论文的封面是由文印中心统一提供的,模板里的封面只是为了论文完整一些而设计的。\par 编辑contents/titlepage.tex即可输入封面的信息。 \subsection{摘要} 分别编辑两个摘要文件。其中:\verb|\begin{Cabstract}{}{}{}{}{}|是Cabstract摘要环境的起始语句,从它到它对应的\verb|\end{Cabstract}| 之间的部分就是这个环境的内容,也就是中文摘要的内容。 \verb|\begin{Cabstract}|旁边有五个大括号,其中填写关键词。按照要求关键词应选择3--5 个,所以至少填前三个。括号可以空着(其中不能有空格),但不能删除,必须有5对大括号。英文摘要也是一样的,只是环境名变成Eabstract 了。 \subsection{参考文献} 用文本编辑器打开contents目录中的reference.bib文件(可用鼠标拖动文件到WinEdt窗口上打开)。模板带的reference.bib 文件是一份示例文件,其中包含所有参考文献样式的示例各一条。可以按照其中的示例编写。其中多余3 个作者的条目无需按照示例中的写法在最后手工写“等”或“et al”,参考文献模板的新版本已经解决了这一问题。 还可以通过Google学术搜索\url{http://scholar.google.com/}直接导出bibtex格式。打开Google学术搜索,点击页面上的“设置”,将其中的参考书目管理软件设置为显示导入\BibTeX{} 的链接。之后搜索条目下方就会出现“导入\BibTeX{}”。 将内容复制到reference.bib中即可。但是需要注意的是,Google等网站提供的内容有一些字段不完整的情况。使用时应对照原reference.bib 中相同的参考文献类型,核对是否缺少某一字段。中文的参考文献要令language = \{Chinese\} (非空即可)。 注意bib文件中每一条目的第一行例如:\\ \verb|@ARTICLE{turongting2007,|\\ 注意后面的“,”不要删除。其中turongting2007是这条参考文献的标签,用于在文章中引用这个参考文献,以显示它的标号。标签必须是英文和数字组成的。Google 学术搜索导出的条目标签是自动用作者名+年份+标题第一个词生成的,英文的当然没问题,但是中文文献的标签需要手工修改成一个英文和数字组成的标签。而ARTICLE 是条目的类型。 在正文中引用参考文献时有两个命令可以使用。\verb|\cite{标签名1,标签名2……}|和\verb|\citeup{标签名1,标签名2……}| 分别是正常字号的中括号引用和上角标形式的中括号引用。两个命令的大括号中可以写多个标签名,用英文逗号分隔开来。\par 本模板生成的参考文献格式符合GB/T7714-2005,但有一处错误需要手动修正。生成的英文析出文献的文献类型标识码之后会有一个句号(GB/T7714-2005 规定没有)。这个错误比较不明显,出现的频率也不多。可以只在最后提交正式论文时再行修复。 关闭打开的thesis.pdf文件。双击执行“compile.bat”即可自动修复这个错误并重新编译出thesis.pdf 。 \subsubsection{测试文献} A.1 普通图书 \cite{gxzzzzqlyt1993}, \cite{jiangyouxu1998}, \cite{tangxujun1999}, \cite{zhaokaihua1995}, \cite{wangang1912}, \cite{zhaoyaodong1998}, \cite{crawfprd1995}, \cite{iflai1977}, \cite{obrien1994}, \cite{rood2001}, \cite{angwen1988}。 A.2 论文集、会议录 \cite{zglxxh1990}, \cite{ROSENTHALL1963}, \cite{GANZHA2000}。 A.3 科技报告 \cite{dtha1990}, \cite{who1970}。 A.4 学位论文 \cite{ZHANGZHIXIANG1998}, \cite{CALMS1965}。 A.5 专利文献 \cite{LIUJIALIN1993}, \cite{hblz2001}, \cite{KOSEKI2002}。 A.6 专著中析出的文献 \cite{baishunong1998}, \cite{gjbzjxxflbmyjs1988}, \cite{hanjiren1985}, \cite{BUSECK1980}, \cite{FOURNEY1971}, \cite{feilisheng1981}, \cite{MARTIN1996}。 A.7 期刊中析出的文献 \cite{libingmu2000}, \cite{taorengji1984}, \cite{yzdztbmz1978}, \cite{MARAIS1992}, \cite{HEWITT1984}。 A.8 报纸中析出的文献 \cite{Dingwenxiang2000}, \cite{Zhangtianqing2000}。 A.9 电子文献 \cite{jiangxiangdong1999}, \cite{xiaoniu2001}, \cite{CHRISTINE1998}, \cite{METCALF1995}, \cite{TURCOTTE1992}, \cite{Scitor1983}。 附加测试 B1.连续出版物4.3 \cite{zgdzxh1936}, \cite{zgtsgxh1957}, \cite{AAAS1883}。 顺序编码制数字的压缩性测试 \cite{angwen1988,baishunong1998,Dingwenxiang2000,gxzzzzqlyt1993, jiangyouxu1998,tangxujun1999,zhaokaihua1995,wangang1912,zhaoyaodong1998}, \cite{crawfprd1995}, \cite{iflai1977}, \cite{obrien1994}, \cite{rood2001}, \cite{angwen1988}。 B2. CAJ-CD B/T 1-2005 中国学术期刊(光盘版)检索与评价数据规范 Data Norm for Retrieval and Evaluation of Chinese Academic Journal(CD) (修订版试行稿) CAJ-CD 中国学术期刊(光盘版)技术规范CAJ-CD B/T 1-2005 代替CAJ-CD B/T 1-1998 \cite[12]{zhuyixuan1985}, \cite{yejianying1946}, \cite{gwywgzjj1958},\cite{shenkuogwywgzjj1070},\cite{jiyun1800}, \cite{liujiang2004},\cite{wanjingkun1996},\cite{dai1983} \subsection{攻读期间的研究成果} 攻读期间的研究成果文件是publications.bib,其格式和编辑方法同参考文献完全一致。在WinEdt中使用编译按钮编译的结果不会显示这一章是正常现象。需要使用compile.bat编译才能得到包含这一章的正确结果。 如果需要录入非参考文献标准格式的内容,例如获奖,可以使用ONLYNOTE 类型的参考文献。这个类型是直接原文输出note 条目的类型。可见示例\cite{onlynoteexample}。 \subsection{致谢} 致谢就是简单的编辑contents/acknowledgements.tex就可以了。 \subsection{附录} 附录中如果分章,需要全部写在contents/appendix.tex文件中,即其中写多个\verb|\chapter{}|。如果将appendix.tex 中所有内容删除,最后的论文将不会出现附录。 \subsection{外文资料} \label{translation} 外文资料原文和译文分别是contents/original.tex和contents/translation.tex。它们都和普通的正文一样。 在v0.4.5版本更新时,我将外文资料的两章,章号重置为1,但是章标题不显示章号。而节标题从1.1开始编排。同时,外文资料原文中,图表题注都改为了英文。从示例文件中可以看到,这两章的章命令改为使用标准的\verb|\chapter{}|命令,不再使用带星号的命令。 \subsection{主要符号表和缩略词表}\label{subsection:glossaries} 主要符合表和缩略词表的开启都不需要特别设置。只要使用了声明符号和缩略词的命令,并且使用了它们,就会自动出现在主要符号表和缩略词表中。如果只声明,而不使用则不会出现在两个表中。如果某个表没有内容,则不会出现这个表。 在v0.6版本更新后,新加入了缩略词表。并且原先实现主要符号表的机制也有所改变。简单说,之前只使用\verb|\fuhao|命令设置符号就可以了。而现在依然保持了这个命令的定义不变,但是还需要在使用这个符号的位置调用引用符号命令,才能在主要符号表中显示这个符号。 定义一个符号使用命令:\\ \verb|\fuhao{符号}{说明}{标签}|。这里标签还被用于在主要符号表中按字母顺序排序。\\ 定义一个缩略词使用命令:\\ \verb|\newacronym[description=中文全称]{标签}{缩写形式}{英文全称}|\\ 然后在需要使用符号或缩略词的地方用命令:\\ \verb|\gls{标签}| 使用举例:我先在这里定义一个符号\verb|\fuhao{$\Pi$}{数学及物理学领域普遍存在的数学常数。}{pi}|\fuhao{$\Pi$}{数学及物理学领域普遍存在的数学常数。}{pi},然后在需要用到的地方用命令\verb|\gls{pi}|调用它。例如,圆周率的符号是\gls{pi}。然后再定义一个缩略词\\ \verb|\newacronym[description=支持向量机]{svm}{SVM}{Support Vector Machine}|\\ \newacronym[description=支持向量机]{svm}{SVM}{Support Vector Machine} 在需要使用这个缩略词的地方用命令\verb|\gls{svm}|引用它。需要注意这个效果,当我第一次引用它时,它是先全称加括号缩略词的方式,而之后再引用它则只有缩略词的形式了。例如:\\ \verb|有一类算法叫做\gls{svm},\gls{svm}的效果非常显著。|\\ 有一类算法叫做\gls{svm},\gls{svm}的效果非常显著。 有关这两个表的更复杂的用法,请查阅glossaries宏包的相关手册。主要是如何定义缩略词和符号的特殊复数形式,以及如何灵活的引用出符号或缩略词的复数形式,首字母大写形式等。 \section{排版源代码} \label{source:section} 许多学院的论文都需要插入若干程序源代码。经过多方比较,我推荐一个使用外部工具的方案。这个工具比现有的\LaTeX{} 宏包解决方案要更美观,对中文的支持更好,几乎支持所有的语言。 从\url{http://www.andre-simon.de/zip/download.html}下载这个工具。这个工具就叫highlight,是开源软件,有各个平台的版本,完全不需要自行编译。Windows用户就直接下载Windows (W32) installer的连接就行。下载后进行完全安装。 这个工具界面是中文的,很容易使用。打开后,设置通用选项卡如图~\ref{highlight1}。 \pic[htbp]{通用选项卡设置}{}{highlight1} 输出细节选项卡不用动。设置格式化选项卡如图~\ref{highlight2}。其中高亮主题在模板的v0.4.7以后已经不用选择了。模板中内置了plain黑白主题。 \pic[htbp]{格式化选项卡设置}{}{highlight2} 然后设置输出路径,可以设置到chapters目录中。然后选择输入文件(文件路径中不能包含中文),可以批量转换很多源文件。最后点转换文件即可。转换好的文件是以源文件名后再加.tex 扩展名命名的。在论文中需要插入的位置写入:\\ \verb|\input{chapters/Place_has_TrainDAO.java.tex}|\\ 在2013/06/03更新的v0.4.7版本后,不再需要使用input命令导入highlight.sty。模板中已经内置了这个文件的内容,采用黑白等宽字体。使用之前版本input了highlight.sty文件的同学需要删除这个导入命令,否则会报错。 \label{par:scrextraline}在生成的tex文件中倒数第4行应该是排版的源代码的最后一行。这一行最后的换行命令\verb|\\|通常是多余的、不该有的,应该删去。否则换段时会多出一个空行。这和我们不应该在一个段落的最后加上\verb|\\|的道理是一样的。如果有大量的源代码需要处理,建议使用本文替换工具将多余的\verb|\\|连同最后三行一起匹配,然后替换为仅留最后三行的内容。 如果需要完全的等宽效果,还需要手工修正一些符号。因为\LaTeX 对符号有特殊的处理,并不是普通的字体。需要按照表\ref{sourcereplace}在Highlight生成的tex文件中全文替换。 \threelinetable[htbp]{sourcereplace}{\textwidth}{cll}{源代码中等宽符号替换} {源代码中存在符号&搜索&替换为\\ }{ \verb|^| &\verb|\textasciicircum|\textvisiblespace\tnote{注} & \verb|\^{}|\\ $|$ &\verb|\textbar|\textvisiblespace & \verb|\symbol{124}|\\ $\backslash$ &\verb|$\backslash$| & \verb|\symbol{92}|\\ \verb|<| &\verb|$<$| & \verb|\symbol{60}|\\ \verb|>| &\verb|$>$| & \verb|\symbol{62}|\\ \verb|~| &\verb|$\sim$| & \verb|\symbol{126}|\\ \verb|_| &\verb|\textunderscore|\textvisiblespace & \verb|\symbol{95}|\\ \{ &\verb|\{| & \verb|\symbol{123}|\\ \} &\verb|\}| & \verb|\symbol{125}|\\ }{\item[注] 注意命令后有一个空格,连这个空格一起替换掉。下同。} 示例结果如下: \input{chapters/test.c.tex} \input{chapters/Place_has_TrainDAO.java.tex} \section{Linux中编译} 本模板已经在Linux系统中测试过,可以正常编译。在TeXLive完全安装的基础上,所有宏包包括CJK都安装了,还需要另外安装宋体和黑体。本模板使用的宋体和黑体是Windows自带的,也是Word使用的。需要在Windows中C:\\Windows\\Fonts 目录中复制simhei.ttf和simsun.ttc到Linux 系统中,如果依然提示缺少某个字体就一样复制过去。最简单的方式是将两个字体文件放到UESTCthesis工作目录中。 编译脚本已经写好在zip包中,解压到工作目录即可使用。 \section{使用\LaTeX{}时容易犯的错误} \begin{enumerate} \item 以为回车就是换行。\LaTeX{}中换行的命令是“\verb|\\|”。 \item 以为换行就是另起一段。\LaTeX{}中另起一段的命令是“\verb|\par|”,也可以连续输入两个以上的回车。 \item 以为空格就是空格。\LaTeX{}中中文与中文之间的空格或回车都会被忽略掉,英文与英文之间的空格和回车有多少个都只算作1 个。这是为了避免输入时录入不正确数量的空格。如果一定要输入连续多个空格,可以使用符号\verb|~|,或者命令\verb|\nbs{}|。 后者是不可换行的空格。比如英文人名Donald Ervin Knuth,如果将其中的空格改为\verb|\nbs{}|,则系统会优先保证这三个单词在同一行显示。如果实在放不下了,才会在单词的音节断开处换行。例如: Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{}Donald\nbs{}Ervin\nbs{}Knuth\nbs{} \end{enumerate} \section{进一步了解\LaTeX} 推荐购买一本《LaTeX2e完全学习手册》\\ 作者:胡伟\\ 出 版 社:清华大学出版社\\ ISBN:9787302241591 \\ 出版时间:2011-01-01\\ 这本书中详细讲解了各种常用的排版设置。但是要注意的是,\LaTeX{}对\TeX{}最大的改进就是将排版和写作分开处理。所以学习了这本书中各种的排版设置,也不应该将其应用在写作中。而是运用它们设计各种模板(文类),就像本模板一样,尽量将排版和内容分开处理。 这本书中没有提及如何制作文类cls文件,相关内容需要自行阅读clsguide.pdf。这份文档位于\verb|..\CTEX\MiKTeX\doc\latex\base\clsguide.pdf|。 \section{修改本模板} 可以通过用pdflatex编译uestcthesis.dtx文件得到uestcthesis.pdf。uestcthesis.pdf是源代码的说明文档。 本模板源代码可在\url{http://mirror.ctan.org/macros/latex/contrib/uestcthesis/source/} 获得。 修改前请注意本模板的许可协议。