@[toc]
一、LaTeX源文件的基本结构
1.1 基本结构
LaTeX中主要分为导言区和正文区
1.2、导言区
导言区通常用于定义文档的格式、语言等(全局设置)。常用的LaTex命令主要有\documentclass,\usepackage等。下面分别对几个常用的命令做简单介绍。
1.2.1 \documentclass
\documentclass命令是用于设置LaTex文件所生成文档的格式. 其命令语法如下所示:
\documentclass[options]{class}
例如:
\documentclass[12pt, a4paper]{article}
意思是正文字体大小为12pt, 页面规格是A4, 使用article文档格式
1.2.2 \usepackage
\usepackage命令设置在编译LaTex文件时要导入的扩展包,例如:
\usepackage[utf8]{inputenc}
\usepackage{comment}
1.2.3 封面格式
\title{My First Paper} % 文章名字
\author{WSKH} % 作者姓名
\date{\today} % 日期
设置所要生成文档的封面内容: 文档名,作者,日期等(这只是设置了封面格式,生成封面的是\maketitle命令)。它需要放在正文区
1.3 正文区
在正文区,我们可以用公式、用命令构成文本文档。一个LaTeX文件中只能有一个document。
% 正文区(文稿区)
\begin{document}
\maketitle % 将标题打印出来
Hello \TeX
\end{document}
1.4 完整示例
% 导言区
\documentclass[12pt,a4paper]{article}
\title{My First Paper} % 文章名字
\author{WSKH} % 作者姓名
\date{\today} % 日期
% 正文区(文稿区)
\begin{document}
\maketitle % 将标题打印出来
Hello \TeX
Let $f(x)$ define:
$$f(x)=x^2+x+1$$
\end{document}
二、LaTeX中的中文处理办法
本章只针对使用TexStudio编译器的情况
2.1 设置支持中文
2.1.1 编译器设置
首先查看设置,构建,默认编译器,是否为XeLaTeX
再检查编译器的编码格式是否为UTF-8
确保右下角编码格式显示为UTF-8
2.1.2 引入ctex宏包
在导言区,加入下面代码,引入ctex宏包
\usepackage{ctex}
下面是完整的代码
% 导言区
\documentclass[12pt,a4paper]{article}
\usepackage{ctex}
\title{中文标题} % 文章名字
\author{你的名字} % 作者姓名
\date{\today} % 日期
% 正文区(文稿区)
\begin{document}
\maketitle % 将标题打印出来
中文内容
\end{document}
效果预览
2.1.3 设置文档格式
要想支持中文,除了引入ctex宏包,还可以将documentclass设置为ctexart、ctexrep、ctexbook,此时就不需要再额外引入ctex宏包了
\documentclass[12pt,a4paper]{ctexart}
\documentclass[12pt,a4paper]{ctexrep}
\documentclass[12pt,a4paper]{ctexbook}
完整代码示例:
% 导言区
\documentclass[12pt,a4paper]{ctexart}
%\usepackage{ctex}
\title{\kaishu 中文标题} % 文章名字(楷书)
\author{\heiti 你的名字} % 作者姓名(黑体)
\date{\today} % 日期
% 正文区(文稿区)
\begin{document}
\maketitle % 将标题打印出来
中文内容
\end{document}
效果预览(和引入ctex宏包效果一样):
2.2 设置中文字体格式
\title{\kaishu 中文标题} % 文章名字(楷书)
\author{\heiti 你的名字} % 作者姓名(黑体)
完整代码:
% 导言区
\documentclass[12pt,a4paper]{article}
\usepackage{ctex}
\title{\kaishu 中文标题} % 文章名字(楷书)
\author{\heiti 你的名字} % 作者姓名(黑体)
\date{\today} % 日期
% 正文区(文稿区)
\begin{document}
\maketitle % 将标题打印出来
中文内容
\end{document}
效果预览:
三、LaTeX的字体字号设置
3.1 字体属性介绍
3.2 字体族设置
% 字体族设置(罗马字体、打字机字体等)
\textrm{罗马字体}
\textsf{无衬线字体}
\texttt{打字机字体}
% 用大括号限定字体族生效范围
{\rmfamily 这里面的全都是罗马字体}
{\ttfamily 这里面的全都是打字机字体}
3.3 字体大小设置
% 字体大小设置
{\tiny Hello} \\
{\scriptsize Hello} \\
{\footnotesize Hello} \\
{\small Hello} \\
{\normalsize Hello} \\
{\large Hello} \\
{\Large Hello} \\
{\LARGE Hello} \\
{\huge Hello} \\
{\Huge Hello} \\
3.4 中文字号设置
% 中文字号设置
\zihao{5} 你好
3.5 英文字体格式设置
% 英文字体格式设置
\textbf{Hello} % 加粗
\textit{Hello} % 斜体
3.6 自定义字体设置命令
当一段话需要很复杂的字体设置时(如需要设置字号、斜体、加粗),如果使用正常的写法,就会很麻烦,特别是需要多次使用该字体时,如下所示:
{\huge{\textbf{\textit{Hello}}}}
所以我们希望将复杂命令定义为新命令,方便后面的调用
在导言区,定义命令 \myfont
\newcommand{\myfont}{\huge{\textbf{\textit{Hello}}}}
然后在正文区使用
\myfont
3.7 完整示例代码
% 导言区
\documentclass[12pt,a4paper]{ctexart}
\newcommand{\myfont}{\huge{\textbf{\textit{Hello}}}}
% 正文区(文稿区)
\begin{document}
% 字体族设置(罗马字体、打字机字体等)
\textrm{罗马字体}
\textsf{无衬线字体}
\texttt{打字机字体}
% 用大括号限定字体族生效范围
{\rmfamily 这里面的全都是罗马字体}
{\ttfamily 这里面的全都是打字机字体}
% 字体大小设置
{\tiny Hello} \\
{\scriptsize Hello} \\
{\footnotesize Hello} \\
{\small Hello} \\
{\normalsize Hello} \\
{\large Hello} \\
{\Large Hello} \\
{\LARGE Hello} \\
{\huge Hello} \\
{\Huge Hello} \\
% 中文字号设置
\zihao{5} 你好
% 英文字体格式设置
\textbf{Hello} % 加粗
\textit{Hello} % 斜体
% 复杂字体设置
{\huge{\textbf{\textit{Hello}}}} \\
\myfont
\end{document}
效果预览:
四、LaTeX的篇章结构
4.1 \section构建小节
\section{引言}
\section{问题背景}
\section{数学模型的建立与求解}
\section{结论}
4.2 \subsection 构建子小节
\section{引言}
\section{问题背景}
\section{数学模型的建立与求解}
\subsection{符号说明}
\subsection{模拟退火算法模型建立}
\subsection{模拟退火算法模型求解}
\section{结论}
4.3 \subsubsection 构建子子小节
\section{引言}
\section{问题背景}
\section{数学模型的建立与求解}
\subsection{符号说明}
\subsection{模拟退火算法模型建立}
\subsubsection{参数设置}
\subsubsection{领域动作算子}
\subsubsection{评价函数}
\subsection{模拟退火算法模型求解}
\section{结论}
4.4 生成目录
\tableofcontents
4.5 完整代码
% 导言区
\documentclass[12pt,a4paper]{ctexart}
% 正文区(文稿区)
\begin{document}
\tableofcontents
\section{引言}
\section{问题背景}
\section{数学模型的建立与求解}
\subsection{符号说明}
\subsection{模拟退火算法模型建立}
\subsubsection{参数设置}
\subsubsection{领域动作算子}
\subsubsection{评价函数}
\subsection{模拟退火算法模型求解}
\section{结论}
\end{document}
五、LaTeX中的特殊字符
5.1 空白字符
- 中文中加空格不会再编译后产生空格
- 英文中不管加多少个空格,最后编译完最多产生一个空格
- 空行分段,多个空行等同于1个
- 自动缩进,绝对不能使用空格代替
- 英文中多个空格处理为1个空格,中文中空格将被忽略
- 汉字与其他字符的间距会自动由XeLateX处理
- 禁止使用中文全角空格
\section{空白字符}
空白格 空白格
空白格 空白格
Hello Hello
Hello Hello
我们还可以根据命令加入空格
\section{控制字体宽度}
\subsection{控制空格}
a\quad b\par %1em(当前字体中M的宽度)
a\qquad b\par %2em
a\,b a\thinspace b\par %约为1/6em
a\enspace b\par %0.5em
a\ \ \ \ b\par %4个空格
a~b\par %硬空格(不能分割的空格)
\subsection{根据参数产生指定间隔}
a\kern 1pc b\par
a\kern -1em b\par %b距离a-1em,相当于把ab反向输出为ba
a\hskip 1em b\par
a\hspace{35pt}b\par
\subsection{根据指定字符的宽度来产生空白}
a\hphantom{1}b\par
a\hphantom{12}b\par
a\hphantom{123}b\par
a\hphantom{1234}b\par
a\hphantom{12345}b\par
\subsection{弹性长度空白}
a\hfill b\par %弹性空白可以让两边的字符正好到达纸张边界
5.2 控制符
\subsection{控制符}
\# \$ \% \{\} \~{} \_{} \^{} \textbackslash \&
5.3 排版符号
\subsection{排版符号}
\S \P \dag \ddag \copyright \pounds
5.4 标志符号
引入宏包
\usepackage{xltxtra}
\usepackage{texnames}
\usepackage{mflogo}
代码:
\subsection{LateX标志符号}
\subsubsection{默认自带}
\TeX{} \LaTeX{} \LaTeXe{}
\subsubsection{xltxtra宏包提供}
\XeLaTeX
\subsubsection{texnames宏包提供}
\AmSTeX{} \AmS-\LaTeX{}
\BibTeX{} \LuaTeX{}
\subsubsection{mflogo宏包提供}
\METAFONT{} \MF{} \MP{}
5.5 引号
\subsection{引号}
` ' `` '' ``你好'' `好'
5.6 连字符
\subsection{连字符}
- -- ---
5.7 非英文字符
\subsection{非英文字符}
\oe - \OE - \ae - \AE - \aa - \AA - \o - \O -
\l - \L - \ss - \SS - !` - ?`
5.8 重音字符(以o为例)
\subsection{重音符号(以o为例)}
\`o - \'o - \^o - \''o - \~o - \=o - \.o - \u{o} - \v{o} - \H{o} -
\r{o} - \t{o} - \b{o} - \c{o} - \d{o}
5.9 完整代码
\documentclass{article}
\usepackage{ctex}
\usepackage{xltxtra}
\usepackage{texnames}
\usepackage{mflogo}
\title{LateX特殊字符}
\author{WSKH}
\date{\today}
\begin{document}
\maketitle
\section{空白符号}
空白格 空白格
空白格 空白格
Hello Hello
Hello Hello
\subsection{空行分段,多个空行等同于1个}
\subsection{自动缩进,绝对不能使用空格代替}
\subsection{英文中多个空格处理为1个空格,中文中空格将被忽略}
\subsection{汉字与其他字符的间距会自动由XeLateX处理}
\subsection{禁止使用中文全角空格}
\section{控制字体宽度}
\subsection{控制空格}
a\quad b\par %1em(当前字体中M的宽度)
a\qquad b\par %2em
a\,b a\thinspace b\par %约为1/6em
a\enspace b\par %0.5em
a\ \ \ \ b\par %4个空格
a~b\par %硬空格(不能分割的空格)
\subsection{根据参数产生指定间隔}
a\kern 1pc b\par
a\kern -1em b\par %b距离a-1em,相当于把ab反向输出为ba
a\hskip 1em b\par
a\hspace{35pt}b\par
\subsection{根据指定字符的宽度来产生空白}
a\hphantom{1}b\par
a\hphantom{12}b\par
a\hphantom{123}b\par
a\hphantom{1234}b\par
a\hphantom{12345}b\par
\subsection{弹性长度空白}
a\hfill b\par %弹性空白可以让两边的字符正好到达纸张边界
\section{LateX特殊字符}
\subsection{控制符}
\# \$ \% \{\} \~{} \_{} \^{} \textbackslash \&
\subsection{排版符号}
\S \P \dag \ddag \copyright \pounds
\subsection{LateX标志符号}
\subsubsection{默认自带}
\TeX{} \LaTeX{} \LaTeXe{}
\subsubsection{xltxtra宏包提供}
\XeLaTeX
\subsubsection{texnames宏包提供}
\AmSTeX{} \AmS-\LaTeX{}
\BibTeX{} \LuaTeX{}
\subsubsection{mflogo宏包提供}
\METAFONT{} \MF{} \MP{}
\subsection{引号}
` ' `` '' ``你好'' `好'
\subsection{连字符}
- -- ---
\subsection{非英文字符}
\oe - \OE - \ae - \AE - \aa - \AA - \o - \O -
\l - \L - \ss - \SS - !` - ?`
\subsection{重音符号(以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}
六、LaTeX中的插图
6.1 基本语法
6.1.1 引入宏包
\usepackage{graphicx} %插图需要引用的包
6.1.2 指定图片路径
可以指定单个路径,也可以指定多个路径
\graphicspath{{fig/}} %指定图片在当前文件夹下的fig文件夹内
\graphicspath{{fig1/},{fig2/}} % 指定多个路径
6.1.3 语法
语法:\textbackslash includegraphics[选项]{文件名}
支持格式:EPS,PDF,PNG,JPEG,BMP
可以指定缩放比例scale,也可以指定图片宽和高:
指定缩放比例:\includegraphics[scale=0.1]{xxxx.jpg}
指定图片宽高:\includegraphics[width=6cm,height=6cm]{xxxx.jpg}
6.2 完整代码
\documentclass{article}
\usepackage{ctex}
\usepackage{graphicx} %插图需要引用的包
\graphicspath{{fig/}} %指定图片在当前文件夹下的fig文件夹内
\title{LaTeX中的插图}
\author{WSKH}
\date{\today}
\begin{document}
\maketitle
\section{LaTeX中的插图}
语法:\textbackslash includegraphics[选项]\{文件名\}\par
格式:EPS,PDF,PNG,JPEG,BMP\par
可以指定缩放比例scale,也可以指定图片宽和高\par
让我们来看看效果:\par
\includegraphics[scale=0.1]{13950325_221449856000_20005454ssasasas.jpg}\par
\includegraphics[width=6cm,height=6cm]{13950325_221449856000_20005454ssasasas.jpg}\par
\end{document}
预览效果:
七、LaTeX中的表格
7.1 基本语法
7.2 代码示例
\documentclass{article}
\usepackage{ctex}
\title{LaTeX中的插图}
\author{WSKH}
\date{\today}
%cmd窗口里输入texdoc booktab可查看帮助文档
\begin{document}
\maketitle
\begin{tabular}{l|c|p{1.5cm}|c|r} %l:左对齐 c:居中 r:右对齐 |:在该位置增加竖线 p{1.5cm}指定宽度
\hline %\hline为表格增加一条横线
姓名 & 语文 & 数学 & 外语 & 备注 \\ %\\结束这一行表格的书写
\hline
张三 & 98 & 96 & 97 & 优秀 \\
\hline
李四 & 85 & 87 & 83 & 良好 \\
\hline
王五 & 73 & 74 & 77 & 一般 \\
\hline
赵六 & 62 & 66 & 64 & 及格 \\
\hline
\end{tabular}
\end{document}
八、LaTeX中的浮动体
8.1 基本语法
8.2 浮动格式htbp
常用选项[htbp]是浮动格式:
『h』当前位置。将图形放置在正文文本中给出该图形环境的地方。如果本页所剩的页面不够,这一参数将不起作用。
『t』顶部。将图形放置在页面的顶部。
『b』底部。将图形放置在页面的底部。
『p』浮动页。将图形放置在一只允许有浮动对象的页面上。
一般使用[htb]这样的组合,只用[h]是没有用的。这样组合的意思就是latex会尽量满足排在前面的浮动格式,就是h-t-b这个顺序,让排版的效果尽量好。
!h 只是试图放在当前位置。如果页面剩下的部分放不下,还是会跑到下一页的。一般页言,用 [!h] 选项经常会出现不能正确放置的问题,所以常用 [ht]、[htbp] 等。
8.3 代码示例
\documentclass{article}
\usepackage{ctex}
\usepackage{graphicx} %插图需要引用的包
\graphicspath{{fig/}} %指定图片在当前文件夹下的fig文件夹内
\title{LaTeX中的浮动体}
\author{WSKH}
\date{\today}
\begin{document}
LaTeX中的图\ref{f1}:
\begin{figure}[htbp] % [htbp] 浮动格式
\centering % 让图片居中显示
\includegraphics[scale=0.1]{13950325_221449856000_20005454ssasasas.jpg}
\caption{图片标题} % 设置图片标题,并自动编号
\label{f1}
\end{figure}
LaTeX中的表\ref{t1}:
\begin{table}[htbp]
\centering % 让表格居中显示
\caption{表格标题} % 设置表格标题,并自动编号
\label{t1}
\begin{tabular}{l|c|p{1.5cm}|c|r} %l:左对齐 c:居中 r:右对齐 |:在该位置增加竖线 p{1.5cm}指定宽度
\hline %\hline为表格增加一条横线
姓名 & 语文 & 数学 & 外语 & 备注 \\ %\\结束这一行表格的书写
\hline
张三 & 98 & 96 & 97 & 优秀 \\
\hline
李四 & 85 & 87 & 83 & 良好 \\
\hline
王五 & 73 & 74 & 77 & 一般 \\
\hline
赵六 & 62 & 66 & 64 & 及格 \\
\hline
\end{tabular}
\end{table}
\end{document}
九、LaTeX中的数学公式
9.1 行内公式
\section{行内公式}
\subsection{美元符号}
交换律是 $a+b=b+a$
\subsection{小括号}
交换律是 \(a+b=b+a\)
\subsection{math环境}
交换律是 \begin{math}a+b=b+a\end{math}
9.2 上下标
\section{上下标}
\subsection{上标}
$x^2+y^4=z^3$
\subsection{下标}
$P_i+N_j=M_k$
9.3 希腊字母
\section{希腊字母}
$\alpha$
$\beta$
$\gamma$
$\epsilon$
$\pi$
$\omega$
$\Gamma$
$\Delta$
$\Theta$
$\Pi$
$\Omega$
9.4 数学函数
\section{数学函数}
$\log$
$\sin$
$\cos$
$\arcsin$
9.5 分式
\section{分式}
$\frac{1}{5}$
9.6 行间公式
\section{行间公式}
\subsection{美元符号}
$$f(x)=x^2+x+1$$
\subsection{中括号}
\[f(x)=x^2+x+1\]
\subsection{displaymath环境}
\begin{displaymath}
f(x)=x^2+x+1
\end{displaymath}
\subsection{自动编号equation环境}
函数\ref{e1}:
\begin{equation}
f(x)=x^2+x+1 \label{e1}
\end{equation}
9.7 简单矩阵
引入宏包
\usepackage{amsmath}
\section{矩阵}
$\begin{matrix}
0 & 1 \\
1 & 0
\end{matrix}$
$\begin{pmatrix}
0 & 1 \\
1 & 0
\end{pmatrix}$
$\begin{bmatrix}
0 & 1 \\
1 & 0
\end{bmatrix}$
$\begin{Bmatrix}
0 & 1 \\
1 & 0
\end{Bmatrix}$
$\begin{vmatrix}
0 & 1 \\
1 & 0
\end{vmatrix}$
$\begin{Vmatrix}
0 & 1 \\
1 & 0
\end{Vmatrix}$
9.8 多行公式
引入宏包
\usepackage{amsmath}
\usepackage{amssymb}
\section{多行公式}
% gather环境
\subsection{gather带编号}
\begin{gather}
a+b=b+a \\
f(x)=x^2+x+1
\end{gather}
\subsection{gather*不带编号}
\begin{gather*}
a+b=b+a \\
f(x)=x^2+x+1
\end{gather*}
% align环境,用&进行对齐
\subsection{align}
\begin{align}
a+b&=b+a \\
f(x)&=x^2+x+1
\end{align}
\subsection{align*}
\begin{align*}
a+b&=b+a \\
f(x)&=x^2+x+1
\end{align*}
% split环境,对其采用align环境对齐方式,编号在中间
\subsection{split}
\begin{equation}
\begin{split}
a+b&=b+a \\
f(x)&=x^2+x+1
\end{split}
\end{equation}
% cases环境,每行公式用&分割为两个部分,通常表示为值和后面的条件
\subsection{cases}
\begin{equation}
f(x)=\begin{cases}
1,&x>0 \\
0,&x=0 \\
-1,&x<0
\end{cases}
\end{equation}
十、LaTeX中的参考文献BibTex
10.1 编辑器设置
10.2 创建bib文件
@BOOK{mittelbach2004,
title = {The Companion},
publisher = {Addison-Wesley},
year = {2004},
author = {Frank Mittelbach and Michel Goossens},
series = {Tools and Techniques for Computer Typesetting},
address = {Boston},
edition = {Second}
}
10.3 指定参考文献样式
\bibliographystyle{plain} % 指定参考文献样式
10.4 完整代码
\documentclass{article}
\usepackage{ctex}
\bibliographystyle{plain} % 指定参考文献样式
\title{LaTeX中的参考文献BibTex}
\author{WSKH}
\date{\today}
\begin{document}
这是一个参考文献的引用:\cite{mittelbach2004}
% 根据当前目录下的10.bib文件,生成参考文献章节
% \nocite{*} % 默认情况下,只有被引用的参考文献才会被列出,如果想列出没被引用的参考文献可以使用\nocite{*}命令
\bibliography{10}
\end{document}
十一、LaTeX中的自定义命令和环境
11.1 自定义命令
\documentclass{article}
\usepackage{ctex}
% 无参数定义新命令
\newcommand\PRC{啦啦啦啦啦啦}
% 有参数定义新命令 [n] n个参数
\newcommand\loves[2]{#1 喜欢 #2}
\newcommand\hate[2]{#1 讨厌 #2}
\title{LaTeX中的参考文献BibTex}
\author{WSKH}
\date{\today}
\begin{document}
\PRC
\loves{WSKH}{吃西瓜}
\hate{西瓜}{WSKH}
\end{document}
11.2 定义环境
\documentclass{article}
\usepackage{ctex}
% 无参数定义新命令
\newcommand\PRC{啦啦啦啦啦啦}
% 有参数定义新命令 [n] n个参数
\newcommand\loves[2]{#1 喜欢 #2}
\newcommand\hate[2]{#1 讨厌 #2}
% 定义摘要环境
\newenvironment{myabstract}[1][摘要]
{\small
\begin{center}
\bfseries #1
\end{center}%
\begin{quotation}}%
{\end{quotation}}
\title{LaTeX中的参考文献BibTex}
\author{WSKH}
\date{\today}
\begin{document}
\PRC
\loves{WSKH}{吃西瓜}
\hate{西瓜}{WSKH}
\begin{myabstract}[我的摘要]
这是一段自定义格式的摘要
\end{myabstract}
\end{document}