LaTeX 不快速的入门笔记

说明:

命令

命令以反斜杠开头,后面可跟花括号加参数,后面跟中括号表示可选参数

1
\documentclass[11pt,twoside,a4paper]{article}
1
2
\documentclass[UTF8]{ctexart}
% 这里的 ctexart,支持简体中文和英文的混排,指定文档的编码类型为 UTF8 格式

UTF8 是 TeXworks 编辑器默认使用的编码类型

中文的文档类为 ctexart(Chinese tex article)

.tex⇒.pdf
英文推荐:pdflatex
中文推荐:xelatex

源代码结构

documentclass 和 begin 之间的内容为导言(前言 preamble)「有点类似 HTML 当中的 head 标签」
介于 begin 和 end 之间的内容为正文「类似于 HTML 中是 body」

格式化命令

加粗:\textbf {要加粗的内容}
说明:bf 也就是 bold font 的缩写
斜体:\textit {要斜体的内容}
下划线:underline {下划线内容}

添加一个段落:输入两个换行符;「单独一个换行符只会生成一个空格」

1
2
3
4
5
6
7
% 章节
\section{章节的名字}
第一个章节中的内容
\subsection{第一个章节的子章节}
\subsubsection{三级章节}
\section{另一章节的名字}
第二个章节中的内容

插入图片

Latex 本身不支持插图功能,需要使用 graphicx 宏包辅助支持
如何控制图片的大小呢?在 graphicx 命令后加可选参数

1
2
\graphicx[width=0.5\textwidth]{这里是图片的名字}
% textwidth 表示当前文本区域的宽度,常用可选参数有:width,height,scale,angle

如果要为图片添加图注信息,则将图片嵌套在 figure 环境当中

1
2
3
4
5
\begin{figure}
\centering % 将图片居中对齐
\includegraphics{图片名字}
\caption{这个是图片的标题}
\end{figure}

列表

有序列表:enumerate
无序列表:itemize

1
2
3
4
5
\begin{itemize}
\item 列表项 1
\item 列表项 2
\item 列表项 3
\end{itemize}

数学公式

行内公式:可以使用 inline equation 直接在段落内添加公式,写在两个美元符号中间
行间公式:使用 equation 环境,「可以将环境简写为」

1
2
3
\[
公式内容
\]

一般符号:α,β……
指数上下标形式:^ and _
分式和根式

推荐:在线 Latex 公式编辑器 Equation Editor

表格

创建环境 tabular

1
2
3
4
5
6
7
\end{itemize}
\begin{tabular}{ c c c}
a11 & a12 & a13 \\
\hline
a21 & a22 & a23 \\
\hline
\end{tabular}

说明:

  • ccc 表示共表格共 3 列,且三列为居中对齐,如果是 CRR,表示第一列居中对齐,第二三列为右对齐
  • 单元格与单元格用 & 隔开
  • 表格一行结束使用两个反斜杠 \
  • 如果在参数 ccc 中插入竖线 | c|c|c|,可为表格添加垂直方向的边框
  • 水平方向的边框通过 \hline 添加
    和图片类似,如果表注,需要将表格添加的表的环境中「开始是 tabular,需要嵌入 table 环境中」,再使用 \caption {} 添加表注

注释

百分号开头,和 matlab 相同

正文文本

一个换行符等同于一个空格,多个空格的效果与一个相同
自然段分段式空一行

标题:title、author、date——maketitle
摘要 / 前言:abstract 环境 /chapter
目录:tableofcontents
章节:chapter,section
附录:appendix+chapter 或 section
文献:bibliography(自动生成参考文献)
索引:printindex

章节层次结构:

  • part:可选的最高层
  • chapter:report,book 类最高层
  • section:article 类最高层
  • subsection
  • subsubsection:默认不编号,不编目录
  • paragraph:默认不编号,不编目录
  • subparagraph:默认不编号,不编目录

正文符号

一些符号被 latex 宏语言占用,需要以命令形式输入:
比如反斜杠:\textbackslash

公式

  • 行内公式
  • 列表(显示公式)公式
    • 简单不编号的公式使用命令 \[ \]
    • 基本的编号的公式用 equation 环境(beq tab 键即可出来)
    • 更复杂的结构,使用 amsmath 宏包…

上标和下标:^ and _
分式:frac{分子}{分母}
根式:sqrt[次数]{根号下}
矩阵:amsmath 宏包提供了专门的矩阵环境,matrix,pmatrix,bmatrix 等

数学符号

  • 数学字母
  • 普通符号
    • 乘号:\times
    • 除号:\div
  • 二元运算符
  • 二元关系符:大于小于等于等
  • 括号
  • 标点:逗号,\colon 冒号,\semicolon 分号
  • 分式使用 \frac {分子}{分母} 形式书写;分式在行间正常大小显示,而如果在行中,则会被压缩
  • 根式使用 \sqrt [n 次]{内容}

数学公式

amsmath 是基本的数学工具包,在包含数学公式的文档中几乎无处不在,mathtools 则对 amsmath 做了一些补充和增强

科技功能

siunitx:数字单位的一揽子解决方案

1
2
\num{-1.2345e95}
\SI{12}{m/s}

编写化学式

chemformula 宏包(\ch 命令)

1
\ch{2 H2 + O2 -> 2 H2O}

使用Latex编辑化学反应式

列表与文本块

抄录代码

\verb | 这里是代码 |
\verbatim 环境

1
2
3
4
\begin{verbatim}
#include <stdio.h>
inputs('hello world!')
\end{verbatim}

使用Latex抄录代码

高级代码:语法高亮

使用 listings 宏包

算法结构

  • clrscode 宏包
  • algorithm2e 宏包

图表与浮动环境

画表图:使用 tabular 环境
表格转换为 latex 代码:https://tablesgenerator.com/latex_tables

在线表格转Latex

功能各异的表格宏包

  • 单元格处理:multirow、makecell
  • 长表格:longtable、xtab
  • 表线控制:booktabs(三线表)、diagbox(斜线表)
  • 综合应用:tabu

插图

graphics 宏包提供 \includegraphics 命令

代码画图

优先使用外部工具绘图,矢量图 Lnkscape(开源),Illustrator,甚至是 powerpoint(保存为 PDF 格式),数学图形使用 matlab 之类

浮动体

  • figure 环境
  • table 环境
    其他环境可以使用 float 宏包得到
    浮动体的标题使用 \caption 命令得到,自动编号

自动化工具

  • 自动目录
  • 交叉引用
  • PDF 的链接与书签(hyperref 宏包)
  • BIBTex
    • .bib 数据库
      • JabRef:管理 bib 数据库
    • \cite 命令引用
    • 末尾 \bibliography {math} 引用

设置文献格式

选用合适的.bst 格式,比如 plainnat,gbt7714-plain
natbib 与作者 - 年格式
利用 custom-bib 产生定制的格式文件
bilatex+biber:文献处理的新方式

设计文档格式

基本原则

格式与内容分离,不要在意细节上 Latex 的一大卖点

使用内容相关的命令与环境

只使用语义相关的的命令
比如推荐 emph,不推荐使用 textit
推荐 caption {流程图},不推荐 textbf {图 1:} 流程图

使用宏包

格式控制功能

字体

rmfamily,textrm
sffamily,textsf
ttfamily,texttt

字号

zihao{5},zihao{-3}

对齐

\centering,\raggedleft,\raggedright

空白间距

\hspace{2cm},vspace{3cm}

版面布局

geometry 宏包
fancyhdr 宏包(设置页眉页脚)

分页断行

linebreak、\\(一般表格的时候使用)
pagebreak,newpage,clearpage,cleardoublepage

盒子

\mbox {内容}
\parbox {4em}{内容},minipage

格式应用于文档

使用在导言区单独设置格式

直接设置相关参数:如 parindent,parskip,linespread(几倍行距),pagestyle(页眉页脚)
修改部分命令定义:thesection,labelenumi,descriptionlabe1,figurename
利用工具宏包完成设置:toclof 宏包设置目录格式

利用自定义命令和环境

例如,为程序名定义一个命令

1
2
\newcommand\prg[1]{\textsf{#1}}
程序 \prg{sort} 很有用

此后,如果想要修改 sort 的样式,那么直接修改我们自定义的命令,比如

1
2
\newcommand\prg[1]{\textbf{\huge #1}}
% huge 可以将 sort 字体变大

章节标题

ctex 宏包及文档类,用 \ctexset 定制,西文用 titlesec 等

浮动标题

caption 宏包
texdoc caption

列表环境的定制

enumitem 宏包

如设置列表不设置多倍行距

1
2
\usepackage{enumerate}
\setlist{nosep}