LaTeX快速入门

news2024/9/27 23:33:22

文章目录

  • LaTeX快速入门
    • 一、 概述
      • 1、 简介
      • 2、 环境配置
      • 3、文件结构
      • 4、 文档结构
    • 二、 基本概念
      • 1、 第一个LaTeX程序
      • 2、 宏包和文档类
        • 2.1 宏包
        • 2.2 文档类
      • 3、 文件组织的方式
      • 4、 相关术语和概念
    • 三、 排版文字
      • 1、 文字编码
      • 2、 排版中文
      • 3、 LaTeX中的字符
        • 3.1 空格和分行
        • 3.2 注释
        • 3.3 特殊字符
        • 3.4 标点符号
          • 3.4.1 引号
          • 3.4.2 破折号和连字号
          • 3.4.3 省略号
          • 3.4.4 拉丁文扩展与重音
          • 3.4.5 其他符号
          • 3.4.5 LaTeX标志
      • 4、 断行和断页
          • 4.1 单词间距
          • 4.2 手动断行和断页
    • 四、 文档元素
      • 1、 章节和目录
        • 1.1 章节标题
        • 1.2 目录
        • 1.3 文档结构的划分
        • 1.4 book 排版示例
      • 2、 标题页
      • 3、 交叉引用
      • 4、 脚注和边注
      • 5、 特殊环境
        • 5.1 列表
          • 5.1.1 有序列表
          • 5.1.2 无序列表
          • 5.1.3 描述
        • 5.2 对齐环境
        • 5.3 引用环境
        • 5.4 代码环境
        • 5.5 表格
        • 5.6 图片
    • 五、 排版数学公式
      • 1、 AMS 宏集
      • 2、 公式排版基础
        • 2.1 行内和行间公式
        • 2.2 数学模式
      • 3、 多行公式
        • 3.1 长公式折行
        • 3.2 多行公式
        • 3.3 公用编号的多行公式
      • 4、 数学公式的字体控制
        • 4.1 数学字母字体
        • 4.2 加粗的数学符号
        • 4.3 数学符号的尺寸
    • 六、 参考文献
      • 1、 文献数据库
      • 2、 生成参考文献
      • 3、 内置文献样式

LaTeX快速入门

一、 概述

1、 简介

TeX 是由Donald Knuth创造的基于底层编程语言的电子排版系统(TEX是Honeywell公司在1980年为其Text Executive文本处理系统注册的商标,它与 TeX是两回事)。使用TeX可以对版面做精细的操作,生成精美的文档。TeX提供版面编辑的底层命令,但是使用时操作复杂,工作效率不高. TeX允许用这些底层命令定义出可以执行复杂操作的扩展命令. LaTex是由Leslie Lamport开发的的TeX扩展命令集合[5]。LaTexj通过整合常用的版面设置操作,降低排版的工作量和难度。 LaTex 强大的排版功能,特别是对科技文档的支持,已经使它成为撰写科研论文的事实上的标准。

TeX系统生成的是DVI(Device Independent)文件。随着pdf文件格式的流形,LaTex在支持DVI文件格式的同时也可生成PDF格式文件。

TeX在不同的硬件和操作系统上有不同的实现版本。目前Unix/Linux上常用的TeX系统是teTeX,Windows中有MiKTeX和fpTeX。CTeX是中文套装。下面仅简要介绍在使用LaTex中一些常见问题。

2、 环境配置

windowds中,我们可以下载texlive来进行LaTeX的编译,使用texsudio来进行LaTeX代码的编辑

或者,我们可以使用OverLeaf来进行在线的LaTeX代码编辑

3、文件结构

4、 文档结构

LaTeX支持结构化的文档编写方式,也只有良好结构的文档才适合使用LaTeX来进行编写

导言区一般会使用\usepackage 调用宏包,以及会进行对文档的全局设置。

正文区式文档的正文部分,进行内容的编写

二、 基本概念

1、 第一个LaTeX程序

\documentclass{article}

\begin{document}
Hello World!
\end{document}

在LaTeX中的命令以反斜线开头:

  • 反斜线加一串字母,表示为一个命令
  • 反斜线加单个非字母符号,其为转义的作用

注意,LaTeX命令是对大小写敏感的,,同时,LaTeX会忽略命令后面的连续的所有空格,如果要认为引入空格,则:

2、 宏包和文档类

2.1 宏包

在使用LaTeX时,时常需要依赖一些拓展来增强或补充LaTeX的功能,比如排版复杂的表格、插入图片、增加颜色甚至超链接等。这些拓展称为宏包。调用宏包的方法非常类似调用文档类的方法\usepackage[options]{package-name}

比如,导入一个支持中文的宏包,

\usepackage{ctex}  % 其使得文档可以支持中文

在终端中,我们可以使用,来查看宏包的帮助文档:

texdoc package-name  

2.2 文档类

文档类规定了LaTeX源代码需要生成的文档的性质(普通文章、书籍、样式文稿、个人简历等等),LaTeX源代码的开头,使用\documentclass[options]{class-name}来指定文档类

参数说明:

  • options:其为可选参数,全局规定一些排版的参数,比如字号、纸张大小,单双面等

    • 如,规定文档类排版文章,规定纸张为A4纸大小,基本字号为11pt,双面排版:

      \documentclass[11pt,twoside,a4paper]{article}
      
    • 可选项包括:

  • class-name:指定文档类的名称

    • LaTeX提供的基础文档类:

      类型描述
      article文章格式的文档类,广泛用于科技论文、报告、说明文档等
      report长篇报告格式的文档类,具有章节结构,用于综述、长篇论文、简单的书籍等
      book书籍文档类,包含章节结构和前言、正文、后记等结构
      proc基于article文档类的一个简单的学术文档模板
      slides幻灯格式的文档类,使用无衬线字体
      minimal一个及其精简的文档类,只设定了纸张大小和基本字号,用作代码测试的最小工作示例

3、 文件组织的方式

当编写长篇文档时,例如编写书籍、毕业论文时,单个源文件会使修改、校对变得非常困难。这时候,我们可以将源文件分割成若干个文件,例如将每章内容单独写在一个文件中,会大大简化修改和校对的工作。

在源代码中插入.tex文件的方法\include{filename}

例如:

\include{chapters/file}  % 使用相对路径导入
\include{/home/SteveAnthony/file}  % 使用绝对路径导入

4、 相关术语和概念

引擎:全称为排版引擎,是编译源代码并生成文档的程序,如pdfTEX,XETEX等。有时也称为编译器

格式:是定义了一组命令的代码集。LaTeX就是最广泛应用的一个格式

编译命令:是实际调用的、结合了引擎和格式的命令,如xelatex命令是结合XETEX引擎和LaTeX格式的一个编译命令

三、 排版文字

1、 文字编码

ASCII编码:ASCII编码覆盖了基本的拉丁字母、数字和符号;以及一些不可打印的控制字符(如换行符、制表符等),其主要是排版以英文为主的西文文档,其并没有对中文等语言进行支持。

扩展编码:在ASCII之后,各种语言都发展了自己的编码,如,GB2312和GBK等

UTF-8编码:Unicode是一个多国字符的集合,覆盖了几乎全球范围内的语言文字。utf-8是Unicode的一套编码方案,一个字符由一到四个字节编码,其中单字节的编码与ASCII编码兼容。

2、 排版中文

用LaTeX排版中文需要解决两方面的问题:

  1. 对中文字体的支持
  2. 对中文排版中的一些细节的处理,包括在汉字之间控制断行、标点符号的规则、、中英文之间插入间距等

使用CJK宏包对中文字体的支持比较麻烦,推荐使用ctex宏包

  • ctex宏包和文档类进一步封装了CJK、xeCJK、luatexja等宏包,使得用户在排版中文时,不需要再考虑排版引擎的细节。

ctex文档类对LaTeX的标准文档类进行了封装,使用ctexart/ctexrep/ctexbook,可以识别操作系统和Tex发行版中安装的中文字体。如:

\documentclass{ctexart}
\begin{document}
在LaTeX中排版中文。同时,其也可以进行中文和英文的混排。
% 使用一个空行代表新的一个段落
Hello World!的意思是你好世界。
\end{document}

3、 LaTeX中的字符

3.1 空格和分行

LaTeX源码中,空格键和Tab键输入的空白字符视为空格。连续的若干个空白字符视为一个空格,一行开头的空格忽略不记。

行末的换行符号视为一个空格;但连续两个换行符,也就是空行,会将文字进行分段。多个空行会视为一个空行。也可以在汉末使用\par命令来进行分段

3.2 注释

在LaTeX中,使用一个百分号代表注释,编译器不会识别注释后面的内容

\documentclass{ctexart}
\begin{document}
% 这是一个注释哦,不会识别呢!
\end{document}

3.3 特殊字符

下面的字符,在LaTeX中有特殊用途,直接输入这些字符得不到对应的符号,我们需要在这些符号的前面加一个反斜杆,才能输出下面的符号,类似于编程中的转义符。

# $ % & { } _ ^ ~ \

3.4 标点符号

中文的标点符号使用中文输入法输入即可,一般不需要过多留意。而输入西文的标点符号时,有不少地方需要注意。

3.4.1 引号

LaTeX中单引号''使用``'输入;双引号""使用```''输入。

比如:

``Please press the `x' key.'' 

中文的引号在使用 ctex 包的情况下,中文引号可以通过输入法直接输入

3.4.2 破折号和连字号

LaTeX中有三种长度的横线可以使用:连字号(用来组成复合词)、短破折号(连接数字表示范围)和长破折号(连接单词)。

daughter-in-law, X-rated\\
pages 13--67\\
yes---or no?
3.4.3 省略号

LaTeX提供了\ldots命令表示省略号,相对于输入三个点的方式更为合理。

one, two, three, \dots ont hundred.
3.4.4 拉丁文扩展与重音

3.4.5 其他符号
\P{} \S{} \dag{} \ddag{}
\copyright{} \pounds{}
\textasteriskcentered
\textperiodcentered
\textbullet
\textregistered{} \texttrademark

更多的符号,由专门的宏包来支持。

这篇文章收集了在Tex发行版中可用的符号所依赖的宏包:https://mirrors.tuna.tsinghua.edu.cn/CTAN/info/symbols/comprehensive/symbols-a4.pdf

3.4.5 LaTeX标志

4、 断行和断页

LaTeX将文字段落在合适的位置进行断行,尽可能做到每行的疏密程度匀称,单词间距不会过宽或过窄。文字段落和公式、图标等内容从上到下顺序排布,并在合适的位置断页,分割成均匀的页面。

4.1 单词间距

在西文排版中,断行的位置邮箱选取在两个单词之间,也就是在源代码中输入的空格。空格本身通常生成一个间距,它会根据行宽和上下文自动调整,文字密一些的地方,单词词距就略窄,

文字在单词间的空格处断行时,空格生成的间距随之舍去。我们可以使用字符~输入一个不会断行的空格,通常用在英文人名、图表名称等上下文环境:

Fig. ~2a \\ 
Donald~E. Knuth
4.2 手动断行和断页

如果我们确实需要手动断行,可以使用\\[length]\newline\\*[length]

  • \\:可以带可选参数length,用于在断行处向下增加垂直间距,同时,其也可以在表格、公式等地方用于换行
  • \newline:不带可选参数,其只能用于文本段落
  • \\*:表示禁止在断行处分页

注意:

  • 使用\\断行命令不会令内容另起一段,而是在段落中直接开始新的一行

断页的命令使用\newpage\clearpage

  • \newpage:在双栏排版模式中,其可以起到另起一栏的作用
  • \clearpage:在双栏排版模式中,其能够令起一页

四、 文档元素

1、 章节和目录

1.1 章节标题

一篇结构化的、条理清晰文档一定是层次分明的。通过不同的命令分割为章、节、小节。三个标准文档类 article、report和book提供了划分章节的命令:

\documentclass{ctexbook}
\begin{document}
\chapter{章节}
\section{节}
\subsection{小节}
\subsubsection{小小节}
\paragraph{段落}
\subparagraph{小段落}
\end{document}

其中,\chapter只在report和book文档类中有定义。这些命令生成章节标题,并能够自动编号。同时,还有\part命令,用来将整个文档分割为大的分块,但不影响章节的编号

每个命令有两种变体:

  • 带可选参数的变体:\section[short title]{title}

    标题使用title,在目录和页眉页脚中使用short title参数

  • 带星号的变体:\section*{title}

    标题不带编号,也不生成目录项和页眉页脚

1.2 目录

使用\tableofcontents来生成目录

这个命令会生成单独的一章或一节,目录标题默认为Content

1.3 文档结构的划分

所有标准文档都提供了一个\appendix命令将正文和附录分开,使用\appenix后,最高一级章节改为使用拉丁字母编号,从A开始。

book 文档类还提供了前言、正文、后记结构的划分命令:

\frontmmatter:前言部分,页码使用小写罗马数字;其后的\chapter不编号

\mainmatter:正文部分,页码使用阿拉伯数字,从1开始级数;其后的章节编号正常

\backmatter:后记部分,页码格式不变,继续正常计数;其后的\chapter不编号

以上命令还可以和\appendix结合,生成有前言、正文、附录、后记四部分的文档。

1.4 book 排版示例

\documentclass{book}
% 导言区,加载宏包和各项设置,包括参考文献、索引等
\usepackage{makeidx}
% 调用 makeidx 宏包,用来处理索引
\makeindex
% 开启索引的收集
\bibliographystyle{plain}
% 指定参考文献样式为 plain
\begin{document}
\frontmatter
% 前言部分
\maketitle
% 标题页
\include{preface}
% 前言章节 preface.tex
\tableofcontents
\mainmatter
% 正文部分
\include{chapter1}
% 第一章 chapter1.tex
\include{chapter2}
% 第二章 chapter2.tex
...
\appendix
% 附录
\include{appendixA}
% 附录 A appendixA.tex
...
\backmatter
% 后记部分
\include{epilogue}
% 后记 epilogue.tex
\bibliography{books} % 利用 BibTeX 工具从数据库文件 books.bib 生成参考文献
\printindex
% 利用 makeindex 工具生成索引
\end{document}

2、 标题页

LaTeX支持生成简单的标题页。

\title{title}
\author{author}
\date{date}

其中,前两个命令是必须的,第三个命令可选。

  • \today 命令生成当前日期,\data默认使用\today。
  • \title\author等命令内可以使用\thanks命令生成标题页的脚注,用\and隔开多个人名

在全部信息给定后,我们就可以使用\maketitle命令生成一个简单的标题页了。

\documentclass{article}

\title{Test of Document}
\author{Steve Anthony \thanks{email: 3500515050@qq.com}}
\date{\today}
\begin{document}
\maketitle
\end{document}

3、 交叉引用

交叉引用是 LATEX 强大的自动排版功能的体现之一。在能够被交叉引用的地方,如章节、公
式、图表、定理等位置使用 \label 命令:
语法\label{⟨label-name⟩}
之后可以在别处使用 \ref 或 \pageref 命令,分别生成交叉引用的编号和页码:
语法\ref{⟨label-name⟩} \pageref{⟨label-name⟩}

\label命令可以用于记录各种类型的交叉引用,使用位置分别为:

  1. 章节标题:在章节标题命令\section等之后紧接着使用
  2. 行间公式:单行公式在公式内任意位置使用;多含公式在每一行公式的任意位置使用
  3. 有序列表:在enumerate环境的每个\item命令之后,下一个\item命令之前任意位置使用
  4. 图表标题:在图表标题命令\caption之后紧接着使用
  5. 定理环境:在定理环境内部任意位置使用

即,只要在有计数器的位置都可以使用,没有编号的位置使用\label生成的引用编号不正确。

4、 脚注和边注

使用 \footnote 命令可以在页面底部生成一个脚注:

1\footnote{这是一个数字}

有些情况下(比如在表格环境、各种盒子内)使用 \footnote 并不能正确生成脚注。我们可以分两步进行,先使用 \footnotemark 为脚注计数,再在合适的位置用 \footnotetext 生成脚注。

比如:

\begin{tabular}{l}
\hline
“天地玄黄,宇宙洪荒。日月盈昃,辰宿列张。”\footnotemark \\
\hline
\end{tabular}
\footnotetext{表格里的名句出自《千字文》。}

5、 特殊环境

5.1 列表

5.1.1 有序列表
\begin{enumerate}
\item …
\end{enumerate}

使用示例:

\begin{enumerate}
\item An item.
\begin{enumerate}
\item A nested item.\label{itref}
\item[*] A starred item.
\end{enumerate}
\item Reference(\ref{itref}).
\end{enumerate}
5.1.2 无序列表
\begin{itemize}
\item …
\end{itemize}

使用示例:

\begin{itemize}
\item An item.
\begin{itemize}
\item A nested item.
\item[+] A `plus' item.
\item Another item.
\end{itemize}
\item Go back to upper level.
\end{itemize}
5.1.3 描述

关键字环境 description 的用法与以上两者类似,不同的是 \item 后的可选参数用来写关键字,以粗体显示,一般是必填的:

\begin{description}
\item[⟨item title⟩] …
\end{description}

使用示例:

\begin{description}
\item[Enumerate] Numbered list.
\item[Itemize] Non-numbered list.
\end{description}

5.2 对齐环境

center、flushleft 和 flushright 环境分别用于生成居中、左对齐和右对齐的文本环境。

比如,我们需要写一个居中对齐的环境

\begin{center}
    这个是居中对齐的文本

    Hello World!
\end{center}

除此之外,还可以用以下命令直接改变文字的对齐方式:

\centering
\raggedright
\raggedleft

这些改变文字的对齐方式一般使用在其他环境内部的,比如说,给图片居中,就使用\centering

5.3 引用环境

LaTeX 提供了两种引用的环境:quote 用于引用较短的文字,首行不缩进;quotation 用于
引用若干段文字,首行缩进。引用环境较一般文字有额外的左右缩进。

《木兰诗》:
\begin{quotation}
万里赴戎机,关山度若飞。
朔气传金柝,寒光照铁衣。
将军百战死,壮士十年归。
归来见天子,天子坐明堂。
策勋十二转,赏赐百千强。⋯⋯
\end{quotation}

Francis Bacon says:
\begin{quote}
Knowledge is power.
\end{quote}

扩展:

  • verse 用于排版诗歌,与 quotation 恰好相反,verse 是首行悬挂缩进的。
Rabindranath Tagore's short poem:
\begin{verse}
Beauty is truth's smile
when she beholds her own face in
a perfect mirror.
\end{verse}

5.4 代码环境

有时我们需要将一段代码原样转义输出,这就要用到代码环境 verbatim,它以等宽字体排
版代码,回车和空格也分别起到换行和空位的作用;带星号的版本更进一步将空格显示成“␣”。

\begin{verbatim}
#include <iostream>
int main()
{
std::cout << "Hello, world!"
<< std::endl;
return 0;
}
\end{verbatim}

要排版简短的代码或关键字,可使用 \verb 命令:

语法:\verb⟨delim⟩⟨code⟩⟨delim⟩

  • ⟨delim⟩ 标明代码的分界位置,前后必须一致,除字母、空格或星号外,可任意选择使得不
    与代码本身冲突,习惯上使用 | 符号。

使用示例:

\verb|\LaTeX| \\
\verb+(a || b)+ \verb*+(a || b)

关于代码环境的宏包:

  • verbatim 宏包优化了 verbatim 环境的内部命令,并提供了 \verbatiminput 命令用来直接读入文件生成代码环境。
  • fancyvrb 宏包提供了可定制格式的 Verbatim 环境;
  • listings 宏包更进一步,可生成关键字高亮的代码环境,支持各种程序设计语言的语法和关键字。

详情请参考各自的帮助文档!

5.5 表格

实现语法:

\begin{table}[options]
    \centering  % 表格位于什么位置
    \begin{tabular}{c|c}  % 这里的c是列表列格式
         &  \\
         \hline  % 绘制横线,也可以使用\cline{⟨i⟩-⟨j⟩}来进行行合并
         & 
    \end{tabular}
    \caption{表格的标题}
    \label{tab:表格标签}
\end{table}

列表列格式:

列格式说明
l/c/r单元格内容左对齐/居中/右对齐,内容不换行
p{width}单元格内容固定为width,内容过多会自动换行
|绘制竖线
@{string}自定义每一列的分割内容

options参数:

  • 其表示浮动体与文字的排版
  • 如果options为hbt!,表示表格会在当前排版位置
  • 如果其为空,则表示表格会浮动到当前页面或者下一页的页首

options参数说明:

  • 注意,只要是浮动体,都可以使用这个options参数
参数作用
h放在此处
t放在顶部
b放在底部
p放在本页
!在决定位置时忽略限制

三线表的实现:

% \usepackage{booktabs}
\begin{tabular}{cccc}
\toprule
& \multicolumn{3}{c}{Numbers} \\
\cmidrule{2-4}
& 1 & 2 & 3 \\
\midrule
Alphabet & A & B & C \\
Roman
& I & II& III \\
\bottomrule
\end{tabular}

我们可以使用一个表格生成的网站来进行latex表格的绘制:https://tablesgenerator.com/latex_tables

5.6 图片

首先,我们需要借助一个宏包来进行我们图片的导入:\usepackage{graphicx}(在导言区进行导入)

在调用了宏包之后,我们就可以使用\includegraphics[options]{filename}来加载图片了:

  • filename:图片文件名(文件路径,相对路径或者绝对路径), 图片文件的扩展名一般可以不写

  • options:导入图片的可选参数,可以对图片大小进行修改

    参数含义
    width=width将图片缩放到宽度为width
    height=height将图片缩放到高度为height
    scale=scale将图片相对于原尺寸缩放scale倍
    angle=angle将图片逆时针旋转angle度

另外 graphicx 宏包还提供了 \graphicspath 命令,用于声明一个或多个图片文件存放的目录,使用这些目录里的图片时可不用写路径:

语法:\graphicspath{{figures/}{logo/}}

使用这个命令之后,我们可以直接使用图片名字来给图片进行导入操作

同时,我们一般将图片放在一个firgure环境中,在这个环境中,可以设置图片是居中、左对齐还是右对齐,可以设置图片的标题以及标签。

如:

\documentclass{article}
\usepackage{ctex}
\usepackage{graphicx}
\graphicspath{{image/}}
\begin{document}
\begin{figure}  % 这里可以传入options参数来调节图片的位置
    \centering
    \includegraphics[scale=0.1]{test}
    \caption{第一张图片}
    \label{fig:image1}
\end{figure}
\end{document}

五、 排版数学公式

1、 AMS 宏集

在介绍数学公式排版之前,简单介绍一下 AMS 宏集。AMS 宏集合是美国数学学会 (Amer-ican Mathematical Society) 提供的对 LATEX 原生的数学公式排版的扩展,其核心是 amsmath 宏包,对多行公式的排版提供了有力的支持。此外,amsfonts 宏包以及基于它的 amssymb 宏包提供了丰富的数学符号;amsthm 宏包扩展了 LATEX 定理证明格式。

本章介绍的许多命令和环境依赖于 amsmath 宏包,这些命令和环境将以蓝色示意。以下示例都假定了导言区中写有:
\usepackage{amsmath}

2、 公式排版基础

2.1 行内和行间公式

数学公式有两种排版方式:

  1. 与文字混排,称为行内公式

    • 行内公式由一对$符号包裹,或者使用\(\)来包裹:

      \documentclass{article}
      \usepackage{amsmath}
      \begin{document}
      inline equation $a=1+2$
      
      inline equation  \(b=3+4\)
      \end{document}
      
  2. 单独列为一行排版,称为行间公式

    • 单独成行的行间公式在LaTeX中由equation环境包裹。其会为公式自动生成一个编号,这个编号可以进行[交叉引用](#3、 交叉引用)

      \documentclass{article}
      \usepackage{amsmath}
      \begin{document}
      The equation is 
      \begin{equation}
          a^2 + b^2 = c^2  \label{eq:first}
      \end{equation}
      
      Equation is \ref{eq:first}
      \end{document}
      

      其中,amsmath的\eqref命令可以为引用加上圆括号;可以使用\tag命令手动修改公式的编号,或者使用\notag来取消公式的编号(等同于\nonumber

      \documentclass{article}
      \usepackage{amsmath}
      \begin{document}
      It's wrong to say
      \begin{equation}
      1 + 1 = 3 \tag{dumb}
      \end{equation}
      
      or
      
      \begin{equation}
      1 + 1 = 4 \notag
      \end{equation}
      \end{document}
      
    • 如果需要直接使用不带编号的行间公式,则将公式用命令 \[\] 和 包裹1,与之等效的是displaymath 环境。有的人更喜欢 equation* 环境,体现了带星号和不带星号的环境之间的区别。

      \begin{equation*}
      a^2 + b^2 = c^2
      \end{equation*}
      For short:
      \[ a^2 + b^2 = c^2 \]
      Or if you like the long one:
      \begin{displaymath}
      a^2 + b^2 = c^2
      \end{displaymath}
      

2.2 数学模式

在我们进入行内公式输入或者行间公式输入后,LaTeX就进入了数学模式。数学模式的特点:

  • 数学模式中输入的空格会被忽略,数学符号的间距默认由符号的性质决定。我们可以是会用\quad\qquad等命令来修改间距
  • 不允许有空行和分段
  • 所有的字母都会被当做数学公式中的变量来处理。如果想要在数学公式中输入正体字体,我们可以使用amsmath中提供的\text命令。

常用的latex数学符号可以在LaTeX数学公式编辑网站进行查找:https://www.latexlive.com/

同时,我们还可以使用手写符号识别网站来进行命令的查找:https://detexify.kirelabs.org/

3、 多行公式

3.1 长公式折行

通常来讲应当避免写出超过一行而需要折行的长公式。如果一定要折行的话,习惯上优先在等号之前折行,其次在加号、减号之前,再次在乘号、除号之前。其它位置应当避免折行。

amsmath 宏包的 multline 环境提供了书写折行长公式的方便环境。它允许用 \ 折行,将公式编号放在最后一行。多行公式的首行左对齐,末行右对齐,其余行居中。

\begin{multline}
a + b + c + d + e + f + g + h + i \\
= j + k + l + m + n\\
= o + p + q + r + s\\
= t + u + v + x + z
\end{multline}

3.2 多行公式

目前最常用的是 align 环境,它将公式用 & 隔为两部分并对齐。分隔符通常放在等号左边:

\begin{align}
a & = b + c \\
& = d + e
\end{align}

align 环境会给每行公式都编号。我们仍然可以用 \notag 去掉某行的编号。在以下的例子,为了对齐等号,我们将分隔符放在右侧,并且此时需要在等号后添加一对括号 {} 以产生正常的间距:

\begin{align}
a ={} & b + c \\
={} & d + e + f + g + h + i + j + k + l \notag \\
	& + m + n + o \\
={} & p + q + r + s
\end{align}

align 还能够对齐多组公式,除等号前的 & 之外,公式之间也用 & 分隔:

\begin{align}
a & =1 & b &=2 & c &=3 \\
d &=-1 & e &=-2 & f &=-5
\end{align}

如果我们不需要按等号对齐,只需罗列数个公式,gather 将是一个很好用的环境:

\begin{gather}
a = b + c \\
d = e + f + g \\
h + i = j + k \notag \\
l + m = n
\end{gather}

注意:

  • align 和 gather 有对应的不带编号的版本 align* 和 gather*。

3.3 公用编号的多行公式

另一个常见的需求是将多个公式组在一起公用一个编号,编号位于公式的居中位置。为此,amsmath 宏包提供了诸如 aligned、gathered 等环境,与 equation 环境套用。以 -ed 结尾的环境用法与前一节不以 -ed 结尾的环境用法一一对应。我们仅以 aligned 举例:

\begin{equation}
\begin{aligned}
a &= b + c \\
d &= e + f + g \\
h + i &= j + k \\
l + m &= n
\end{aligned}
\end{equation}

4、 数学公式的字体控制

4.1 数学字母字体

LaTeX允许一部分数学符号切换字体,主要是拉丁字母、数学、大写希腊字母以及重音符号等。

% \usepackage{amssymb}
$\mathcal{R} \quad \mathfrak{R}
\quad \mathbb{R}$
\[\mathcal{L}
= -\frac{1}{4}F_{\mu\nu}F^{\mu\nu}\]
$\mathfrak{su}(2)$ and
$\mathfrak{so}(3)$ Lie algebra

4.2 加粗的数学符号

如果想得到粗斜体,可以使用 ams-math 宏包提供的 \boldsymbol 命令:

$\mu, M \qquad
\boldsymbol{\mu}, \boldsymbol{M}$

也可以使用 bm 宏包提供的 \bm 命令:

% \usepackage{bm}
$\mu, M \qquad \bm{\mu}, \bm{M}$

4.3 数学符号的尺寸

六、 参考文献

1、 文献数据库

首先,我们需要使用.bib文件作为文献数据库

编写文献数据库的方法:

使用谷歌学术来获取.bib格式的引用

然后,写入.bib文件中

2、 生成参考文献

注意:

  • \bibliographystyle 和 \bibliography 命令缺一不可,没有这两个命令,使用 BIB-
    TEX 生成参考文献列表的时候会报错。
  • BIBTEX 程序在生成参考文献列表的时候,通常只列出用了\cite 命令引用的那些。如果需要列出未被引用的文献,则需要 \nocite{⟨citation⟩} 命令;而 \nocite{*} 则让所有未被引用的文献都列出。

3、 内置文献样式

常用的内置文献样式效果展示:

对参考文献的排版,我们还可以使用natbib或者biblatex宏包

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/130891.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis(Ⅰ)【学习笔记】

&#xff08;仅作为个人学习笔记&#xff09; 1.什么是Redis&#xff1f; 1.Redis 是用C语言开发的一个开源的高性能键值对&#xff08; key-value &#xff09;内存数据库&#xff0c;它是一种 NoSQL 数据库。 2.它是【单进程单线程】的内存数据库&#xff0c;所以说不存在线…

charAt()方法的使用

charAt()函数 Java charAt() 方法属于Java String类 charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1。 语法 public char charAt(int index) 参数 index – 字符的索引。 返回值 返回指定索引处的字符。 举个例子&#xff1a; package 做题;…

基于思维进化算法优化BP神经网络(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑…

Kubernetes之PV与PVC

1. 综述 当前&#xff0c;存储的方式和种类有很多&#xff0c;并且各种存储的参数也需要非常专业的技术人员才能够了解。在Kubernetes集群中&#xff0c;放了方便我们的使用和管理&#xff0c;Kubernetes提出了PV和PVC的概念&#xff0c;这样Kubernetes集群的管理人员就可以将注…

linux系统中利用设备树完成对LED的控制

大家好&#xff0c;今天主要和大家聊一聊&#xff0c;如何使用linux系统中的设备树控制led。 目录 第一&#xff1a;设备树LED基本驱动原理 第二&#xff1a;LED灯驱动程序的实现 第一&#xff1a;设备树LED基本驱动原理 本次实验采用设备树向linux内核传递相关的寄存器物理…

MATLAB演示梯度上升寻找极值

MATLAB演示梯度上升寻找极值 梯度 梯度的本意是一个向量&#xff08;矢量&#xff09;&#xff0c;表示某一函数在该点处的方向导数沿着该方向取得最大值&#xff0c;即函数在该点处沿着该方向&#xff08;此梯度的方向&#xff09;变化最快&#xff0c;变化率最大&#xff08…

dubbo源码解析-SPI机制

SPI&#xff0c;Service Provider Interface&#xff0c;服务提供者接口&#xff0c;是一种服务发现机制。 JDK 的 SPI 规范 JDK 的 SPI 规范规定&#xff1a;  接口名&#xff1a;可随意定义  实现类名&#xff1a;可随意定义  提供者配置文件路径&#xff1a;其查…

剑指offer(简单)

目录 数组中重复的数字 替换空格 从尾到头打印链表 用两个栈实现队列 斐波那契数列 青蛙跳台阶问题 旋转数组的最小数字 二进制中的1的个数 打印从1到最大的n位数 删除链表的节点 调整数组顺序使奇数位于偶数前面 链表中倒数第k个节点 反转链表 合并两个排序的链…

一文读懂tensorflow: 基本概念和API

文章目录前言tensorflow发展历程基本概念张量神经网络、层模型超参数损失函数交叉熵函数激活函数梯度和自动微分优化器tensorflow 2.x 和 tensorflow 1.xtensorflow开发流程tensorflow API张量的定义和运算示例张量的初始化方式梯度计算模型的搭建示例&#xff1a;MINST手写数字…

Casting out Primes: Bignum Arithmetic for Zero-Knowledge Proofs学习笔记

1. 引言 Polygon zero团队 Daniel Lubarov 和 Polygon zkEVM团队 Jordi Baylina 2022年10月联合发表的论文 《Casting out Primes: Bignum Arithmetic for Zero-Knowledge Proofs》。 受“casting out nines” 技术——做对9取模运算并提供概率性结果&#xff0c;启发&#x…

RocketMQ 的存储模型

文章目录1.整体概览2.数据文件3.消费文件4.索引文件1.整体概览 Producer &#xff1a;消息发布的角色&#xff0c;Producer 通过 MQ 的负载均衡模块选择相应的 Broker 集群队列进行消息投递&#xff0c;投递的过程支持快速失败并且低延迟。 Consumer &#xff1a;消息消费的角…

如何应用人工智能和机器学习来预测消费者的行为

应用AI和机器学习来预测消费者行为 在这篇文章中&#xff0c;我们将学习和分析一般的消费者行为。我们还将了解人工智能是如何帮助发现有价值的见解的&#xff0c;从而使公司做出正确的决定&#xff0c;以实现提供更好的价值和创造更好的收入的愿景。 我们还将通过一个案例进…

6.2 参数传递

文章目录传值参数指针形参传引用参数使用引用避免拷贝使用引用形参返回额外信息const形参和实参指针或引用形参与const尽量使用常量引用数组形参使用标记指定数组长度使用标准库规范显式传递一个数组的长度数组形参和const数组引用形参传递多维数组main&#xff1a;处理命令行选…

142.环形链表II

给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数…

java开发社区活动预约系统

简介 本系统主要是社区活动预约系统网站&#xff0c;社区管理员可以发布活动&#xff0c;社区居民和游客均可进行活动预约&#xff0c;管理员后台审核预约是否通过&#xff0c;居民可以填写活动感受&#xff0c;管理员查看感受后可以进行反馈。居民最多取消三次预约&#xff0…

我用Python做了个动图生成器,把一千个MM生成了GIF设置桌面,只为每天愉悦心情

文章目录序言代码实战序言 现在的年轻人都开始每天保温杯里泡枸杞&#xff0c;这怎么能行呢&#xff1f; 想要每天过的好&#xff0c;美女必然少不了&#xff0c;每天看美女&#xff0c;只为了愉悦心情&#xff0c;心情好了&#xff0c;才长寿。 于是怀揣着愉悦心情的想法&am…

【leetcode】剑指offer1

&#x1f308;1.Pow(x,n) -100.0 < x < 100.0-2^31 < n < 2^31-1n 是一个整数-10^4 < x^n < 10^4思路分析&#xff1a; 暴力求解直接一个for循环n个x相乘解决&#xff0c;但是你拿那代码怎么好意思拿高薪&#xff1f; 所以而且那个的时间复杂度是O(n),效率并…

[阿里云] 10分钟带你玩转阿里云ECS和云盘 (大数据上云必备)

前言 由于准备做一些离线计算和实时计算的模拟, 发现某些教程内的阿里云还挺好用的, 在这里把相关的经验分享给大家. 简单的心路历程: 起先笔者搭建了一套本地集群. 但是后来发现, 因为没用网络IP的反穿, 本地的集群的网络访问非常不便. 其次, 集群的启停, 网络和磁盘管理都非…

缓存原理的学习

在如今这个微服务分布式的大环境下,集群分布式部署 几乎 已经是我们每个人都熟知的了。 缓存也一样&#xff0c;对我们来说 &#xff0c;如果只是一个单体应用 &#xff0c; 那只要 有本地缓存就足以了&#xff0c;但是倘若分布式部署了很多台机器上&#xff0c;那我们该如何缓…

软考-操作系统

【考点梳理】 【进程管理】 考点1、进程的状态&#xff08;★★&#xff09; 【考法分析】 本考点主要考查形式主要是根据图示判断相关状态位置或状态变迁条件。 【要点分析】 操作系统三态模型如下图所示&#xff1a;操作系统五态模型&#xff1a;【备考点拨】 掌握操作…