笔记:LaTeX不快速入门
2021年7月15日
刘海洋 · LaTeX 不快速的入门 - 跟着大神学习最纯正的 LaTeX 知识_哔哩哔哩_bilibili
真的只是入门,想速成建议查找其他示例多的教程,想仔细学建议买本书从头学
0.谈谈LaTeX
0.1 历史
- Donald Knuth 编制了TEX排版系统
- Leslie Lamport 编写了一组基于TEX的宏,即LaTeX
0.2 LaTeX印象
- 写毕业论文,据说很方便
- 论文投稿要用,别的格式不要
- 写书的工具,有的老师用它
- 可以写作业、记笔记,输出PDF
0.3 LaTeX/TEX是什么?
- TEX来自于technology的希腊词根
- LATEX = Lamport TEX
- TEX是一种专业排版软件
- TEX是一种计算机宏语言。同为宏语言的有C语言预处理宏、Linux下的M4;但功能和形式更相近的是HTML+PHP
- LATEX是定义再TEX语言上的一大组宏命令。LATEX之于TEX类似HTML+CSS之于基本的HTML
- LATEX使格式化的代码转换为排版好的文档
0.4 安装并更新TEX发行版
- TEXLive,macOS,MiKTeX
- 网页在线版:https://www.overleaf.com/
- 各个大学的把你也论文模板可能需要更新TEX发行版本后才能使用。如果不要求更新,Linux环境下也可以使用软件源里的版本(APT大法)
- Index of /CTAN/systems/texlive/Images/ (ustc.edu.cn)下载名为texlive2021.iso的文件然后安装即可
- 注意预留硬盘空间,不建议装在C盘,并且安装路径不能有英文。
0.5 准备一些靠谱的教程
- 《LATEX入门》
- 《LaTeX实用教程》
- LATEX Tutorials: A Primer
- B站视频(本文开头),知乎、CSDN等社区
1.组织文档结构
1.1 编写结构化文档
- 文档组成:标题、前言、摘要、目录、正文(篇 章 节 段)、列表、公式、引用、代码、画图……文献、索引、词汇表
- LATEX支持结构化的文档编写方式,也只有具有良好结构的文档才适合实用LATEX来编写。
- 步骤:拟定主题,列出提纲,填写内容,调整格式(平时可不要在意格式)
1.2 Markdown
- 最简单的结构标记语言
- 工具:Typora
- 记笔记比较方便
1.3 LYX
- 结构化的文档写作系统
- 所见即所得
- 可以模仿LATEX大部分功能,也可以生产LATEX代码
1.4 LATEX
- 结构化文档语言
- 可以使用任意文本编辑器编写
- 推荐VScode,安装latex workshop插件
1.5 LATEX文档基本结构
以document环境为界,之前是导言部分,内部为正文部分,之后的部分被忽略。
-
在导言区进行格式设置,正文部分套用格式
%%% 简单文档 % 导言:格式设置 \documentclass{ctexart} \usepackage[b5paper]{geometry} % 正文:填写内容 \begin{document} 使用 \LaTeX \end{docement}
-
文档部件:
- 标题:\title,\auther,\date-\maketitle
- 摘要、前言:abstract 环境/\chapter*
- 目录:\tableofcontents
- 章节:\chapter,\section,...
- 附录:\appendix+\chapter或\section...
- 文献:\bibliography
- 索引:\printindex
-
文档划分:
-
大型文档:\frontmatter、\mainmatter、\backmatter
页码、标题等会随着命令变化
一般文档:\appendix
-
层次 名称 命令 说明 -1 part \part 可选最高层 0 chapter \chapter report、book类最高层 1 section \section article类最高层(一般的论文) 2 subsection \subsection 3 subsubsection \subsubsection report,book类 默认不编号、不编目录 4 paragraph \paragraph 默认不编号、不编目录 5 subparagraph \subparagraph 默认不编号、不编目录
-
-
磁盘文件组织
-
小文档将所有内容写在同一个目录中。比较大的文档,可以将文档分成多个文件,并划分文件目录结构:
- 主文档,给出文档框架结构
- 按内容章节划分不同的文件
- 使用单独的类文件和格式文件设置格式
- 用小文件隔离复杂的图表
-
相关命令:
- \documentclass:读入文档类文件(.cls)
- \usepackage:读入一个格式文件——宏包(.sty)
- \include:分页,并读入章节文件(.tex)
- \input:读入任意的文件
-
文档结构示例:
% language-main.tex % 写的是一本书 \documentclass{book} % 调用索引表功能 \usepackage{makeidx} \makeidx \title{Languages} \auther{someone} \begin{document} \frontmatter \maketitle \tableofcontents \mainmatter \include{intro} \include{class} \backmatter \include{appendix} % 参考文献,使用一些工具管理 \bibliography{foo} \printindex \end{document}
% intro.tex \part{Introduction} \chapter{Background}
% class.tex \part{Classification} \chapter{Natural Language} \chapter{Computer Languages} \section{Machine Languages} \section{High Level Languages} \subsection{Compiled Language} \subsection{Interpretative Language} \subsubsection{Lisp} \paragraph{Common Lisp} \paragraph{Scheme} \subsection{Perl}
% appendix.tex \chapter{Appendix}
-
2.填写文档内容
建议同时参考其他完整教程
2.1 LATEX基础
\documentclass[UTF8]{article}
\begin{document}
Hello world!
\end{documents}
英文a文档rticle,中文文档ctexart
-
中文.tex文件 -->xelatex --> .pdf文件
英文.tex文件 -->pdflatex --> .pdf文件
为了生成目录、引用信息,往往需要若干次编译
2.1.1 语法结构
相比原始TEX语言,LATEX语法结构相对固定
命令:参数总在后面用花括号表示,用中括号表示可选参数
环境:\begin{env} ... \end{env}
注释:以%开头
2.1.2 LATEX宏:命令与环境
- 命令:以反斜线开通,可以带有零到多个参数
- 环境:\begin{env} ... \end{env}
2.2 正文文本
直接输入正文文本
用空格分开单词,换行相当于空格
换行敲两个回车(空一行)
-
一些符号被宏语言占用,需要转义:
\# \$ % \& \{ \} \textbackslash
键盘上没有的符号用命令输入
2.3 公式
数学模式下字体、符号、间距与正文不同,一切数学公式都要在数学模式下输入
$n=5$
行内公式:用一对$标示
-
显示公式:
- 简单的不编号公式用命令\[和\]标示
- 基本的编号公式用equation环境
- 更复杂的结构使用amsmath宏包提供的专门数学环境。(不要使用eqnarray环境)
-
数学结构:
- 上标:^
- 下标:_
- 上下画线与花括号:\overline,\underline,\overbrace,\underbrace
- 分式:\frac{分子}{分母}
- 根式:\sqrt[次数]{根号下}
- 矩阵:使用amsmath宏包提供的专门矩阵环境matrix,pmatrix,bmatrix等。特别复杂的矩阵使用array环境作为表格画出
- 其他查阅相关资料
-
数学符号:
- 数学字母a,b,数学字体\mathbb,\mathcal等
- 普通符号:如\infty(无限),\angle(角)
- 二元运算符:+,-等
- 二元关系符:=,<等
- 括号:<a,b>,使用\left,\right放大
- 标点:逗号、分号(\colon)
-
amsmath与mathtools
- amsmath是基本数学工具包,mathtools是对amsmath的补充和增强
-
科技功能
- siunitx:数字单位的一揽子解决方案(siunitx的代码有整个latex内核那么长,不要重复造轮子)
- chemformula:编写化学式
2.4 列表与文本块:
-
列表环境
- enumerate编号列表
- itemize不带编号
- description有标题
-
定理类环境
\newtheorem定义定理类环境,如
\newtheorem{thm}{定理}[section]
-
使用定理类环境,如:
\begin{thm} 一个定理 \end{thm}
2.5 诗歌和引文
- verse
- quote
- quotation
2.6 抄录代码
-
\verb命令,如:
\verb|#include <stdio.h>|
-
verbatim
\begin{verbatim} #include<stdio.h> int main() { puts("Hello world."); } \end{verbatim}
-
高级代码:语法高亮
- 使用listings宏包
- minted宏包(调用Pygment)
-
算法结构
- clrscode宏包(算法导论使用)
- algorithm2e宏包
- algorithmicx宏包的aigpseudocode格式
2.7 图表
-
画表格:
-
使用tabular环境
\begin{tabular}{|rr|} \hline 输入& 输出\\ \hline $-2$ & 4 \\ 0 & 0 \\ 2 & 4 \\ \hline \end{tabular}
使用其他工具
-
其他多种宏包:
- 单元格处理:multirow、makecell
- 长表格:longtable、xtab
- 定宽表格:xtabular
- 表线控制:booktabs、diagbox、arydshln
- 表列格式:array
- 综合应用:tabu
-
2.8 插图
-
数据集用graphicx宏包提供的\includegraphics命令
\includegraphics[width=2cm]{pkulogo.pdf}
-
代码画图:
- 优先使用外部工具画图,存储为pdf格式使用latex插入
2.9 浮动体
- figure环境
- table环境
- 使用float宏包
- 浮动体标题用\caption命令得到,自动编号
2.10 自动化工具
- 目录
- 需要多次编译
- pdf链接与书签
- hyperref产生链接与书签
- bibtex参考文献
- 一般文献都能查到bibtex格式
- 设置文件格式:
- 使用合适的.bst格式
- natbib与作者-年格式
- 利用custom-bib产生定制格式
- biblatex+Biber:文献处理新方式
3.设计文档格式
3.1 基本原则
- 格式与内容分离(不要太在意细节)
- 使用内容相关的命令与环境
3.2 使用宏包
- 作用:宏包可以将可重用的代码提取出来,相当于library
- 使用forest包生成树
- 问题:可能出现兼容性问题
- 和编程使用库的原则几乎相同
3.3 格式
-
字体字号:
- \rmfamily,\textrm{}
- \sffamily,\texsf{}
- \ttfamily,\textt{}
- 字号:\Huge,\LARGE,\large,\normalsize,\small,\footnotesize,\scriptsize,\tiny
- 中文字号:\zihao{5}\zihao{-3}
对齐:\centering,\raggedleft,\raggedright
空白间距:\hspace{2cm},\vspace{3cm}
版面布局:geometry宏包,fancyhdr宏包(页眉页脚)
-
分页断行:\linebreak(少用),\\
\pagebreak(少用),\newpage,\clearpage,\cleardoublepage
盒子:\mbox{},\parbox{4em}{内容}、minipage
3.4 格式应用于文档
-
使用在导言区单独设置格式
- 直接设置相关参数。如\parindent,\parskip,\linespread,\pagestyle
- 修改部分命令定义。如\tehsection,\labelenumi,\descriptionlabel,\figurename
- 利用工具宏包完成设置。如ctex设置中文格式,tocloft设置目录格式
-
利用自定义命令和环境
\newcommand\prg[1]{\textsf{#1}}
-
章节标题
- ctex及文档类,中文用\ctexset,西文用titlesec
浮动标题
-
列表环境
- enumitem宏包
4.个人感受
该视频仅仅大体上介绍了LaTeX怎么使用,让我们对LaTeX有一个宏观上的了解,为我们以后学好LaTeX打下了良好的基础。然而,如果我们想短时间内学会用LaTeX写论文,则不是这个视频解决的问题。