智障的 LaTeX 入门教程(一)

Posted by Towdium on July 7, 2017

2nd Sep 2017 更新:
目前这个教程系列已经基本完成更新了,这里就贴个目录吧:
第一篇 安装与环境搭建
第二篇 基本语法和编译
第三篇 插入引用和相关宏包介绍
第四篇 自定义命令以及折腾相关

前言

如果有幸你点进来的话,我先道个歉,标题里说的“智障”,不是说读者,也不是说这个教程本身,而是我自己的自称。当然如果你一定要这么理解的话,我也不能说什么。如果你熟悉我的写作风格的话,你大概知道我的内容几乎是从零基础开始说的,所以我希望这是一个智障都能看懂的教程。恩,就是这样。如果我没有弃坑的话,这个教程应该会从环境搭建,一直到让你能完整的导出一篇论文。但是我不会碰 LaTeX 非常核心或者底层的东西,比如多少次编译,每次编译生成多少文件,或者是多少个发行版和各种引擎之类的差别,又或者如何用 LaTeX 解方程(误)。我只说我自己的流程,以及我自己用的引擎和发行版,至少是我两三年用下来基本可靠的方法。大概说一下,我这里编辑器用的是 Atom,发行版 TeX Live, 引擎 XeTeX,系统 Linux(Manjaro)(Windows 亦可)。你如果想用 CTeX 之流,烦请出门左转,我也知之甚少。

这个教程的前置基础是能基本会用 Atom,至于这一部分内容,你可以在 这里这里 找到一些。我这里用 Atom,并不是因为他是最强的 LaTeX 编辑环境,老实说他并不能算一个常用的 LaTeX 编辑器,而只是一个通用的文本编辑器。在我的见识中,百分之九十以上的人入门都是 WinEdit,可能是因为他是 CTeX 自带的编辑器。当然,如果你有这个功夫折腾,我不介意你去 这里 找各种 LaTeX 的环境。在你熟练运用之后,这些编辑器都是大同小异,LaTeX 的语法永远都是不变的。等你花了两个月试完各个编辑器但是还是写不出好文档的时候,你会回来给我点赞的(笑)。我讨厌写长篇的铺垫,所以我们现在就开始吧。

LaTeX 何物

简而言之,他就是码农的 word。

  • 是一种富文本格式,最终输出成凡人可读的格式(大多数情况下是 PDF)
  • 本质是一门宏语言,可以调用各种宏包来扩展语法
  • 并不是常用的所见即所得的排版程序,需要编译才能输出(通常需要数十秒)
  • 通过各个宏包的扩展,他能实现比 word 更丰富的排版格式
  • 对细节有非常细致的微调,每个单词间距,行间距,分词都极为考究,而且全部是自动的
  • 强大的学术写作支持,包括公式编辑,内文引用,文献引用,图片插入等,非常便于维护
  • 兼容性好,每个平台下对于同一源文件编译效果几乎完全一致
  • 由于是纯文本,可以轻松地使用各种版本控制工具进行管理
  • 良好的复用性,你可以把常用的内容做成模板进行复用,不会有各种隐藏符号干扰
  • 对输出格式的完全控制,他给你提供了相当大的折腾的空间,不会有 word 经常失控的感觉
  • 因为是纯文本,所以源文件超小,配合矢量图可以进一步压缩空间占用

在模板的基础上,就算是小白也可以排出非常规整的效果,以至于熟练使用 LaTeX 的用户几乎一眼就可以区分出 LaTeX 和 word 的输出文件。我随便贴一张我最近的实验报告好了:

preview

这只是我随便找的一个报告,并不能完全体现出 LaTeX 的实际能力。既然是代码,我就再随便帖一段源码好了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
\def\studentgroup{47}
\def\studentid{201219267}
\def\moduleid{ELEC273}
\def\reporttitle{Lab 5 Report}
\def\theabstract{
The aim of the experiment is to design and simulate an amplifier with ...
}
% INFORMATION END

\input{res/header}
\usepackage[hidelinks]{hyperref}
\usepackage{silence}
\WarningFilter{latex}{Text page}
\begin{document}
\input{res/titlepage}

% CONTENT

\section{Introduction}

In analogue circuits, amplifiers are essential parts for signal manipulation. ...

当然这代码也是我随手找的,并不具有参考价值。其实我的码字习惯相当不好,所以就纯当是看了意思意思就行。

LaTeX 发行版的安装

在我们开始写作之前,先要装一个编译环境,有点类似于 jre 之于 Java。这里我给出的是 Tex Live 的安装方法,这也是目前社区较为推崇的版本,其他版本还请自行解决。

如果你是 Windows 或者 Mac 用户的话,去 这里 能找到下载。Windows 下如果我没有记错的话,是一个安装器,他会从网上下载需要的模块并安装。这一过程耗时取决于你的网速,必要时请考虑科学上网。下载内容大于等于 1G。安装好之后,如果他没有帮你添加环境变量,我建议你手动添加,我的路径是 C:/texlive/2016/bin/win32,对于不同的人应该大同小异。

如果你是 Linux 用户的话,我觉得应该不必我多说啥了,不过我还是稍微说一点吧。如果你是 Ubuntu 用户,可以在 ppa 或者 apt 上找到,但是 Ubuntu 的包都偏老,容易出各种事情,而且质量参差不齐(所以我建议你用 Arch 系)。如果你是 Arch 系用户,官方源里可以直接搜索到,直接全选安装即可。你可以不用装那个额外的字体包,我目前还没有用到过。

Atom 环境配置

安装好环境之后我们还需要一个顺手的编辑器,类似于编程的 IDE,这里我们使用 Atom,通过安装一堆插件实现各种辅助功能。

首先安装这个插件 latex,效果拔群。他提供了自动化编译 LaTeX 的各种操作,能给你提供相当多的便利。此外还有 pdf-view,这个 PDF 阅读器可以和 LaTeX 良好互动,编译之后自动刷新,非常方便。 language-tex 或者 language-latex 提供了语法高亮。值得注意的一点是 Atom 本身有个 bug (不知到现在有没有修好),就是当你的文本很长的时候,他后边的一大段就没法高亮了,当然如果你习惯够好的话,基本不会遇到这个问题。

安装好插件之后,到 latex 的设置里边把 engine 设置成 xelatex。这也就是之前说的 XeTeX 实现,这一实现提供了良好的 unicode 兼容,当然如果你不用中文的话,用默认引擎也完全没有问题。Output Directory 项你可以自定义输出文件的地址。LaTeX 编译会输出一大堆文件(99% 的情况只有 pdf 对我们是有用的),所以我建议你设一个文件夹来存放输出文件,这样起码可以让你的工作路径保持干净,我这里填的是 out,当然你也可以按需自定。

Atom 内建了拼写检查,但是说实在话,能用,但是有点智障。他会把 LaTeX 的各种命令都识别成拼写错误,而且不能在字典中添加新的项目。当然,如果你不在意的话,你可以对 LaTeX 源文件开启拼写检测。你只需要在 spell-check 这个包的 Grammars 列表里添加 text.tex.latex。如果你用的是中文的 Linux 系统,你可能需要在 Locales 框里填写 en-US,配置我给在下图中:

spell-ckeck

LaTeX 在线编辑

长期使用的话我自然是建议你用本地环境的,当然如果你只是想试试,用在线环境也无妨(有时可能更简单)。这里我个人推荐 Overleaf,你可以在线编辑,并且在线编译。对于用用玩的人来说,确实是一个极好的渠道。同时它还提供富文本编辑模式,我个人是觉得相当新奇。同时他还是一个很好的模板下载网站,我们后面还会说到。不过你如果要长期用的话,本地环境应该更适合你,毕竟要管理那么多图片,引用和其他文件,全部在线我是有点不放心的。他的界面大概是这样(请无视右侧生物):

Overleaf

这一篇说就先说到环境配置完,下一篇我们一会儿见。