Latex基础学习

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{环境名称}[参数个数] [首参数的默认值]

​ {环境前定义}

​ {环境后定义}

环境参数只有在<环境前定义>中可以使用参数,在 <环境后定义>中不能在使用环境参数。

如果需要,可以把<环境前定义>中得到的参数保存在一个命令中,在<环境后定义>中使用,以解决<环境后定义>中无法使用参数的问题。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值