LaTex基础学习

1. LaTex的基本结构

1.1 基本结构

LaTex中主要分为导言区和正文区

% 导言区
\documentclass{article}

\usepackage{ctex}

%正文区
\begin{document}
    Hello
\end{document}

1.2 导言区

导言区通常用于定义文档的格式、语言等(全局设置)。

1.2.1 \documentclass

\documentclass命令是用于设置LaTex文件所生成文档的格式,语法如下。

\documentclass[options]{class} 
Class 简介
article 科技论文,报告,软件文档等
IEEEtran IEEE Transactions 格式
proc 法律文书
report 长篇报告,学位论文
book 书籍
slides 幻灯片
memoir 传记
letter 信件
beamer PPT
Option 简介
12pt 文档正文字体大小(默认10pt)
a4paper、letterpaper 页面规格(默认为letterpaper或a4paper)

例如:

\documentclass[12pt, a4paper]{article}
%意思是正文字体大小为12pt,页面规格是A4,使用article文档格式
1.2.2 \usepackage

\usepackage命令设置在编译LaTex文件时要导入的扩展包,例如:

\usepackage[utf8]{inputenc}
%指定输入文件的编码为utf8,inputenc负责输入文件的解码
\usepackage{comment}
%comment宏包提供了 注释多行内容 的功能
1.2.3 封面格式
\title{My First Paper} % 文章名字
\author{WSKH} % 作者姓名
\date{\today} % 日期

这只是设置了封面格式,生成封面的是\maketitle命令。它需要放在正文区。

1.3 正文区

在正文区,我们可以用公式、用命令构成文本文档。一个LaTeX文件中只能有一个document。

% 正文区(文稿区)
\begin{document}
	\maketitle % 将标题打印出来
	Hello
\end{document}

1.4 完整示例

% 导言区
\documentclass[12pt,a4paper]{article}

\title{My First Paper} % 文章名字
\author{WSKH} % 作者姓名
\date{\today} % 日期

% 正文区(文稿区)
\begin{document}
	\maketitle % 将标题打印出来
	Hello
	Let $f(x)$ define:
	$$f(x)=x^2+x+1$$
\end{document}

2. LaTex的中文处理办法

2.1 设置支持中文

如果是 XeLaTeX 或 LuaLaTeX ,可以使用xeCJK宏包,则

\documentclass{article}
\usepackage{xeCJK} % 引入 xeCJK 宏包
\setCJKmainfont{SimSun} % 设置中文字体(如宋体),可不设置
\begin{document}
你好,世界!
\end{document}

如果是 pdfLaTeX ,可以使用 CJKutf8宏包,但配置复杂,字体选择有限。

\documentclass{article}
\usepackage{CJKutf8} % 引入 CJKutf8 宏包
\begin{document}
\begin{CJK}{UTF8}{gbsn} % gbsn 是宋体,其他选项如 gkai(楷体)
你好,世界! This is English.
\end{CJK}
\end{document}
  • \begin{CJK}{UTF8}{字体}:必须用 CJK 环境包裹中文内容,并指定字体(如 gbsngkai)。
  • 需要额外安装 CJK 字体包(如 texlive-lang-chinese)。
  • 字体选择较少,排版效果不如 xeCJKctex

如果是 XeLaTeX 或 LuaLaTeX ,但不想用 xeCJK,可以使用fontspec宏包手动设置。

\documentclass{article}
\usepackage{fontspec} % 引入 fontspec 宏包
\setmainfont{Times New Roman} % 设置英文字体
\newfontfamily\zhfont{SimSun} % 设置中文字体
\begin{document}
{\zhfont 你好,世界!} This is English.
\end{document}

但是这个需要完全手动。

除了引入ctex宏包,还可以将documentclass设置为ctexart、ctexrep、ctexbook,此时就不需要再额外引入ctex宏包了。

\documentclass[12pt,a4paper]{ctexart}
\documentclass[12pt,a4paper]{ctexrep}
\documentclass[12pt,a4paper]{ctexbook}

2.2 设置中文字体格式

例如:

\title{\kaishu 中文标题} % 文章名字(楷书)
\author{\heiti 你的名字} % 作者姓名(黑体)

完整代码:

% 导言区
\documentclass[12pt,a4paper]{article}

\usepackage{ctex}

\title{\kaishu 中文标题} % 文章名字(楷书)
\author{\heiti 你的名字} % 作者姓名(黑体)
\date{\today} % 日期

% 正文区(文稿区)
\begin{document}
	\maketitle % 将标题打印出来
	中文内容
\end{document}

2.3 字体字号设置

字体大小设置

	% 字体大小设置
	{\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

\newcommand{\myfont}{\huge{\textbf{\textit{Hello}}}}

然后在正文区使用

\myfont

3. LaTeX的篇章结构

3.1 \section构建小节

	\section{引言}
	\section{问题背景}
	\section{数学模型的建立与求解}
	\section{结论}

3.2 \subsection 构建子小节

	\section{引言}
	\section{问题背景}
	\section{数学模型的建立与求解}
	\subsection{符号说明}
	\subsection{模拟退火算法模型建立}
	\subsection{模拟退火算法模型求解}
	\section{结论}

3.3 \subsubsection 构建子子小节

	\section{引言}
	\section{问题背景}
	\section{数学模型的建立与求解}
	\subsection{符号说明}
	\subsection{模拟退火算法模型建立}
	\subsubsection{参数设置}
	\subsubsection{领域动作算子}
	\subsubsection{评价函数}
	\subsection{模拟退火算法模型求解}
	\section{结论}

3.4 生成目录

\tableofcontents

完整代码:

% 导言区
\documentclass[12pt,a4paper]{ctexart}
% 正文区(文稿区)
\begin{document}
	\tableofcontents
	\section{引言}
	\section{问题背景}
	\section{数学模型的建立与求解}
	\subsection{符号说明}
	\subsection{模拟退火算法模型建立}
	\subsubsection{参数设置}
	\subsubsection{领域动作算子}
	\subsubsection{评价函数}
	\subsection{模拟退火算法模型求解}
	\section{结论}
\end{document}

会在正文页面前面自动生成一个目录页面。

4. LaTeX中的特殊字符

4.1 空白字符

  • 中文中加空格不会再编译后产生空格
  • 英文中不管加多少个空格,最后编译完最多产生一个空格
  • 空行分段,多个空行等同于1个
  • 自动缩进,绝对不能使用空格代替
  • 英文中多个空格处理为1个空格,中文中空格将被忽略
  • 汉字与其他字符的间距会自动由XeLateX处理
  • 禁止使用中文全角空格

可以根据命令加入空格

	\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   %弹性空白可以让两边的字符正好到达纸张边界

4.2 控制符

\subsection{控制符}
\#   \$   \%   \{\}   \~{}   \_{}   \^{}   \textbackslash   \&

4.3 排版符号

\subsection{排版符号}
\S  \P  \dag  \ddag  \copyright  \pounds

4.4 引号

\subsection{引号}
`   '   ``   ''    ``你好''    `好'

4.5 连字符、非英文字符、音标等

5. LaTeX中的插图

5.1 引入宏包(导言区)

\usepackage{graphicx}  %插图需要引用的包

5.2 指定图片路径

可以指定单个路径,也可以指定多个路径(导言区)

上网查,该代码放入即报错。

5.3 语法

语法(正文区):\textbackslash includegraphics[选项]{文件名}

支持格式:EPS,PDF,PNG,JPEG,BMP 可以指定缩放比例scale,也可以指定图片宽和高: 指定缩放比例:\includegraphics[scale=0.1]{xxxx.jpg} 指定图片宽高:\includegraphics[width=6cm,height=6cm]{xxxx.jpg}

6. LaTeX中的表格

6.1 基本语法

% \begin{tabular}[<垂直对齐方式>]{<列格式说明>}
	<表项> & <表项> & ... & <表项> \\
	...
%\end{tabular}
%用\\表示换行
% 用&表示不同的列
% l-本列左对齐
% c-本列居中对齐
% r-本列右对齐
% p{<宽>}-本列宽度固定,能够自动换行

6.2 完整代码

\documentclass{article}

\usepackage{ctex}

\title{LaTeX中的表格}
\author{TZF}
\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}

7. LaTeX中的浮动体

7.1 基本语法

% 浮动体
% 实现灵活分页(避免无法分割的内容产生的页面留白)
% 给图表添加标题
% 交叉引用
% figure环境(table环境类似)
% \begin{figure}[<允许位置>]
%	<任意内容>
%\end{figure}

7.2 浮动格式htbp

常用选项[htbp]是浮动格式: 『h』当前位置。将图形放置在正文文本中给出该图形环境的地方。如果本页所剩的页面不够,这一参数将不起作用。 『t』顶部。将图形放置在页面的顶部。 『b』底部。将图形放置在页面的底部。 『p』浮动页。将图形放置在一只允许有浮动对象的页面上。 一般使用[htb]这样的组合,只用[h]是没有用的。这样组合的意思就是latex会尽量满足排在前面的浮动格式,就是h-t-b这个顺序,让排版的效果尽量好。 !h 只是试图放在当前位置。如果页面剩下的部分放不下,还是会跑到下一页的。一般页言,用 [!h] 选项经常会出现不能正确放置的问题,所以常用 [ht]、[htbp] 等。

7.3 代码示例

\documentclass{article}

\usepackage{ctex}
\usepackage{graphicx}  %插图需要引用的包
\graphicspath  %指定图片在当前文件夹下的fig文件夹内

\title{LaTeX中的浮动体}
\author{WSKH}
\date{\today}

\begin{document}
	LaTeX中的图\ref{f1}:
	\begin{figure}[htbp] % [htbp] 浮动格式
		\centering % 让图片居中显示
		\includegraphics[scale=0.1]{1305454ssas.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}

8. LaTeX中的数学公式

8.1 行内公式

	\section{行内公式}
	\subsection{美元符号}
	交换律是 $a+b=b+a$
	\subsection{小括号}
	交换律是 \(a+b=b+a\)
	\subsection{math环境}
	交换律是 \begin{math}a+b=b+a\end{math}

8.2 上下标

\section{上下标}
	\subsection{上标}
	$x^2+y^4=z^3$
	\subsection{下标}
	$P_i+N_j=M_k$

8.3 希腊字母

	\section{希腊字母}
	$\alpha$
	$\beta$
	$\gamma$
	$\epsilon$
	$\pi$
	$\omega$
	
	$\Gamma$
	$\Delta$
	$\Theta$
	$\Pi$
	$\Omega$

8.4 数学函数

	$\log$
	$\sin$
	$\cos$
	$\arcsin$

8.5 分式

$\frac{1}{5}$

8.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}

8.7 简单矩阵

需要引入宏包

	\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}$

8.8 多行公式

引入宏包

\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}

9. 参考文献BibTex

9.1 编辑器设置

视情况而定

9.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}
}

9.3 指定参考文献样式

\bibliographystyle{plain} % 指定参考文献样式

9.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}

10. 自定义命令和环境

。。。用到再搜

本博客参考博客【论文写作】LaTeX学习笔记:一文入门LaTeX(超详细)