LaTex学习
编辑器
常用免费的就TeXstudio和VScode。TeXstudio 更擅长编辑 LaTeX 格式的文档,快捷键是为了 LaTeX 专门设计的,用来写作十分方便快捷。然而 TeXstudio 编辑宏包和文档类就不是很厉害了,相比来讲,VS Code 在编辑宏包和文档类方面更胜一筹。但是,绝大多数用户使用 LaTeX,是为了写文章或交作业,而对于文学编程的需求不高。所以,TeXstudio 作为一个跨平台的 LaTeX 专用编辑器,在提高效率上还是相当棒的。
TeXstudio
VSCode
LaTex?
Tex
为排版文字和数学公式开发的软件,1982年发布的排版引擎
LaTex
LaTex是一种使用Tex程序作为排版引擎的格式(format),可以理解为一层封装,最初的设计目标是分离内容和格式,以便作者能够专注于内容创作而非版式设计所谓的 TeX 发行版才是你要下载的「LaTeX」。
目前主流的下载推荐是在 Windows/Linux/macOS 平台上安装 TeX Live,macOS 也可以安装 MacTeX。
在线的LaTex:
Overleaf
TeXPage
命令行
LaTex和Tex相关软件提供了命令行接口,不像所见即所得的图形用户界面。与常规软件类似,命令行程序也都是可执行程序,系统根据环境变量在PATH中存储的路径来搜索可供执行的程序,所以要保证LaTex和Tex相关的程序所在路径包含在PATH中。
texdoc
安装好了 TeX Live,就可以开始练手了。
Start with cmd/Terminal/shell
中文版教程
texdoc lshort-zh-cn
原始文档
texdoc lshort
texdoc 是 TeX Live 为你提供的查看本地 TeX 相关文档的命令
运行代码
如果是用编辑器,使用编译或者是排版按钮,建议使用pdfLaTex或XeLaTex作为默认的编译方式。
如果是使用命令行进行编译,需要在源代码所在的目录输入
pdflatex helloworld
或
xelatex helloworld
LaTex命令
命令以反斜线\开头,主要有两种形式
- \+一串字母
\LaTex
以任意非字母符号为界限(空格、数字、标点) - \+单个非字母字符
\$
LaTex命令大小写敏感
字母命令忽略后面的所有空格,如果要人为引入空格,要在命令后面加一对花括号{}
一些命令还可以接受一些参数,参数的内容会影响,命令的效果。参数分为可选参数和必选参数,可选参数以[ ]包裹,必选参数以{ }包裹。还有些命令带 * 和不带是有效果差异的,可以当做特殊的可选参数。
LaTex的环境,另一些效果在局部生效,或者是生成特殊的文档元素,环境的用法是一对命令\begin和\end
\begin{<environment name>}[<optional arguments>]{⟨mandatory arguments⟩}
···
\end{<environment name>}
<environment name>是环境名,上下两处的名字应该一样,{⟨mandatory arguments⟩} 和 [⟨optional arguments⟩] 为环境所需的必选和可选参数。LATEX 环
境可能需要一个或多个必选/可选参数,也可能完全不需要参数。部分环境允许嵌套使用。
分组是对有些对后面所有内容都产生作用的命令来限制作用范围(比如\bfseries)。使用一对花括号{}作为分组,不会影响分组外的内容。
源代码结构
以\documentclass命令作为开头,制定了文档使用的文档类。document环境中的内容是文档正文 ,在 \documentclass 和 \begin{document} 之间的位置称为导言区。在导言区中一般会使用\usepackage 命令调用宏包,还会进行文档的全局设置。
\documentclass{...} % ... 为某文档类
% 导言区
\begin{document}
% 正文内容
\end{document}
% 此后内容会被忽略
宏包和文档类
文档类
规定了LaTex源代码所要生成的文档的性质:普通文章、书籍、PPT、简历。所以源代码的开头需用\documentclass指定文档类
\documentclass[⟨options⟩]{⟨class-name⟩}
⟨class-name⟩ 为文档类的名称,的 article, book, report,在其基础上派
生的一些文档类如支持中文排版的 ctexart / ctexbook / ctexrep,或者有其它功能的一些文档类,如 moderncv / beamer 等。
可选参数 ⟨options⟩ 为文档类指定选项,以全局地规定一些排版的参数,如字号、纸张大小、单双面等等。比如调用 article 文档类排版文章,指定纸张为 A4 大小,基本字号为 11pt,双面排版:
\documentclass[11pt,twoside,a4paper]{article}
三个标准文档 article report book 可指定的选项包括:
10pt, 11pt, 12pt 指定文档的基本字号。默认为 10pt。
a4paper, letterpaper, … 指定纸张大小,默认为美式信纸 letterpaper (8.5 × 11 英寸)。可指定选项还包括 a5paper,b5paper,executivepaper 和 legalpaper。
twoside, oneside 指定单面/双面排版。双面排版时,奇偶页的页眉页脚、页边距不同。article和 report 默认为 oneside,book 默认为 twoside。
onecolumn, twocolumn 指定单栏/双栏排版。默认为 onecolumn。
openright, openany 指定新的一章 \chapter 是在奇数页(右侧)开始,还是直接紧跟着上一页开始。report 默认为 openany,book 默认为 openright。对 article 无效。
landscape 指定横向排版。默认为纵向。
titlepage, notitlepage 指定标题命令 \maketitle 是否生成单独的标题页。article 默认为notitlepage,report 和 book 默认为 titlepage。
fleqn 令行间公式左对齐。默认为居中对齐。
leqno 将公式编号放在左边。默认为右边。
draft, final 指定草稿/终稿模式。草稿模式下,断行不良的地方会在行尾添加一个黑色方块。默认为 final。
宏包
使用LaTex的时候,时常需要依赖扩展来增强和补充LaTex的功能,这些扩展成为宏包。调用的方法非常类似于调用文档类的方法。
\usepackage[⟨options⟩]{⟨package-name⟩}
\usepackage 可以一次性调用多个宏包,在 ⟨package-name⟩ 中用逗号隔开。这种用法一般不要指定选项。
% 一次性调用三个排版表格常用的宏包
\usepackage{tabularx, makecell, multirow}
在使用宏包和文档类之前,一定要首先确认它们是否安装在你的计算机中,否则 \usepackage 等命令会报错误。
宏包(包括前面所说的文档类)可能定义了许多命令和环境,或者修改了 LATEX 已有的命令和环境。它们的用法说明记在相应宏包和文档类的帮助文档。在 Windows 命令提示符或者Linux 终端下输入命令可查阅相应文档:
texdoc ⟨pkg-name⟩
其中 ⟨pkg-name⟩ 是宏包或者文档类的名称。
LaTex用到的文件一览
除了源代码文件 .tex 以外,我们在使用 LATEX 时还可能接触到各种格式的文件。
.sty 宏包文件。宏包的名称与文件名一致。
.cls 文档类文件。文档类名称与文件名一致。
.bib BIBTEX 参考文献数据库文件。
.bst BIBTEX 用到的参考文献格式模板。
在编译过程中除了生成 .dvi 或 .pdf 格式的文档外,还可能会生成相当多的辅助文
件和日志。一些功能如交叉引用、参考文献、目录、索引等,需要先通过编译生成辅助文件,然后再次编译时读入辅助文件得到正确的结果,
.log 排版引擎生成的日志文件,供排查错误使用。
.aux LATEX 生成的主辅助文件,记录交叉引用、目录、参考文献的引用等。
.toc LATEX 生成的目录记录文件。
.lof LATEX 生成的图片目录记录文件。
.lot LATEX 生成的表格目录记录文件。
.bbl BIBTEX 生成的参考文献记录文件。
.blg BIBTEX 生成的日志文件。
.idx LATEX 生成的供 makeindex 处理的索引记录文件。
.ind makeindex 处理 .idx 生成的用于排版的格式化索引文件。
.ilg makeindex 生成的日志文件。
.out hyperref 宏包生成的 PDF 书签记录文件。