文章目录
0. 前言
-
最近要写一些比较正式的文档,以前一直用 Word,但非常不喜欢。
-
现在下定决心学习一下 Latex,希望通过三个笔记来入门
- 安装与 VSCode 环境搭建
- 常用语法(本文)
- 模版推荐与使用
-
参考资料
-
根据 一份不太短的LaTeX介绍 的目录可知,LaTeX 的语法有(我只挑关心的,建议如果想了解更多就看原文)
- 文档总体结构
- 字符相关,如空格、注释、特殊字符、 连字、标点等
- 文档元素,如章节、目录、标题页、列表(有序、无序)、引用、代码、表格、图片等
- 排版样式,如字体、字号、文字装饰(斜体、粗体)、段落格式、行间距
-
格式还有很多,比如引用、颜色、绘图等很多功能,本文不关注。
1. LaTeX 文档总体结构
\documentclass
用于定义了文档的性质- 如普通文档的
article/report/book
- 如中文相关的
ctexart/ctexrep/ctexbook
- 如普通文档的
- 在导言区中常会使用
\usepackage
命令调用宏包,还会进行文档的全局设置
\documentclass{...} % ... 为某文档类
% 导言区
\begin{document}
% 正文内容
\end{document}
% 此后内容会被忽略
2. 字符相关
- 空格
- 空格与Tab都会视为“空格”
- 连续多个空格视为一个空格
- 段首空格忽略
- 换行
- 一个换行符视为一个空格
- 连续两个换行符就是空行,将文字分段
- 三个及以上视为一个空行
- 也可以通过
\par
进行分段。
- 注释:
%
字符开始到行末 - 特殊字符
- 有些字符不能直接使用,需要以
\
开头,作为转义字符 - 包括
# $ % & { } _ ~ ^ \
- 这些转义字符一般都是有特殊含义,所以不能直接使用
- 有些字符不能直接使用,需要以
- 标点符号(下面的这些应该是针对英文标点的,中文标点正常用就好)
- 单引号 ‘ 和 ’ 分别用 ` 和 ’ 输入
- 双引号 “ 和 ” 分别用 `` 和 ‘’ 输入
- 有三种横线 连字号(hyphen)、短破折号(en-dash)和长破折号(em-dash),分别用 1/2/3 个
-
来实现 - 省略号使用
\ldots
而不是三个.
3. 文档元素
3.1 章节与目录
-
以下元素除了 chapter 外是 article/report/book 中使用的
- chapter 只有在 report/book 中才有
- 这些会自动生成章节标题,并编号
- 会生成目录,并影响页眉页脚
\chapter{⟨title⟩}
\section{⟨title⟩}
\subsection{⟨title⟩}
\subsubsection{⟨title⟩}
\paragraph{⟨title⟩}
\subparagraph{⟨title⟩}
\part
可实现文档分割为大的分块,不影响其他的编号- 可选参数
\section[⟨short title⟩]{⟨title⟩}
中 short title 用于页眉页脚和目录中 - 添加型号
\section*{⟨title⟩}
不编号,也不放入目录、页眉页脚中 - article 文档类带编号的层级为
\section
\subsection
\subsubsection
三级; - report 与 book 文档类带编号的层级为
\chapter
\section
\subsection
三级。
-
目录:
- 语法:
\tableofcontents
- 效果:
- report/book 会生成单独一章
- article 形成单独一节
- 生成的章节默认不写入目录
- 标题默认为
Contents
- 语法:
3.2 标题页
- 提供了标题(
\title
)、作者(\author
)、日期(\date
)信息 - article 文档类的标题默认不单独成页,而 report 和 book 默认单独成页
3.3 列表、引用、摘要、代码
- 有序和无序列表环境 enumerate 和 itemize,通过
\item
设置
\begin{enumerate}
\item An item.
\begin{enumerate}
\item A nested item.\label{itref}
\item[*] A starred item.
\end{enumerate}
\item Reference(\ref{itref}).
\end{enumerate}
- 引用:
- quote 用于引用较短的文字,首行不缩进
- quotation 用于引用若干段文字,首行缩进
Francis Bacon says:
\begin{quote}
Knowledge is power.
\end{quote}
《木兰诗》:
\begin{quotation}
万里赴戎机,关山度若飞。
朔气传金柝,寒光照铁衣。
将军百战死,壮士十年归。
归来见天子,天子坐明堂。
策勋十二转,赏赐百千强。⋯⋯
\end{quotation}
- 代码,使用
verbatim
\begin{verbatim}
#include <iostream>
int main()
{
std::cout << "Hello, world!" << std::endl;
return 0;
}
\end{verbatim}
3.4 表格
tabular
\begin{tabular}[⟨align⟩]{⟨column-spec⟩}
⟨item1⟩ & ⟨item2⟩ & … \\
\hline
⟨item1⟩ & ⟨item2⟩ & … \\
\end{tabular}
4. 排版格式
4.1 字体、字号、下划线
- 字体:使用
\xxx
命令,则该命令后所有字符都改变了字体,也可以通过花括号来设置分组,如{\xxx text}
,中英文都一样,只是输入的xxx不同。- 常见的英文字体如下
- 字号:有两种设置方式
- 方式一:与字体一样
{\xxx text}
- 方式二:
\fontsize{⟨size⟩}{⟨base line-skip⟩}
- 方式一:与字体一样
- 下划线:
\underline{text}
4.2 段落格式与间距
- 行长度
\newlength{\⟨length command⟩}
\setlength{\⟨length command⟩}{⟨length⟩}
\addtolength{\⟨length command⟩}{⟨length⟩}
- 行距:
\linespread{⟨factor⟩}
- 段落格式
% 为段落的左缩进、右缩进和首行缩进
\setlength{\leftskip}{⟨length⟩}
\setlength{\rightskip}{⟨length⟩}
\setlength{\parindent}{⟨length⟩}
% 控制段落缩进
\indent
\noindent
- 水平间距:
\hspace{}
- 垂直间距:
\vspace{}