用LaTeX写漂亮学位论文
- 格式:doc
- 大小:73.50 KB
- 文档页数:16
用LaTeX写漂亮学位论文2012-4-7 11:10阅读(7)下一篇:CTEX使用常见问题 | 返回日志列表∙赞∙转载∙分享∙评论(1)∙复制地址∙更多这是一篇关于介绍用LaTeX写学位论文的好文章, 非常建议有一定LaTeX基础的, 而又不想用以前的模板或者找不到合适的模板的朋友写学位论文参考适用, (这里有许多学位论文的模板)/articles/latex-graduatethesis.html. ; 关于如何自己设置学位论文的版式, 下面已经介绍得非常详细了, 文章有点长, 慢慢看吧.序一直觉得有必要写这样一篇文章,因为学位论文从格式上说更像一本书,与文章的排版不同,不仅多出目录等文章没有的部分,而且一般要设置页眉页脚方便阅读查找。
学校有时会提出具体的格式要求,虽然复旦的要求非常简单,而且事实上并不严格执行,但自己的论文毕竟是自己的孩子,还是要敝帚自珍的,大家都希望做得漂亮一点。
网上已经有不少学位论文的模板,其中大都出自一两个最初的版本,针对各自学校的要求作了一些改动。
这些模板还是很方便的,如果对它们的排版效果感到完全满意,那么直接拿来用就可以了。
不过如果想调整其中某些格式,就不得不仔细研究一下它们的代码或说明文档,有时并不那么容易。
而且这些模板的导言或 cls或sty文件都写得很长,内容很多,尽可能的包含了大家有可能用到的功能,但其实具体到每个人只有一部分是需要用到的。
用一个包含“冗余”代码的模板,总不是一件很舒服的事情。
当然也许很多人抱着能用就好的态度,并不care。
本文是为那些对论文格式有特殊要求或喜欢自己设置格式的人写的。
如果你觉得网上能找到的论文模板已经足以满足你的需要,并且对TeX本身也没有多少兴趣,那么你没有必要花费宝贵的时间阅读本文。
阅读本文的基础是假定你已经了解怎样用LaTeX来写普通的文章。
一般的 TeX/LaTeX命令不会再作解释,重点将放在学位论文与普通文章的不同点上,以及怎样用一些宏包方便地设置其格式。
其中大部分内容来源于网络资源、工具书以及各个宏包的说明文档,恕不一一注明,在此一并致谢!一首先讲一下纸张大小和页边距的设置。
根据复旦的格式要求,纸张大小为A4纸,正文用小四号字,页边距按Word中的默认设置。
小四号字即12pt, Word 中默认的页边距为上边距=2.54cm, 下边距=2.54cm, 左边距=3.17cm, 右边距=3.17cm或者换算成更容易记忆的上边距=1in, 下边距=1in, 左边距=1.25in, 右边距=1.25in如果我们用book类,第一句可以写\documentclass[a4paper,12pt]{book}然后用geometry宏包设置页边距\usepackage[top=1in,bottom=1in,left=1.25in,right=1.25in]{geometry}但其实这样设置的页边距极不美观,尤其是左右对称的页边距没有考虑装订的需要,而且加上页眉后这样的上边距就显得过窄。
所以注重美观的话还是自己调整一下吧。
需要注意的是,book类默认是twoside即双面打印模式,与article类默认的 oneside即单面打印模式不同。
两者区别在于页边距和页码的位置。
单面模式每页的页边距都相同,双面模式则会在偶数页将设置的左、右页边距调换。
如果采用单面打印,则可在\documentclass的方括号里加上oneside 参数,并在geometry的选项中适当增加左边距,减少右边距,以留出装订线的位置。
但是不要忘了装订的时候右侧一般会裁掉一点边,所以左、右边距也不要相差过大。
如果采用双面打印,则geometry中的设置被解释为奇数页的页边距,偶数页的左、右边距会自动互换。
还有几个注意事项。
首先,这里的奇数页和偶数页是针对当前page计数器的值来说的,而不是在生成文件中总的页码。
也就是说,假如当前页在整个输出中总排序是偶数页,但当前page计数器(即显示的页码)为奇数,则当前页的页边距是按奇数页设置的。
其次,\documentclass还有一对选项openright和openany, book类默认是前者,即每一章(包括目录)都会在奇数页开始,如果前一章的最后一页是奇数页,则会在其后插入一页空白页,以确保新的一章仍然从奇数页开始。
这是书籍的排版规范,不建议改变,论文页数比较少的还可以借此增加页数。
这是双面模式的情况,在单面模式下不存在这个问题。
经常有人问为什么自己明明是单面打印,却仍然会在两章之间有一页空白页,请注意book类默认是双面模式,除非你设为 oneside, 记住告诉TeX你要的是什么!另外,为了方便查看,页码应该放在书籍的外侧。
对于单面模式,外侧就是右侧,而对于双面模式,奇数页右侧是外侧,偶数页左侧是外侧。
如何设置页码留到后面讲设置页眉、页脚时再详细说。
至于到底是单面打印还是双面打印,看你自己的喜好了。
复旦的论文规范没说,一般的做法是博士双面、硕士单面。
反正总页数少于50页的话,就不要双面了,否则显得太单薄,书脊的内容都很难打印。
最后提一个常见的问题。
如果用pdf文件来打印,在Acrobat的打印对话框里有一项Page Scaling默认是Fit to paper, 这样打印出来整个内容就会缩小一些,不再是设置的尺寸。
这是因为打印机的可打印范围不能达到整个A4纸张的全部,而是比A4纸的规格要小一些(具体的可打印范围跟打印机型号有关), Fit to paper 的意思就是把整个页面调整到可打印范围上去,以保证所有页面上的内容都能打印出来。
因为可打印范围总是小于A4纸的尺寸,所以打印出来总是会缩小一些。
缩小的比例一般为95%左右,与打印机型号有关。
解决这个问题,只要选择Page Scaling为None就可以了。
二这一节讲中文字体和中英文混排的问题。
中文处理推荐使用CJK或新版CCT, 旧版 CCT因为年代久远,有一些bug会导致莫名其妙的问题,不建议再使用。
本文以 CJK为例,中文环境为\begin{CJK*}{GBK}{song}...\end{CJK*}与英文习惯不同,中文排版一般没有粗体的概念,而是用宋体、黑体、楷体、仿宋等不同的字体来加强文本效果。
在CJK默认的字体定义文件中,宋体对应的粗体是用\CJKbold 命令通过微小平移字形来实现的,不仅放大后能看到锯齿,而且也不符合中文的排版习惯。
建议将宋体对应的粗体设为黑体,这样文中所有粗体命令作用的环境中加粗的宋体都会自动变成黑体,不需要再用\CJKfamily{hei}来转换。
宋体的字体定义文件C19song.fd里典型的一段代码如下\DeclareFontFamily{C19}{song}{}\DeclareFontShape{C19}{song}{m}{n}{<-> CJK *gbksong}{}\DeclareFontShape{C19}{song}{bx}{n}{<-> CJKb * gbksong}{\CJKbold}\DeclareFontShape{C19}{song}{m}{it}{<-> CJK * gbksongsl}{}\DeclareFontShape{C19}{song}{bx}{it}{<-> CJKb *gbksongsl}{\CJKbold}\DeclareFontShape{C19}{song}{m}{sl}{<-> CJK *gbksongsl}{}\DeclareFontShape{C19}{song}{bx}{sl}{<-> CJKb * gbksongsl}{\CJKbold}这里C19代表GBK字符集的编码方式,m表示字符的粗细程度和宽紧程度均为中等 (medium), bx表示字符的属性为粗(bold)和松(expanded), n, it和sl分别表示正常直立体(normal), 意大利斜体(italic)和机械斜体(slanted)。
\DeclareFontShape的最后两个参数分别是字体定义和命令序列。
显然,上述语句将宋体的粗体定义为用\CJKbold 生成。
要将其改为黑体,只需将这段代码改为\DeclareFontFamily{C19}{song}{}\DeclareFontShape{C19}{song}{m}{n}{<-> CJK *gbksong}{}\DeclareFontShape{C19}{song}{bx}{n}{<-> CJKb * gbkhei}{}\DeclareFontShape{C19}{song}{m}{it}{<-> CJK * gbksongsl}{}\DeclareFontShape{C19}{song}{bx}{it}{<-> CJKb * gbkheisl}{}\DeclareFontShape{C19}{song}{m}{sl}{<-> CJK * gbksongsl}{}\DeclareFontShape{C19}{song}{bx}{sl}{<-> CJKb * gbkheisl}{}实际上,正式的中文排版也不应使用斜体,而应使用楷体或仿宋代替。
所以也可以类似地将上述语句中的gbksongsl改为gbkkai或gbkfs。
上述字体定义命令可以放在sty文件中(设保存文件名为thesis.sty, 则在导言区用\usepackage{thesis}引用,后面所述的大部分命令也都可以放在sty文件中), 而不需要更改本地机器上的fd文件,以便在别的机器上也能产生同样的效果。
另外,为了方便可以定义几个简短的字体转换命令\newcommand{\song}{\CJKfamily{song}}\newcommand{\hei}{\CJKfamily{hei}}\newcommand{\kai}{\CJKfamily{kai}}\newcommand{ \fs}{\CJKfamily{fs}}以后就可以用\song, \hei, \kai和\fs在文中转换字体了。
在用\begin{CJK*}{GBK}{song}开始中文环境后,应加上\CJKindent和\CJKtilde 两句。
前者将段首缩进设为两个中文字符的宽度。
后者则是为了解决中英文混排的美观问题。
CJK*环境会吞掉跟在汉字后面的空格,从而使得源文件中的换行不会在相邻汉字之间产生空白。
但是这样一来,像下面这样输入的中英文内容中文 abc 中文就会产生如下效果中文abc 中文即abc两侧的空白不一样,很不美观。
为解决这个问题,\CJKtilde重新定义了波浪符~的意义,使得这个符号不再代表一个不可断行的空格,而是一个可断行的弹性距离,加在中文和英文之间调整它们的距离。