文章目录
Latex学习笔记
软件
常用的软件有Texstudio,VS code也可以编写latex文档,我这里比较推荐的是网页版的,免去了安装软件和配置环境的麻烦,直接上手就能用:overleaf
1.LaTex源文件的基本结构
LaTex源文件分为导言区和正文区。
导言区用来进行全局的设置,添加题目、作者、时间等信息。
%导言区:进行全局设置
\documentclass{article} %其他类:book,report,letter
\usepackage{ctex} % 使用什么包显示中文取决于编译器,本文使用的是XeLaTex
\title{示例}
\author{XAL}
\date{\today}
%正文区(文稿区)
\begin{document}
\maketitle
Hello World!
Let $f(x)$ be difined by the fomula $f(x) = 3x^2-15$.
\end{document}
%一个源文件只能有一个document环境
%end{document}之后的任何字符LaTex都将忽略
-
%为注释符。
-
可以通过更改文档类来改变整个文档的结构。例,article、book、report、letter、ctexart、ctexbook、ctexrep类等。
-
可以在源文件中通过增加空行来实现换行,多个空行和一个空行效果一样,通常为了保持源文件的结构,使用空行来实现新段落的产生。
-
通过命令maketitle来显示设置的题目等信息。注:在letter类中没有maketitle的命令。
-
在$符号之间的称为数学模式,$符号之外的未文本模式。单$符号表示行内公式,双$符号表示行间公式。
上述代码运行结果如下:
2.LaTex中的中文的处理方法
可用ctexart类来代替article类和usepackage命令,实现中文文档的处理。即
\documentclass{article}
\usepackage{ctex}
和
\documentclass{ctexart}
效果一样。
例子如下:
\documentclass{ctexart}
\title{\heiti 勾股定理}
\author{\kaishu 易烊千玺}
\date{\today}
\newcommand\degree{^\circ}
\begin{document}
\maketitle
勾股定理,是一个基本的几何定理,指直角三角形的两条直角边的平方和等于斜边的平方。即,如果有 $\angle c=90\degree$,则三角形的三边应满足以下公式:
\begin{equation}
AB^2 = BC^2 + AC^2
\end{equation}
\end{document}
-
title和author中的\heiti和\kaishu分别对应于黑体和楷书,可以用于调节字体。
-
\newcommand可以定义新的命令。
-
\begin{equation}
… …
\end{equation}
用来表示带编号的行间公式。
上述代码运行结果如下:
注:在命令行输入texdoc 可以调用LaTex中的各种包的中文文档,便于查看其使用方法。
>>texdoc ctex
3.LaTex的字体号设置
\documentclass[12pt]{article}%一般只有10、11、12pt
\usepackage{ctex}
\begin{document}
%字体族设置(罗马字体、无衬线字体、打字机字体)
%字体族设置命令,作用于命令的参数
\textrm{Roman Family} \textsf{Sans Serif Family}
\texttt{Typwriter Family}
%字体声明,声明后续的字体为某某,作用于后续的文本,用{}来限制范围
{\rmfamily Roman Family} {\sffamily Sans Serif Family}
{\ttfamily Typwriter Family}
\sffamily Who are you? you find self on everyone around.
\ttfamily Are you wiser than others?
%字体系列设置(粗细、宽度)
\textmd{Medium Series} \textbf{Boldface Series}
{\mdseries Medium Series} {\bfseries Boldface Series}
%字体形状设置(直立、斜体、伪斜体、小型大写)
\textup{Upright Shape} \textit{Italic Shape}
\textsl{Slanted Shape} \textsc{Small Caps Shape}
{\upshape Upright Shape} {\itshape Italic Shape}
{\slshape Slanted Shape} {\scshape Small Caps Shape}
%中文字体
{\songti 宋体} \quad {\heiti 黑体} \quad {\fangsong 仿宋}
\quad {\kaishu 楷书}
中文字体的\textbf{粗体}与\textit{斜体}
%中文字体的粗体是用黑体表示的,斜体使用楷书表示的
%字体大小
{\tiny Hello}\\
{\scriptsize Hello}\\
{\footnotesize Hello}\\
{\small Hello}\\
{\normalsize Hello}\\
{\large Hello}\\
{\Large Hello}\\
{\LARGE Hello}\\
{\huge Hello}\\
{\Huge Hello}\\
%中文字号设置命令
\zihao {5} 你好!
%字体大小是通过一系列声明实现的,这些声明都是和normalsize相对应的,而normalsize的大小是通过文档类的参数控制的。
\end{document}
- ‘\\’(双反斜杠)表示换行,并不会产生新的段落,即首行不会缩进。可使用\par产生新的段落。
- \quad 代表当前字体下一个汉字的空白距离
\qquad 代表当前字体下两个汉字的空白距离
上述代码运行结果:
4.LaTex文档的篇章结构
通过\section、\subsection和\subsubsection来实现一级标题,二级标题和三级标题。
\documentclass{article}
\usepackage{ctex}
\title{示例}
\author{时代少年团}
\date{\today}
\begin{document}
\maketitle
\section{摘要}
\section{介绍}
\section{相关工作}
\subsection{工作1}
\subsubsection{过程}
\subsubsection{结果}
\subsection{工作2}
\subsubsection{过程}
\subsubsection{结果}
\section{总结}
\end{document}
-
可以用ctexart类调用\ctexset{}命令设置标题的格式,具体方式可查阅ctex文档,简单例子如下:
\ctexset{ section = { format+ = \zihao{-4} \heiti \raggedright, name = {,、}, number = \chinese{section}, beforeskip = 1.0ex plus 0.2ex minus .2ex, afterskip = 1.0ex plus 0.2ex minus .2ex, aftername = \hspace{0pt} }, subsection = { format+ = \zihao{5} \songti \raggedright, name = {,、}, number = \arabic{section}, beforeskip = 1.0ex plus 0.2ex minus .2ex, afterskip = 1.0ex plus 0.2ex minus .2ex, aftername = \hspace{0pt} } }
结果如下:
5.LaTex中的特殊字符
\documentclass{article}
\usepackage{ctex}
\usepackage{xltxtra}
\usepackage{texnames}
\usepackage{mflogo}
\begin{document}
\section{空白符号}
% 1em(当前字体中M的宽度)
a\quad b
% 2em
a\qquad b
% 约为1/6个em
a\,b a\thinspace b
% 0.5个em
a\enspace b
% 空格
a\ b
% 硬空格
a~b
% 1pc = 12pt = 4.128mm
a\kern 1pc b
a\kern -1em b
a\hskip 1em b
a\hspace{35pt}b
% 占位宽度,根据括号中的字符数产生空白
a\hphantom{xyzpq}b
% 弹性长度,hfiil命令用于撑满整个空间
a\hfill b
\section{\LaTeX 控制符}
\# \$ \% \{\} \~{} \_{} \^{} \textbackslash \&
\section{排版符号}
\S \P \dag \ddag \copyright \pounds
\section{\TeX 标志符号}
% 基本符号
\TeX{} \LaTeX{} \LaTeXe{}
%xltxtra宏包提供
\XeLaTeX
% texnames宏包提供
\AmSTeX{} \AmS-\LaTeX{}
\BibTeX{} \LuaTeX{}
% mflogo宏包提供
\METAFONT{} \MF{} \MP{}
\section{引号}
` ' `` '' ``你好!''
\section{连字符}
- -- ---
\section{非英文符号}
\oe \OE \ae \AE \aa \AA \o \O \l \L \SS !` ?`
\section{重音符号(以o为例)}
\`o \'o \^o \''o \~o \=o \.o \u{o} \v{o} \H{o} \r{o} \t{o} \b{o}
\c{o} \d{o}
\end{document}
-
自动缩进,绝对不能用空格代替。
-
英文中多个空格处理为1个空格,中文中空格将被忽略。
-
汉字与其他字符的间距会自动由XeLaTex处理。
-
禁止使用中文全角空格。
-
用反斜杠来产生LaTex中的控制符,但是 \\ 表示换行,所以用\textbackslash 来产生 \ 。
上述代码产生的结果如下:
6.LaTex中的插图
% 导言区:\usepackage{graphicx}
% 语法:\includegraphics[可选参数]{文件名}
% 格式:EPS,PDF,PNG,JPEG,BMP
% 用\graphicspath{{path1/},{path2/}}命令指定图像文件的搜索路径
-
关于graphicx,可用命令texdoc graphicx 调取文档查看。
-
[可选参数]:可指定图像的缩放比例,高度,宽度和旋转比例等。
scale:缩放因子
width:宽度
height:高度
angle:旋转角度
\documentclass{ctexart}
\usepackage{caption}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\centering
\includegraphics[scale=0.25]{yyqx.jpeg}
\caption{Caption}
\label{fig:my_label}
\end{figure}
\end{document}
- \begin{figure} \end{figure} 表示图像浮动体
- \centering 表示图像居中
- \caption{图像标题}
\label{}
标签,便于在正文中通过\ref{}
来引用
上述代码效果如下:
7.LaTex中的表格
使用tabular环境产生表格。
% \begin{tabular}[垂直对齐方式]{列格式说明}
% <表项> & <表项> & ... & <表项> \\
% ... ...
% \end{tabular}
\documentclass{article}
\usepackage{ctex}
\begin{document}
\begin{tabular}{|l||c|c|r|}
\hline
姓名 & 语文 & 数学 & 外语\\
\hline \hline
张三 & 87 & 100 & 93 \\
\hline
李四 & 75 & 64 & 52 \\
\hline
王五 & 80 & 83 & 75 \\
\hline
\end{tabular}
\end{document}
-
用\\表示换行
-
用|表示列表格线,||表示两个列表格线。
-
用\hline 表示行表格线,\hline \hline表示两个行表和线。
-
用&表示不同的列
-
l:本列左对齐
-
c:本列居中对齐
-
r:本列右对齐
-
p{宽}:本列宽度固定,超出指定宽度将自动换行
结果如下:
8.LaTex中的浮动体
用于实现灵活分页(避免无法分割的内容产生的页面留白,主要针对图片和表格)、绘图表添加标题和交叉引用。
用figure环境处理图片,table环境处理表格。
% figure环境(table环境与之类似)
% \begin{figure}[允许位置]
% ... ...
% \end{figure}
-
<允许位置 >参数(默认为tbp):
h,此处(here)——代码所在的上下文位置
t,页顶(top)——代码所在页面或之后页面的顶部
b,页底(bottom)——代码所在页面或之后页面的底部
p,独立一页(page)——浮动页面
-
标题控制:可用caption、bicaption等宏包来设置标题。
-
并排与子图表:使用subcaption、subfig、floatrow等宏包来实现。
-
绕排:使用picinpar、wrapfig等宏包实现。
-
可使用\centering 命令来使图表居中。
9.LaTex中的数学公式
通常用amsmath宏包来排版数学公式,矩阵等。
amssymb宏包可以实现花体符号输出。
基本数学公式和字符排版
\documentclass{article}
\usepackage{ctex}
\usepackage{amsmath}
\begin{document}
\section{简介}
\LaTeX{}将排版内容分为文本模式和数学模式。文本模式用于普通文本排版,数学模式用于数学公式排版。
\section{行内公式}
\subsection{美元符号}
交换律是$a+b=b+a$, 如 $1+2=2+1$.
\subsection{小括号}
交换律是\(a+b=b+a\), 如 \(1+2=2+1\).
\subsection{math环境}
交换律是 \begin{math}
$a+b=b+a$
\end{math}
, 如 \begin{math}
1+2=2+1
\end{math}
\section{上下标}
\subsection{上标}
$3x^2 - x + 2 = 0$
$3x^20 - x + 2 = 0$
$3x^{20} - x + 2 = 0$
\subsection{下标}
$a_1, a_2, a_3, a_40, a_{40}$
\section{希腊字母}
$\alpha$
$\beta$
$\gamma$
$\epsilon$
$\omega$
$\Gamma$
$\Delta$
$\Theta$
$\Pi$
$\Omega$
$\alpha^3 + \beta^2 + \gamma = 0$
\section{数学函数}
$\log$
$\sin$
$\cos$
$\arcsin$
$\arccos$
$\ln$
%$\sqrt[次方]{根式中的内容}$ ——用于表示根式
$\sin^2 x + \cos^2 x = 1$
$\log_e x = \ln x$
$\sqrt[4]{x^2 + y^2}$
\section{分式}
%\frac{分子}{分母}
大约是原体积的$3/4$。
大约是原体积的$\frac{3}{4}$。
大约是原体积的$\frac 34$。
\section{行间公式}
\subsection{美元符号}
交换律是$$a+b=b+a$$
如
$$1+2=2+1$$.
\subsection{中括号}
交换律是\[a+b=b+a\]
如
\[1+2=2+1\].
\subsection{displaymath环境}
交换律是
\begin{displaymath}
a+b=b+a
\end{displaymath}
如
\begin{displaymath}
1+2=2+1
\end{displaymath}.
\subsection{equation环境——自动编号公式}
交换律见下式\ref{eq1}
\begin{equation}
a+b=b+a \label{eq1}
\end{equation}
如
\begin{equation}
1+2=2+1
\end{equation}.
\subsection{equation*环境——不编号公式}
交换律是
\begin{equation*}
a+b=b+a
\end{equation*}
如
\begin{equation*}
1+2=2+1
\end{equation*}.
\end{document}
- 在上下标中均可用{}来限定上下标的范围,在{}可以是单个数字,多个公式,也可以是公式。
- 在math环境中输入非数学公式的内容(如 各种标点符号及中文)将不会在文档中显示。
\label{key}
和\ref{key}
对应,用于交叉引用。
上述结果如下:
矩阵排版
\documentclass{ctexart}
\usepackage{amsmath}
\newcommand{\adots}{\mathinner{\mkern2mu%
\raisebox{0.1em}{.}\mkern2mu\raisebox{0.4em}{.}%
\mkern2mu\raisebox{0.7em}{.}\mkern1mu}}
\begin{document}
% 矩阵环境,用&分隔列,用\\分割行
\[
\begin{matrix}
0 & 1 \\
1 & 0
\end{matrix} \qquad
% pmatrix环境 --- ( )
\begin{pmatrix}
0 & -i \\
i & 0
\end{pmatrix} \qquad
% bmatrix环境 --- [ ]
\begin{bmatrix}
0 & -1 \\
1 & 0
\end{bmatrix} \qquad
% Bmatrix环境 --- { }
\begin{Bmatrix}
1 & 0 \\
0 & -1
\end{Bmatrix} \qquad
% vmatrix | |
\begin{vmatrix}
a & b \\
c & d
\end{vmatrix} \qquad
% Vmatrix --- || ||
\begin{Vmatrix}
i & 0 \\
0 & -i
\end{Vmatrix}
\]
% 可以使用上下标
\[
A = \begin{pmatrix}
a_{11}^2 & a_{12}^2 & a_{13}^2 \\
0 & a_{22} & a_{23} \\
0 & 0 & a_{33}
\end{pmatrix}
\]
% 常用省略号:\dots、 \vdots、 \ddots
\[
A = \begin{bmatrix}
a_{11} & \dots & a_{1n} \\
& \ddots & \vdots \\
0 & & a_{nn}
\end{bmatrix}
\]
% 自定义省略号
\[
A = \begin{bmatrix}
a_{11} & \dots & a_{1n} \\
\adots & \ddots & \vdots \\
0 & & a_{nn}
\end{bmatrix}
\]
%分块矩阵(矩阵嵌套)
\[
\begin{pmatrix}
\begin{matrix}1 & 0 \\0 & 1 \end{matrix}
& \text{\Large 0} \\ % text命令用于临时切换到文本模式
\text{\Large 0} & \begin{matrix}
1&0\\0&-1 \end{matrix}
\end{pmatrix}
\]
% 三角矩阵
\[\begin{pmatrix}
a_{11} & a_{12} & \cdots & a_{1n} \\
& a_{22} & \cdots & a_{2n} \\
& & \ddots& \vdots \\
\multicolumn{2}{c}{\raisebox{1ex}[0pt]{\huge{0}}}
& & a_{nn} % raisebox 调整高度
\end{pmatrix}
\]
% 跨列省略号: \hdotsfor{<列数>}
\[
\begin{pmatrix}
1 & \frac{1}{2} & \dots & \frac{1}{n} \\
\hdotsfor{4} \\
m & \frac{m}{2} & \dots & \frac{m}{n}
\end{pmatrix}
\]
% 用array环境构造复杂矩阵
\[
% @{<内容>}-添加任意内容,不占表项计数,此处添加一个负值空白,表示向左移-5pt的距离
% c指令第一列居中对齐,l 指令最后一列居左对齐
\begin{array}{c@{\hspace{-5pt}}l}
% 第一行,第一列
\left(
\begin{array}{ccc|ccc}
a & \dots & a & b & \cdots & b\\
& \ddots & \vdots & \adots \\
& & a & b \\ \hline
& & & c & \cdots & c \\
& & & \vdots & & \vdots \\
\multicolumn{3}{c|}{\raisebox{2ex}[0pt]{\Huge 0}}
& c & \cdots & c
\end{array}
\right)
&
% 第1行第2列
\begin{array}{l}
%\left.仅表示与\right\}配对,什么都不输出
\left.\rule{0mm}{7mm}\right\}p \\
\\
\left.\rule{0mm}{7mm}\right\}q
\end{array}
\\[-5pt]
% 第2行第1列
\begin{array}{cc}
\underbrace{\rule{17mm}{0mm}}_m & %underbrace 横向大括号后面设置尺寸,下标的方式指定m标识符
\underbrace{\rule{17mm}{0mm}}_m
\end{array}
& % 第2行,第2列
\end{array}
\]
\end{document}
上述结果如下:
10.LaTex中引用参考文献
BibTex
首先, 创建一个.bib文件,例如ref.bib
在\end{document}之前加上下列命令引用参考文献文件:
\bibliographystyle{plain}
\bibliography{ref}
11.LaTex中的自定义命令和环境
\newcommand和\renewcommand
使用\newcommand 定义命令,命令只能由字母组成,不能以\end 开头。
语法:\newcommand 命令 [参数个数] [首参数的默认值]{具体定义}
-
参数个数最多为9个,使用时用 #1,#2,… … ,#9表示
-
指定参数的同时也可以指定首个参数的默认值,那么这个命令的第一个参数就成了可选参数(要使用中括号[]指定),通常参数用{}来指定。
使用\renewcommand 命令来重定义已有命令。
语法:\renewcommand 命令[参数个数] [首参数的默认值]{具体定义}
\newenvironment和\renewenvironment
使用\newenvironment 来定义新环境,\newenvironment 来重定义已有环境。
语法:
\newenvironment{环境名称}[参数个数] [首参数的默认值]
{环境前定义}
{环境后定义}
\renewenvironment{环境名称}[参数个数] [首参数的默认值]
{环境前定义}
{环境后定义}
环境参数只有在<环境前定义>中可以使用参数,在 <环境后定义>中不能在使用环境参数。
如果需要,可以把<环境前定义>中得到的参数保存在一个命令中,在<环境后定义>中使用,以解决<环境后定义>中无法使用参数的问题。