使用texlive写硕士论文

时间:2022-10-29 06:33:47

转载自:http://bbs.byr.cn/#!article/Linux/92217

选择使用texlive写硕士论文有以下几个原因:

1、我很少用Windows,而且现在win基本启动不进去了
2、笔记本散热效果极差,跑虚拟机一天会死机4次左右,而且在虚拟机中开word,
   文件一长速度就极慢
3、我不怎么会用word,看到那么多格式要求就烦
4、很久之前就想学一下tex系统,尝试了几次由于有点复杂和没有需求而失败
5、正好有一个硕士论文模板,由DazzleZhang同学维护的,表示感谢,
   地址在 http://code.google.com/p/buptthesis/
6、对tex发行版不是很了解,都说现在texlive比较方便,就选择texlive了,
   debian直接apt-get安装了

当然,设置的过程也挺曲折的,这也是写下本文的主要目的,记录一下自己折腾的过程,
能方便后人更好。不过当时折腾的时候也没详细记录步骤,有些地方可能不准确,
另外我对tex也不很熟悉,完全是初学,大牛看到不对的地方或者某个步骤有更好的
方法请提示我。

啰嗦了不少,记录过程如下,写的比较乱套。

1、下载,安装模板
http://code.google.com/p/buptthesis/ 下载buptthesis的v1.0 Beta1包,
解压到某个目录,里边有一个userguide.pdf,是用户手册。
再用svn方式checkout出最新版本  
svn checkout  http://buptthesis.googlecode.com/svn/trunk/  buptthesis-read-only
里边有三个目录,分别是bibtex latex和sample,前两个目录需要复制到相应的
目录当中去,sample中是一个例子,可以直接make测试模板是否安装好了。
    sudo cp -r bibtex /usr/share/texmf-texlive/bibtex/bst/bupt
    sudo cp -r latex /usr/share/texmf-texlive/tex/latex/bupt
另外,看userguide.pdf中还列出了不少模板所依赖的宏包,由于我初学,
不知道哪个deb中包含什么宏包,也没时间仔细研究了(论文两周就要编完),
直接用apt-get基本把所有tex相关的宏包都装上了,在测试编译sample的时候还是
提示少一些宏包,就到ctan(www.ctan.org)上搜索单独下载了。
需要我单独下载的宏包有
        CJKpunct
        glossaries
        mfirstuc
        subdepth
        xfor
下载好之后可以把它们一股脑的放在/usr/share/texmf-texlive/tex/latex/bupt目录下。

2、安装字体
安装好模板之后还是不能顺利完成sample的编译,因为缺少中文字体。
关于tex和中文的问题好像很麻烦,我现在也不是很懂,照着linuxsir上的这篇文章
做下来就好了
http://www.linuxsir.org/bbs/thread337571.html
基本步骤就是下载帖子中的附件,解压后是一个叫fonts的目录,把宋体、黑体和
楷体的字体文件(从win上cp过来)cp到这个fonts目录下,运行mkfonts脚本,
大概会运行几个小时,默认在个人主目录下生成一个texmf的目录,里边是相应的字体,
有utf8和gbk两种的(如果不需要gbk的字体,为了加快字体的生成,可以自行修改
mkfonts脚本)。在运行mkfonts之前要装一个fontforge程序,直接apt-get 好了。
需要注意的是,linuxsir帖子中,在生成完字体后需要运行updmap --edit,
而debian系统会提示你使用update-updmap,而我直接使用如下命令:
        echo > ~/.texmf-config/updmap.d/10local.cfg << EOF
        Map unisong.map
        Map unifs.map
        Map unihei.map
        Map unikai.map
        EOF
因为我生成了仿宋、宋体、黑体和楷体四种字体的utf8字体。
然后再直接运行update-updmap。设置好字体之后再编译一下sample,
这次应该可以通过了。

3、使用模板写论文
大部分都可以在userguide.pdf中看到用法,修改sample写论文就行。
我就说一下我当时折腾的几个地方吧。
1)sample里默认的是博士论文,改成硕士论文需要修改bare_thesis.tex,
\documentclass[open,master,online]{BUPTThesis}
open表示密级是公开,master就表示硕士论文,online表示生成在线阅读格式的,
会有封面和超链接的蓝色字体。

2)编辑公式和格式化代码
\usepackage{amsmath}%公式的宏包
\usepackage{listings}%格式化代码的宏包,下边是格式化代码时的通用设置
\lstset{breaklines}%这条命令可以让LaTeX自动将长的代码行换行排版
\lstset{extendedchars=false}%解决代码跨页时章节标题等汉字不显示的问题
\lstset{showstringspaces=false}%让代码中的字符串里的空格不可见,只是一个空格
\lstset{tabsize=4}

编辑公式的时候使用$把公式包含起来,比如$a = b + c$,这样出来的效果就是
公式那种斜体的,在两个$之中的字符还可以方便的使用上下标,
比如$A_1$出来就是A1,1是下标,$A^2$出来就是A的平方
用$$把公式包含起来,表示公式单独一行,并且居中,比如$$A = B + C$$。
其他更复杂的公式用法参考userguide.pdf和其他tex文档吧。

编辑代码的时候可以用listings包,比如要格式化c代码,
listings包会根据c的语法高亮关键字
\lstset{language=c}
\begin{lstlisting}
#include <stdio.h>
int main(int argc, char *argv[])
{
    printf("hello world\n");
    return 0;
}
\end{lstlisting}
会把include, main, int等高亮起来。支持很多语言,包括C++,bash,Python,SQL等等,总之平时能用到的基本都支持。  
    
3)插入图片以及图片引用
首先在bare_thesis.tex中设置图片的相对路径,比如我设置的是
\graphicspath{{./figure/}}
这样我就需要在论文目录下新建一个figure文件夹,专门放各种图片。
我只插入了eps格式的图片,jpg和png都没成功,
说什么图片边界问题,不懂。要生成eps图片,我使用dia画图,然后保存为eps就可以,
或者用openoffice的画图也可以,其他截图我用gimp把jpg和png格式的图片另存为eps的。
插入图片可以用如下代码:
\begin{figure}[t!]
\centering
%\includegraphics[width=8cm]{endb-flow.eps}
\includegraphics[scale=0.5]{endb-flow.eps} %figure文件夹下的eps文件名
\caption{加密控制中心工作流程图} %图片的说明
\label{fig:endb-flow} %引用的label
\end{figure}
一般比较小的图片用scale=1就可以,会自动调整,大图片就自己设定width吧,
一般12cm效果不错。在引用图片的时候用 \ref{fig:endb-flow}就可以了,
模板会根据章数自动编号。

4)其他的看userguide应该就可以了

基本就这样了,不少细节都记不住了,随时更新,如果能对大家有一点帮助就很高兴了。