Emacs+LaTeX快速上手本教程完全针对本校D215机房Ubuntu系统中的Emacs和LaTeX配置。关于如何配置,请看这里。本教程中涉及的LaTeX源文件和图片都可以在这里找到。目录1Emacs+AucTeX,60分钟快速入门为什么非要推荐LaTeX?这完全是出于个人喜好。从1996年开始接触计算机到现在,Windows、UNIX、MS-Word、LaTeX我都用过了。我觉得我该把我认为优秀的东西推荐给你。即使你不感兴趣,但做为计科专业的学生你应该知道它的存在。为什么非要推荐Emacs?这不仅是出于个人喜好,也不仅是因为Emacs是最优秀的编辑器,我最基本的目的是,希望每一个计科专业的学生能熟练使用键盘。1.1放松心情LaTeX很强大,但对于初学者来说,你不必关心它有多强大,因为最为常用的命令和环境不过就是那么几个。而且你也不必手工输入这些命令,只要你用Emacs+AucTeX,几个简单的快捷键就足以满足你的基本需求了。对于格式复杂的需求,通常你只要套用模版就可以解决问题了。所以,大家只要把Emacs用熟,一切迎刃而解。1.2用LaTeX写文章就是在编程我们先回忆一下用Emacs写一个hello.c的过程:1.打开Emacs;2.开始编辑一个新文件,名字叫hello.c:3.C-xC-f在Emacs窗口的最下面(也就是minibuffer里)写上新文件的名字hello.c:hello.cC-j4.向文件里写东西:5.#includestdio.h6.intmain(intargc,char*argv[])7.{8.printf(Hello,world!\n);9.return0;10.}保存:C-xC-s编译:gcchello.c运行:./a.out再来看一下用Emacs写一个hello.tex的过程:1.打开Emacs;2.开始编辑一个新文件,名字叫hello.tex:3.C-xC-f在Emacs窗口的最下面(也就是minibuffer里)写上新文件的名字hello.tex:hello.texC-jC-j4.向文件里写东西:5.\documentclass{article}6.\begin{document}7.Hello,world!8.\end{document}保存:C-xC-s编译:xelatexhello.tex看结果:evincehello.pdf怎么样?hello.c和hello.tex的编辑过程没什么分别吧。只要把Emacs用熟练,不管写什么程序,都是这么个过程。你1.不必学习VC去写C/C++,2.不必学习eclipse去写Java,3.不必学习MS-Word去写报告、幻灯片,4.不必学习……一句话,“EverythingEmacs”,可以省下大量不必要的学习时间。人生苦短,何必让你的生活被VC/eclipse/MS-Word搞得头昏脑胀呢?简单而强大,本就是计科专业学生和非专业学生应有的不同。如果你对Emacs操作还很陌生,那么现在就打开EmacsC-ht重温一下那些基本操作吧。1.2.1什么是C-xC-f?这么说,1.把你的双手在标准键盘上放好,2.左手小指稍向左移,按在capslock键上。按住别动。(D215机房的capslock键被我们改成Control键了)3.小指按在capslock上别放开,左手无名指稍向下移,在x键上按一下就放开,这就是C-x。4.小指按在capslock上别放开,左手食指在f键上按一下,这就是C-f。现在左手各指都可以放开了。这就是C-xC-f,作用是要求打开一个文件,f代表file。那么,告诉我什么是C-xC-s?什么是C-x2?什么是C-x3?什么是C-x0?什么是C-x1?什么是C-xo?什么是C-xh?什么是C-w?什么是C-g?什么是C-j?什么是C-i?什么是C-/?什么是C-k?什么是C-y?什么是C-d?什么是M-d?(M代表Meta键,也就是Alt键)什么是C-a?什么是C-e?什么是C-f?什么是C-b?什么是C-n?什么是C-p?【记住】使用Emacs的时候,一定要忘掉鼠标,两只手静静地放在标准键盘上!1.3生活可以更轻松AucTeX是Emacs的一个功能模块,为LaTeX编程提供了巨大的便利。有了AucTeX,你的LaTeX生活可以象Hello,world!一样简单。现在就跟着我,手把手地领略一下简单的乐趣吧。一切当然是从打开Emacs开始:emacs&现在开始编辑一个新文件simple.tex:C-xC-f在Emacs窗口的最下方,也就是minibuffer里,会有提示,让你输入文件名。输入simple.tex,然后按C-j。如果这时minibuffer里有如下提示:Masterfile:(defaultthisfile)...直接按C-j就可以了。知道了吧,C-j就是我们的“回车键”。如果你的手正放在【标准键盘】上,那么,左手小指向左一偏,按到的正是【Control】键(记得?CapsLock被我们改成Control了)。右手食指下不正是【j】键吗?怎么样,比回车键更方便吧。现在,开始向simple.tex文件里写东西了,用AucTeX的方式:C-cC-ee代表environment。“环境”到底是什么呢?意会吧,用用就明白了。在minibuffer里会有提示,Environmenttype:(defaultdocument)这是在问你是不是要写一篇文章啊?你当然该用C-j来告诉它“是”。这时,minibuffer又会提示,Documentclass:(defaultarticle)这是在问你是不是要写一篇article类型的文件啊?还是C-j。这时,minibuffer又会提示,Options:这是在问你是否有什么特殊选项啊?用C-j来告诉它说“不需要”。现在,你的simple.tex文件里应该有这么几行东西了:1:\documentclass{article}%Class有article,book,report,letter...可供选择2:3:\begin{document}%文章的开始4:|5:\end{document}%文章的结束在上一节里,你已经会写Hello,world!了。现在,我们要写点像模像样的东西,当然还是用简单的方式。为了更简单,我们直接套用AndrewRoberts写的simple.tex。我们把注意力放在用Emacs写文章的过程上。确保你的光标在\begin{document}和\end{document}之间,也就是文章的第4行。然后按C-cC-m这时minibuffer里会有如下提示:Macro(defaultref):\这是系统在等待你输入一个Macro,说白了就是“命令”。输入:titleC-j这时你的文章多了一行\title{}(第4行)变成了这样:1:\documentclass{article}2:3:\begin{document}4:\title{}5:\end{document}光标停在\title{}的花括号里。不用说你也知道,该输入文章的标题了。那么就给它一个标题:1:\documentclass{article}2:3:\begin{document}4:\title{HowtoStructurea\LaTeX{}Document}5:\end{document}发现了吗?凡是以反斜杠开头的都是命令,\LaTeX{}也是。它的唯一作用就是把\LaTeX这五个字母输出成一副怪样子。好了,在title下新起一行。再C-cC-m你肯定知道C-cC-m是干什么用的了吧?就是要输入一个Macro,也就是LaTeX命令。minibuffer里又会有提示:Macro(defaulttitle):\Emacs会把我们上次输入的Macro,也就是title,做为默认值提示出来。不用管它,输入:authorC-j不用我说了吧?在\author{}的花括号里输入作者的名字。当然,也可以把自己的通信地址、email写在里面。就像下面这样:1:\documentclass{article}2:3:\begin{document}4:\title{HowtoStructurea\LaTeX{}Document}5:\author{AndrewRoberts\\6:SchoolofComputing,\\7:UniversityofLeeds,\\8:Leeds,\\9:UnitedKingdom,\\10:LS21HE\\11:\emph{andyr@comp.leeds.ac.uk}}12:\end{document}注意,\\代表“强制换行”。再新起一行,加上日期:C-cC-mdateC-jC-cC-mtodayC-j其实,没有\date{\today}这一句系统会自动把今天的日期添加上的。而且\date{}里面也不一定非要是当天的日期。title,author,date一般被叫做文章的topmatter。再新起一行,写\maketitleC-j\maketitle自然是要排版topmatter了。换句话说,不要标题的话可以省略掉这个命令。现在文章变成了这样:1:\documentclass{article}2:3:\begin{document}4:\title{HowtoStructurea\LaTeX{}Document}5:\author{AndrewRoberts\\6:SchoolofComputing,\\7:UniversityofLeeds,\\8:Leeds,\\9:UnitedKingdom,\\10:LS21HE\\11:\emph{andyr@comp.leeds.ac.uk}}12:\date{\today}13:\maketitle14:15:\end{document}好奇的话,现在可以编译一下,看看PDF文件的效果:C-cC-cC-jC-cC-v如果你的xpdf没出毛病的话,一个PDF文件应该显示在屏幕上了。如果xpdf不正常,那么就打开命令行,敲:evincesimple.pdf&效果还满意吧?保持你的好奇心。在下面的操作中,你随时可以编译一下看看效果。好了,回到Emacs。现在你的光标应该停在\maketitle的下面一行。我们开始写“摘要”部分。敲键盘C-cC-e前面我们已经见到过C-cC-e了,就是要开始一个“环境”。接着来,minibuffer里现在又有提示了:Environmenttype:(defaultitemize)是在问你要开始那种环境啊?默认是开始itemize环境,因为它是最常用的环境。但我们现在要写的是“摘要”,告诉它:abstractC-jabstract就是“摘要”的意思。科技论文都是要有摘要的嘛。于是,你的文章变成了这样:1:%此处略去十数行2:3:\maketitle4:5:\begin{abstract}6:|7:\end{abstract}8:9:\end{document}光标停在\begin{abstract}和\end{abstract}之间(第6行)。好,现在往摘要部分里填点东西:1:%此处略去十数行2:3:\maketitle4:5:\begin{abstract}6:Inthisarticle,Ishalldiscusssomeofthefundamentaltopicsin7:producingastructureddocument.Thisdocumentitselfdoesnotgointo8:muchdepth,butisinsteadtheoutputofanexampleofhowtoimplement9:structure.Its\LaTeX{}source,wheninusedwithmytutorial10:providesalltherelevantinformation.11:\end{abstract}12:13:|现在,我们要接着上面的例子,写更多更长的