为什么每个人都这么着急?
Why is everyone in such a rush?
——Peter Norvig《花十年教自己编程》(Teach Yourself Programming in Ten Years)[1]
零、十秒钟速览
本篇将讲述本系列文章的教学对象和理念,LaTeX 环境安装、配置和使用,撰写并编译第一个 LaTeX 文档。
作者:Hansimov
一、教学对象
增进两性关系是提升技术实力的重要途径(反之未必)。学习 LaTeX 和恋爱一样,都需要热情和耐心。本系列将面向女朋友教学,借她之口,将许多新手常遇、而老手不屑的问题抛出,加以解答和拓展。本系列文章的教学对象是:
- 即将或已经有女朋友要教的男孩子
- 不需要男朋友只想自学的女孩子
- 自由独立、孑然一身的其他小伙伴
二、教学理念
有的教材只注重知识的授予,并不注重知识的屏蔽。在教学中知识的屏蔽十分重要,这是一个重点突出的问题。……
力求使我们在学习过程中所接触到的每一个知识点都是当前唯一要去理解的东西。我们在看到这个知识点之前,已理解了以前所有的内容;在学习这个知识点的过程中,以后的知识也不会对我们造成干扰。
我们在整个学习过程中,每一步都走得清楚而扎实,不知不觉中,由当初的一个简单的问题开始,在经历了一个每一步都相对简单的过程之后,被带入了一个深的层次。这同沿着楼梯上高楼一样,迈出的每一步都不高,结果却上了楼顶。
——王爽《汇编语言》(第三版)“前言”
给新手讲东西,“舍”比“得”更重要。我们需要学会舍弃重要但是困难的内容,每次教的都恰到好处,勉强能懂、够用就行。老手常常提醒新手,说 LaTeX 学习曲线陡峭,固然是想让新手要沉得住气,但是往往也确实没有把握好教学的层次性,往往存在盲区和阶跃。
给女朋友教东西,“爱”比“教”更重要。我们不能只顾教技术,而忽视她在学习过程中微妙的情绪变化。第一件事是要建立良好的学习氛围,让她觉得学习晦涩的 LaTeX 是一种享受,而不是觉得是负担;第二件事是帮她建立学习的信心,让她在遇到困难时的反应不是“我不会”“我好笨”,而是“我这么聪明我一定行”。
对于非计算机专业的小白,“学 LaTeX 慢”只是表面现象,更深层次的原因是“缺乏计算机和软件的使用基础”。因此我们在教 LaTeX 的同时,也应当穿插一些相关的计算机的使用基础,这样对他们以后自学其他软件也是很有帮助的。
新手教程不是和同行切磋,技术厉害是次要的,氛围良好才是主要的。本系列文章不求全面、但求有用,不求牛逼、但求体贴,力图在短时间内,让女朋友开心地学会 LaTeX,并且爱上 LaTeX。
三、环境推荐
要用 LaTeX 写出漂亮的文档,你需要两样东西:
- 一个 LaTeX 套装:帮你处理各种排版的破事
- 一个称手的文本编辑器:让你自由自在的写作码字
下面针对不同操作系统推荐好用的 LaTeX 套装。链接里附了下载地址和有用的文章。当然,不必拘泥于提供的这几个链接,多搜多看、多试多想,对今后深入了解 LaTeX 和掌握其他软件,都是大有裨益的。
这部分篇幅虽然不多,但很有可能是最耗时的。不过安装过程中,除了特别指出的地方,其他都没有门槛,随便搜一篇教程也都能满足要求。学会使用搜索引擎,最好的时间是入门时,其次是现在。关于使用搜索引擎的重要性,我们以后还会在其他地方以各种形式不断地强调。
1、LaTeX 套装推荐
- macOS:MacTeX
- 完整的 MacTeX 有 4GB 之大,因此需要等待一段时间才能下载完成。
- 根据采样,用 mac 的小伙伴还是挺多的。我主要用的环境是 Windows,当然也会在 mac 上作部分测试,因此遇到问题大家可以发在评论区。
- Windows:MiKTeX
- 如何安装MiKTeX安装教程-百度经验
- 注意:需要将“<安装路径>MiKTeXmiktexbinx64”添加到系统环境变量中
- 如何添加系统环境变量
- 这里的“安装路径”指的是你安装 MiKTeX 指定的路径,不是真打“安装路径”这几个字啊。如果你不知道自己装在哪里,可以使用 Everything 在电脑中搜索
miktexbinx64
,然后定位到对应路径并复制即可
- Linux:TeX Live
- 会用 Linux 的小伙伴就不用我多说怎么安装了
- 都 2020 年了,求求你们不要再用 CTeX 了
- 慕子:[LaTeX 发行版] 2018年,为什么不推荐使用 CTeX 套装了
每个人的机器不同,电脑环境又千差万别,因此在安装时会碰到各种问题,一言难尽,请善用百度、谷歌和必应。没法裸连谷歌的,可以试试 Google 镜像。
2、文本编辑器推荐
- 新手首推:TeXstudio
- 有很多和 LaTeX 密切相关的功能和默认配置
- 注意,macOS 版本下载在网页很下面,得往下使劲拉才能找到,或者用 Ctrl+F 搜索“mac”,然后下载 .dmg 文件
- 新手进阶:VS Code
- 说不定就爱上写代码了呢
- 作者最爱:Sublime Text
- 颜值高、响应快,试问哪个女孩子能拒绝呢
- 都 2020 年了,求求你们不要再用 WinEdt 了
- 界面丑,操作反人类
选用其他编辑器的小伙伴,你们的水平已经不需要我来推荐了。不过有空也许我可以写篇《编辑器标准大讨论》……
本系列文章的主要测试环境为:Windows + MiKTeX + TeXstudio。
四、提升 TeXstudio 的颜值
终于安装好烦人的环境了,让我们开始鼓捣软件。
打开 TeXstudio,它的默认界面是这样的:
![ecc03ad379b5643c7fd51d49f02fad4d.png](https://i-blog.csdnimg.cn/blog_migrate/fa3c8b09d4f3fb1789b2550679a25638.png)
字体又丑又小,配色也苍白。21 世纪居然还有这样丑的软件,完全劝退女朋友。不过别急,简单几个操作,我们可以将其颜值提升许多。
让我们来点开最上面菜单栏中的 Options,或者按下快捷键 Alt+O(以后你会发现,很多软件都可以使用类似方式的快捷键打开菜单栏选项)。然后点开 Configure TeXstudio > General,把原本的内容改成如下:
- Color Scheme:把 Classic 改成 Modern - dark
- 把配色改成暗色调,更具高级感,长时间工作也会降低视觉疲劳度
- Font:把 simSun 改成 微软雅黑
- 显示器上还是非衬线字体读起来更舒适一些
- Font Size:把 9 改成 12
- 老年人就该看大字体…(咣!)…不是,宝贝你在我眼里永远都是 18 岁。
- Language:推荐还是用 en(英文)
- 毕竟很多术语翻译并不统一,从长远来看还是英文更好一些,而且本身也没有非常复杂的单词,何况以宝贝的聪明才智,这点难度的英文完全不在话下…
简单设置完,TeXstudio 美容成了下面的样子:
![712e53a0fb543293a2c40153a77d8c96.png](https://i-blog.csdnimg.cn/blog_migrate/1f3e9b82ce0d3cb87cec34ca74369429.png)
虽然还是一股浓浓的 Qt 风(这里的 Qt 念作 cute,不是说这个风格可爱,事实上,Qt 是一个开发用户界面程序的框架),但是已经比默认的好很多啦。
不过我最喜欢的,自然还是清爽干净的 Sublime Text:
![592f61e8aad1e2d64e3742912c4796a8.png](https://i-blog.csdnimg.cn/blog_migrate/d7ae97491e2712264a6db2a0138335d2.jpeg)
当然啦,无论这些软件多么好看,都不及宝贝美丽心灵的万分之一…
五、构建第一个 LaTeX 文档
提升完 TeXstudio 的颜值以后,我们就可以着手写第一个文档了。
1、新建文件并输入内容
菜单栏点击 File > New(快捷键 Ctrl+N),新建一个文档,它的默认名字叫 untitled,意思是你还没给他起名,它就暂时用这个名字啦。让我们按下 Ctrl+S,保存到一个指定的位置,再起一个名字,比如“darling.tex”,可以看到标题栏已经从 untitled 变成了 darling.tex。这里的“.tex”后缀,自然就表示这是一个 TeX 文件。
然后我们把下面的内容复制到编辑器里面去:
documentclass{article} % 这一行说明文档的类型
begin{document} % begin{...} 开始一个环境
Oh darling! % 在这里写正文
end{document} % end{...} 结束一个环境
2、调整编辑器字体大小
啊,输入进去以后,感觉字好小啊,有点看不清,老年人…(“嗯?”)…不是,为了保护宝贝的眼睛,我们应该把这个字体调大一些。
打开菜单栏 Options > Configure TeXstudio > Editor,修改如下:
- Font Size:把 10 改成 12
你看,字体一下子就变大了,这下眼睛舒适多了吧。
3、构建和查看
先别急着理解上面的内容,我们按下那个绿绿的双箭头,就是那个长得很像快进的。
![b002859056f7deb6214928880a85356a.png](https://i-blog.csdnimg.cn/blog_migrate/e1552be51cf51b4ba0bfcda292bd45fe.png)
而且如果你把鼠标挪到上面等个两秒钟,它还会有个悬浮提示“Build & View (F5)”,意思就是“构建(文档)并查看”,括号里面的 F5 是指这个功能的快捷键。如果你之后经常要用它,不必每次都把鼠标移到那里点一下,直接按下 F5 就可以了。
唰!右边新弹出了一个窗口,诶嘿,正是我们写的内容“Oh darling!”(绿色框中部分)。
![ecb52afe199fbdb6a347fabab30ce100.png](https://i-blog.csdnimg.cn/blog_migrate/4689cfc52490d45e36500acdfb5b5447.jpeg)
4、PDF 预览小技巧
此时你会发现,右边的 PDF 预览只显示了页面的一部分,你可以在页面上右键,然后选择 Fit to Window,意思是“适应窗口”,这样就能显示一整个页面了。
你还会注意到,生成的文档默认带了页边距和页码。这体现了 LaTeX 的一个重要优势:它会主动帮你搞定很多细枝末节。
![1a27fea0463fb0af193f92e96473df39.png](https://i-blog.csdnimg.cn/blog_migrate/def921ab0466c535d7feffdedb6b18c2.jpeg)
而且你的光标在这个页面上显示的是一个放大镜的样子,你可以按住它,然后可以看到文字被放大了,对于老年人…(“?”)…对于宝贝保护视力很有帮助:
![26fe50fa237c060f169b5be80d0ac8dc.png](https://i-blog.csdnimg.cn/blog_migrate/2cfc696bc34575f5c163c7906fd3eb54.png)
5、修改快捷键
如果你觉得“Build & View”的快捷键 F5 离你手指太远,想用 Ctrl + B 作为它的快捷键,可以点开 Options > TeXstudio Configure > Shortcuts,然后找到 Menus > Tools > Build View,这时我们可以看到三列,分别是默认快捷键、当前快捷键和附加快捷键。双击第三列,也就是附加快捷键,然后在键盘上同时按下 Ctrl+B,确认,这时会弹出这样一个窗口:
![3d7376b56bb7950f2539a224d5c5a3f9.png](https://i-blog.csdnimg.cn/blog_migrate/7f6ad0b66e29b0f1d4fb77834bb45f2e.jpeg)
这个窗口的意思是,Ctrl+B 这个快捷键,和你在编辑器里快速输入“加粗”命令(“textbf”)的快捷键冲突了,你要是选 Yes,就会把原本的加粗快捷键覆盖掉。如果你不想覆盖,就试试另一个不冲突的快捷键即可。反正我是覆盖掉的。
你看,学 LaTeX 不光是要懂 LaTeX,有时候也要熟悉对应的软件。这两个是相辅相成的,而且也没想象中的那么难对不对,不必苦大仇深地专门花工夫学。碰到问题的时候动动脑子、搜索一下,很容易就能解决了。
其实掌握上面的内容,你就已经熟悉 TeXstudio 的 80% 了。以后软件的使用,就不再成为你写 LaTeX 的拦路虎了。
六、理解第一个 LaTeX 文档
1、文档组成
这下让我们再来理解一下之前输入的 LaTeX 文本是什么含义吧。
documentclass{article} % 这一行说明文档的类型
begin{document} % begin{...} 开始一个环境
Oh darling! % 在这里写正文
end{document} % end{...} 结束一个环境
第 1 行指明了这个文档是“article”的类型。意思是我们将这个文档排版成“article”(文章)的样子。言下之意是,还有其他类型,比如:report(报告)、book(书籍)、letter(信件)……
根据不同的写作和排版需要,LaTeX 都会帮你设置一套预先调好的样式。而且通常情况下,LaTeX 默认的样式,比你自己自作聪明手动调出来的要优雅漂亮许多…(咣!)…不是,宝贝你喜欢什么样就用什么样…
第 2 行和第 4 行,表明中间包含了一个“document”的环境。意思是,从 begin 开始到 end 结束,中间的内容都是正文。还有其他环境,比如:center(居中)、equation(公式)、figure(图片)……
第 3 行是正文。
反斜杠“”,通常是命令(command)或者宏(macro)的开头,也用于转义(下文详细介绍)。至于命令和宏具体怎么用,我们暂时不必深入了解。
花括号“{”和“}”通常用于包含环境。不要小瞧它,我们以后经常要用到它。
百分号“%”后面的内容是注释。意思是,这部分内容不输出在正文中,而是写作中间的辅助说明,普通的注释一般都会被机器忽视掉。
2、转义
在上面的样例中,我们知道百分号用于注释,那如果正文要用百分号(%)怎么办呢?很简单,在百分号前面加一个反斜杠(),也就是写成“%”的样子。
为什么这样做呢,因为 LaTeX 和 Word 不同,文件里面既包含写作内容,也包含一些告诉机器的命令(比如调样式),而这些命令通常是用反斜杠()开头的。一些符号就被用作特殊的用途,比如百分号(%)就被用来作为注释的开头,那么为了能在正文中还能使用这些字符,我们就要用某种方式告诉机器,这个字符在此处解释成字符本义,而不是特殊字符。所以就采用了在字符前加上反斜杠()的做法来告诉机器这一点。这个过程也叫做“转义”(escape),被转义掉的字符,就叫“转义字符”(escape character)。啊,这部分听得迷迷糊糊也没关系,以后多用用就理解啦。
那如果要在正文中写反斜杠字符“”怎么办呢?是不是用两个反斜杠“”?
答案是,不,应当用“textbackslash”。两个反斜杠“”的作用是换行。尽管其换行特性略微有些古怪,并非像你所想那样简单,但是我们暂时可以不必深究。
在今后的 LaTeX 学习过程中,我们会碰到非常多的细节,其实一点都不要害怕。只要你稍微花几分钟查阅和思考一下,这个细节是为了解决什么问题而设计的,很容易就记住了。如果实在理解不了,也没关系,说明你暂时还很少用它,既然很少用,那不懂也没关系对吧。就像我们大部分人学开车,也不用了解发动机是怎么设计和工作的。
3、生成的文件
这时你特别想把生成的第一个 PDF 文件发给闺蜜嘚瑟一下。可是我们只在 TeXstudio 内置的 PDF 查看器里面看到文件内容,实际的 PDF 文件哪去了呢?
你还记得你一开始保存 darling.tex 文件的地方吗,是的,生成的 PDF 文件也默认在同一个文件夹下。
![508500de0b2252ba5d0e5f59fe57a115.png](https://i-blog.csdnimg.cn/blog_migrate/8122894f7312eae00582005f9c65bd82.png)
我们一眼就能看到其中的 .tex 和 .pdf 文件。.tex 文件自然就是我们自己写的内容了。.pdf 文件自然就是得到的成品了。
剩下的几个文件,可能很多人连它的后缀名都是第一次见,不用担心,我们一般用不上它们。我只简单讲一下它们是做什么的吧,这样你也能知道机器和男朋友为了让你省心,帮你任劳任怨地干了多少脏活累活。
- .log 是日志文件,记录了机器在帮你把 .tex 文件生成 .pdf 文件时都做了什么工作,比方说导入了哪些文件和字体,机器的开销怎么样。
- .aux 是辅助(auxiliary)文件 ,比方说记录了你文档中的一些引用信息。
- .synctex.gz 是同步(synchronization)文件,用于在生成的 PDF 文件和原始的 .tex 文件互相跳转,比方说,你点击 PDF 中的某一处,会帮你定位到这段文字在 .tex 文件对应的部分,反向也是可以的。
如果没太理解,也没关系。我们的目标,始终是当一名合格的司机,而不是出色的汽车工程师。
七、总结
在本篇中,我们有如下收获:
- 介绍了本系列的教学对象(女朋友)和教学理念(适度舍弃、注重感受),我们将在之后的系列中不断增进和教学对象之间的感情,并进一步践行和深化我们的教学理念
- 初步安装和配置了 LaTeX 的环境,并根据我们的喜好和需求,对环境进行了简单的定制,样例虽然简单,但是思路却足够通用。有了这样的基础,我们的教学对象可以进行更多的尝试和探索,把环境和软件打造得更加得心应手
- 撰写了第一个 LaTeX 文档,了解了 LaTeX 文档的主要结构和基本概念,并对一些技术和实现细节进行了适度的延伸
八、家庭作业
撰写一个 LaTeX 文件并生成对应的 PDF。要求文档类型为 book,正文内容为:
Oh darling~
My love for you is 120%. {Really!}
注意:第一行两个词中间有三个空格。
九、下篇预告
下一篇我们将介绍新手应当掌握的学习方法,并对一些新手常见的疑惑和问题进行回答和解释。
参考
- ^Peter Norvig, Teach Yourself Programming in Ten Years https://norvig.com/21-days.html