Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >LaTeX详细教程+技巧总结[通俗易懂]

LaTeX详细教程+技巧总结[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-08-29 01:42:12
发布于 2022-08-29 01:42:12
17.7K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

LaTeX技巧总结

前言

若想学习Markdown,请参见我的另一篇博客:Markdown详细教程+技巧总结 。 若想直接学习LaTeX数学公式,请参见我的另一篇博客:LaTeX数学公式-详细教程

本篇文章介绍LaTeX的基本用法,并有自己的经验和总结。另外,可以从LaTeX的官方文档进行学习,官方文档大部分是英文文档,链接:LaTeX在线文档LaTex宏包文档

本篇文章内容包含LaTeX工具,LaTeX模板,LaTeX技巧,LaTeX基础,文章架构,字体、大小和颜色,链接,列表,图片,表格,数学公式,算法(伪代码),代码块,论文写作,等等。

LaTeX工具

介绍

LaTeX工具分为在线工具和本地工具,本地工具又分为前台和后台。在线工具推荐Overleaf,本地工具推荐前台使用TeXStudio,后台推荐使用TeXLive(后台工具有TeXLive,MikTeX,CTeX等)。

各个后台的比较:TeXLive有跨平台的性质,适用于Linux、Mac以及Windows系统;TeXLive是完全安装,大小大概为5G左右;每年有一次更新。TeXStudio只适用于Windows系统;它只安装基本的东西,其他任何需要的东西可以动态安装;只有发生重大变化时才会更新。CTeX只适用于Windows系统;默认编码不是UTF-8;已经不再维护,不再更新了,容易出Bug。

可以根据需求选择合适的本地后台,若觉得安装配置比较麻烦,则可以使用Overleaf在线工具,有网络即可使用,更重要的是国内也可以使用,并支持中文界面。详细使用方法在下文介绍。

Overleaf(推荐)

网址:Overleaf 。 注册账户并登录后即可使用。

使用流程

点击New Project后还可以使用Templates模板,如下图:

新建项目后,左边为源代码视图,右边为预览视图。可以点击左上角的Menu下载源文件,PDF文件,或设置编译器,如下图:

展开Recompile按钮可以设置自动编译,并忽略语法检查,如下图:

切换界面语言

方法1

点击Overleaf界面左下角的国旗标志可以切换界面语言,切换成中文的操作如下图:

方法2

直接更改网址如下:https://cn.overleaf.com/project 即可切换界面语言为中文。

更改编译器

在项目菜单设置中可以更改,如下图:

文档定位

在项目中线顶部有2个箭头样式的按钮,可以使tex文档和PDF文档相互定位,如下图:

补充: 左键双击PDF文档的特定位置,tex文档会跳转到对应位置。

快捷键

Overleaf内置了很多快捷键,本人分类为常用快捷键和全部快捷键如下:

常用快捷键 Ctrl+B:粗体 Ctrl+I:斜体 Ctrl+/:注释 Ctrl+Z:撤销 Ctrl+Y:重做 Ctrl+F:查找和替换 Ctrl+Home:到文档顶部 Ctrl+End:到文档底部 Ctrl+S:重新编译 Ctrl+Enter:重新编译

全部快捷键 可以在Overleaf项目中点击菜单中的快捷键选项查看,如下图:

2021年5月

TeXLive和TeXStudio

安装及配置详情可参见其他人的博客:LaTeX新手入门以及TeXlive和TeXstudio的安装使用

本人一般使用在线工具Overleaf,因此个人教程暂略,后期若安装本地环境再进行完善。

LaTeX模板

LaTeX有很多模板,可以直接使用,方便用户排版。

Overleaf中一些常用模板,包含Project,Resume,Homework,Letter,Memo,Poster,Book,Journal,Thesis。

用户可以直接在Overleaf中使用,也可以下载到本地进行使用。

LaTeX技巧

LaTeX

LaTeX编辑器中,内置了一个语句,用来展现LaTeX的Logo,代码和效果如下:

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\LaTex

显示:

中文支持

无论是在线工具还是本地工具,LaTeX默认都是不支持中文的,因此需要在源代码和配置上稍作修改才可以让LaTeX支持中文,步骤如下:

编译器配置:

texutf-8

代码开头添加: 方式1(推荐):添加宏包

首行缩进

进行缩进

若LaTeX默认没有段首缩进,因此要首行缩进需要进行修改。在导言区加入如下代码(距离单位一般为ptempt是绝对单位;em是相对单位,表示1个中文字符宽度;本人比较喜欢em):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
% 使用indentfirst宏包
\usepackage{indentfirst}
% 设置首行缩进距离
\setlength{\parindent}{2em}

不进行缩进

若LaTeX已经是段首缩进的,因此要段首不进行缩进需要进行修改。

方式1(推荐): 单段取消缩进,放在段首即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\noindent

方式2: 全局取消缩进,在想缩进的段落再进行缩进。 放在导言区:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\setlength{\parindent}{0pt}

放在想要缩进的段落:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\hspace*{2em}段落\\

显示下划线

方法1 使用转义字符:\_

方法2 使用LaTeX命令:\textunderscore

方法3 导入宏包:\usepackage{underscore}

例子1(方法1和2):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a\_b

a\textunderscore b

显示:

例子2(方法3):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\usepackage{underscore}

a_b

显示:

LaTeX基础

导言区与正文区

begin{document}end{document}之间的就是正文区,而在这之前的就是导言区。

文档类型

\documentclass{article}是确定了文档类型为article,一般LaTeX提供三种基本文档,此外两种是reportbook。三者分别用来写小篇幅的文章、中篇幅的报告和长篇幅的书籍。

宏包

LaTeX导言区可以导入各种宏包,以使用相应宏包的功能,一条语句中可以导入多个宏包,语法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\usepackage{宏包1, 宏包2}

常用的宏包: ctex:中文支持 amsmath:latex数学公式支持 graphicx:插入图片 algorithm和algorithmic:算法排版 listings:插入代码块 等等

编译器

LaTeX的编译器有pdfLaTeXLaTeXXeLaTeXLuaLaTeX,在设置中可以进行更改。Overleaf默认的编译器为pdfLaTeX,因此要使其支持中文需要改为XeLaTeX

注释

Overleaf等工具中可以使用快捷键Ctrl+/来批量注释或批量取消注释。

单行注释

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
% 注释内容

多行注释

方式1(推荐):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\iffalse
注释内容
\fi

方式2: 使用\usepackage{verbatim}宏包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\begin{comment}
注释内容
\end{comment} 

英文引号

在LaTeX中输入英文引号时,导出的PDF显示的是顺撇的,如下:

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
'English'

''English''

显示:

要想正确输入英文引号,把左侧的引号用 ` 代替即可,如下:

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
`English'

``English''

显示:

空格

LaTeX支持

空格方式

源代码

显示

宽度

quad空格

a \quad b

a b a \quad b ab

1个中文字符的宽度

qquad空格

a \qquad b

a b a \qquad b ab

2个中文字符的宽度

大空格

a\ b

a b a\ b a b

1/3字符宽度

没有空格

ab

a b ab ab

LaTeX数学公式支持

除上述空格以外,还支持如下空格:

空格方式

源代码

显示

宽度

中等空格

$a\;b$

a    b a\;b ab

2/7字符宽度

小空格

$a\,b$

a   b a\,b ab

1/6字符宽度

紧贴

$a\!b$

a  ⁣ b a\!b ab

缩进1/6字符宽度

换行

\\:换行,一般在一行的最后写。 \\[offset]:换行,并且与下一行的行间距为原来行间距+offset,offset单位一般是empt

换段

源代码空一行即可进行换段(推荐)。 也可以使用代码\par进行换段,一般在一段的最后写。

新页

使用\newpage进行换页,一般在一页的最后写。

转义字符

写法:\+字符

用途:当某些特殊字符与LaTeX语法冲突时,使用转义字符可以使字符强制显示。

示例:\%,可以显示出百分号,而不是注释的含义;\_,显示下划线,而不是下标;\^显示符号本身,而不是上标。

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\%home\_name\%=honor

显示:

补充:若想不使用转义字符显示下划线,有2种方法,详情请见 LaTeX技巧-显示下划线 章节。

可选参数[htbp]

LaTeX插入图片、表格等元素时,第一行后面有一个可选参数[htbp],例如,\begin{figure}[htbp]

[htbp]是个可选参数项,允许用户指定图片、表格等元素被放置的位置。这一可选参数项可以是下列字母的任意组合。

h(here): 当前位置;将图形放置在 正文文本中给出该图形环境的地方。如果本页所剩的页面不够, 这一参数将不起作用。 t(top): 顶部;将图形放置在页面的顶部。 b(bottom): 底部;将图形放置在页面的底部。 p(page): 浮动页;将图形放置在一只允许有浮动对象的页面上。

注意:在使用这些参数时:

  1. 如果在图形环境中没有给出上述任一参数,则缺省为 [tbp]
  2. 给出参数的顺序不会影响到最后的结果。因为在考虑这些参数时LaTeX总是尝试以 h-t-b-p 的顺序来确定图形的位置。所以 [hb][bh] 都以h-b 的顺序来排版。
  3. 给出的参数越多,LaTeX的排版结果就会越好。[htbp], [tbp], [htp], [tp] 这些组合得到的效果不错,[h]也是常用的选择。

文章架构

纸张布局

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
% 设置页面的环境,a4纸张大小,左右上下边距信息
\usepackage[a4paper,left=10mm,right=10mm,top=15mm,bottom=15mm]{geometry}

标题级别

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\section{一级标题}
\subsection{二级标题} 
\subsubsection{二级标题} 

显示:

标题、作者、时间

注意:\maketitle这一行一定要在\begin{document}的后面,否则LaTeX会判定为语法错误。

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\documentclass{article} % article 文档
\usepackage[UTF8]{ctex}  % 使用宏包(为了能够显示汉字)
% 设置页面的环境,a4纸张大小,左右上下边距信息
\usepackage[a4paper,left=10mm,right=10mm,top=15mm,bottom=15mm]{geometry}

\title{NSJim的文章}  % 文章标题
\author{NSJim}   % 作者的名称
\date{\today}       % 当天日期

% 正文开始
\begin{document}

\maketitle          % 添加这一句才能够显示标题等信息

% 正文结束
\end{document}

显示:

摘要

\maketitle下添加内容,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\maketitle          %添加这一句才能够显示标题等信息
%摘要开始部分
\begin{abstract}
该部分内容是放置摘要信息的。该部分内容是放置摘要信息的。该部分内容是放置摘要信息的。该部分内容是放置摘要信息的。该部分内容是放置摘要信息的。
\end{abstract}

显示:

引用、脚注

引用:写在\begin{quote}\end{quote}之间。 脚注:在需要添加脚注的文字后添加\footnote{脚注内容}即可。

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
西游记\footnote{中国古典四大名著之一}小说开头写道:
\begin{quote}
{\kaishu 东胜神洲有一花果山,山顶一石,受日月精华,生出一石猴。之后因为成功闯入水帘洞,被花果山诸猴拜为“美猴王”。}
\end{quote}

显示

架构

标题设置:一级标题\section{},耳机标题\subsection{},三级标题\subsubsection{}; 段落设置:在一段的最后添加\par代表一段的结束; 目录设置:在\begin{document}内容中添加:\tableofcontents

以下为一个示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\documentclass{article} % article 文档
\usepackage[UTF8]{ctex}  % 使用宏包(为了能够显示汉字)
% 设置页面的环境,a4纸张大小,左右上下边距信息
\usepackage[a4paper,left=10mm,right=10mm,top=15mm,bottom=15mm]{geometry}

\title{NSJim的文章}  % 文章标题
\author{NSJim}   % 作者的名称
\date{\today}       % 当天日期

% 正文开始
\begin{document}

\maketitle          % 添加这一句才能够显示标题等信息

% 生成目录设置
\renewcommand{\contentsname}{目录} %将content转为目录
\tableofcontents

% 摘要开始部分
\begin{abstract}
该部分内容是放置摘要信息的。该部分内容是放置摘要信息的。该部分内容是放置摘要信息的。该部分内容是放置摘要信息的。该部分内容是放置摘要信息的。
\end{abstract}

% 标题开始
\section{一级标题1}
第一段一级标题下的内容,一级标题下的内容,一级标题下的内容,一级标题下的内容,一级标题下的内容,一级标题下的内容,一级标题下的内容,一级标题下的内容。\par
第二段一级标题下的内容,一级标题下的内容,一级标题下的内容,一级标题下的内容,一级标题下的内容,一级标题下的内容,一级标题下的内容,一级标题下的内容。

\subsection{二级标题1.1}
二级标题下的内容。

\subsubsection{三级标题下的内容1.1.1}
三级标题下的内容。

\section{一级标题2}
一级标题2中的内容

% 正文结束
\end{document}

显示:

字体,大小,颜色

字体

使用代码:{\字体 内容}(推荐),有时可使用\字体{内容}(不推荐,容易出问题)。

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{\songti 宋体}
{\heiti 黑体}
{\fangsong 仿宋}
{\kaishu 楷书}

{\bf 粗体}
{\it 斜体}
{\sl 斜体}

\textbf{粗体}
\textit{斜体}
\textsl{斜体}

显示:

大小

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{\tiny Hello} \\
{\scriptsize Hello} \\
{\footnotesize Hello} \\
{\small Hello} \\
{\normalsize Hello} \\
{\large Hello} \\

显示:

颜色

需要导入宏包\usepackage{xcolor}

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{color,xcolor}

\setlength{\parindent}{0pt}

% 预先定义好的颜色: red, green, blue, white, black, yellow, gray, darkgray, lightgray, brown, cyan, lime, magenta, olive, orange, pink, purple, teal, violet.

% 定义颜色的5种方式
\definecolor{light-gray}{gray}{0.95}    % 1.灰度
\definecolor{orange}{rgb}{1,0.5,0}      % 2.rgb
\definecolor{orange}{RGB}{255,127,0}    % 3.RGB
\definecolor{orange}{HTML}{FF7F00}      % 4.HTML
\definecolor{orange}{cmyk}{0,0.5,1,0}   % 5.cmyk

\begin{document}

% \pagecolor{yellow}          %设置背景色为黄色

% 使用颜色的常用方式
\textcolor{green}{绿色} % textcolor+颜色
\color{orange}{橙色} % color+颜色
\textcolor[rgb]{0,1,0}{绿色} % textcolor+rgb
\color[rgb]{1,0,0}{红色} % color+rgb

% 使用底色
\colorbox{red}{\color{black}红底黑字}
\fcolorbox{red}{green}{红框绿底} % 框色+背景色

\end{document} 

显示:

链接

导入宏包:\usepackage{url} 插入超链接:\url{www.baidu.com}

列表

未完,待续。

图片

可选参数[htbp]

LaTeX插入图片、表格等元素时,第一行后面有一个可选参数[htbp],例如,\begin{figure}[htbp]

[htbp]是个可选参数项,允许用户指定图片、表格等元素被放置的位置。这一可选参数项可以是下列字母的任意组合。

h(here): 当前位置;将图形放置在 正文文本中给出该图形环境的地方。如果本页所剩的页面不够, 这一参数将不起作用。 t(top): 顶部;将图形放置在页面的顶部。 b(bottom): 底部;将图形放置在页面的底部。 p(page): 浮动页;将图形放置在一只允许有浮动对象的页面上。

注意:在使用这些参数时:

  1. 如果在图形环境中没有给出上述任一参数,则缺省为 [tbp]
  2. 给出参数的顺序不会影响到最后的结果。因为在考虑这些参数时LaTeX总是尝试以 h-t-b-p 的顺序来确定图形的位置。所以 [hb][bh] 都以h-b 的顺序来排版。
  3. 给出的参数越多,LaTeX的排版结果就会越好。[htbp], [tbp], [htp], [tp] 这些组合得到的效果不错,[h]也是常用的选择。

单张图片

需要导入宏包:\usepackage{graphicx}

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
%开始插入图片
\begin{figure}[htbp] % htbp代表图片插入位置的设置
\centering %图片居中
%添加图片;[]中为可选参数,可以设置图片的宽高;{}中为图片的相对位置
\includegraphics[width=6cm]{image.jpg}
\caption{达尔文游戏} % 图片标题
\label{pic1} % 图片标签
\end{figure}

显示:

多张图片

并排插入两张图片 方式1:图片编号增加1 两张图片公用一个大的图题,图片的编号只增加一个。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\begin{figure}[ht]
\centering
\subfigure[11-1]{               %小图题的名称
\includegraphics[width=4cm]{11-1}}
\hspace{10pt}  %2张图片的水平距离
\subfigure[11-2]{
\includegraphics[width=4cm]{11-2}}
\caption{两张图片公用的图题}
\end{figure}

方式2:图片编号增加2 每张图片有自己的图题,这种方法会使LaTeX中图片的编号顺序向后增加。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\begin{figure}[h]
\begin{minipage}[t]{0.45\linewidth}
\centering
\includegraphics[width=5.5cm,height=3.5cm]{10}
\caption{第一张图片的图题.}
\end{minipage}
\begin{minipage}[t]{0.45\linewidth}        %图片占用一行宽度的45%
\hspace{10pt}
\includegraphics[width=5.5cm,height=3.5cm]{11}
\caption{第二章图片的图题.}
\end{minipage}
\end{figure}

并排插入多张图片

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\begin{figure}
\centering
{
\includegraphics[width=2.5cm]{10-1}}
\hspace{10pt}    %每张图片水平距离
{
\includegraphics[width=2.5cm]{10-2}}
\hspace{10pt}
{
\includegraphics[width=2.5cm]{10-3}}
\hspace{10pt}
{
\includegraphics[width=2.5cm]{10-4}}
\hspace{10pt}
\caption{并排插入4张图片}
\end{figure}

竖排插入多张图片

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\begin{figure}[h]
\centering
\subfigure[场景1]{
\begin{minipage}[t]{0.45\textwidth}
\centering
\includegraphics[width=0.8\textwidth]{wolf2} \\
\vspace{10pt} %2张图片的垂直距离
\includegraphics[width=0.8\textwidth]{wolf3}
\end{minipage}
\end{figure}
}

表格

技巧:若不想手动输入LaTeX语法生成表格,可以使用在线生成LaTeX表格的网站。可以从Excel里面粘贴或导入,可以实现单元格合并,而且会在合并行或合并列的时候提醒要引入对应的宏包。 网址:https://www.tablesgenerator.com/

当然,也可以使用LaTeX语法生成表格,示例如下:

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\begin{table}[htbp] % htbp代表表格浮动位置
% 表格居中
\centering
% 添加表头
\caption{变量表}
% 创建table环境
\begin{tabular}{|cc|c|} % 3个c代表3列都居中,也可以设置l或r,|代表竖线位置
% 表格的输入
\hline  % 一条水平线
x & y & z \\ % \\为换行符
\hline
11 & 22 & 33 \\
\hline
\end{tabular}
\end{table}

显示:

数学公式

公式支持

LaTeX要输入数学公式需要导入宏包\usepackage{amsmath};若要对公式的字体进行修改,还需要引入宏包\usepackage{amsfonts}

LaTeX数学公式的各种细节请参见我的另一篇博客:LaTeX数学公式-详细教程

  1. 官方文档: 传送门:官方文档 网址:https://math.meta.stackexchange.com/questions/5020/mathjax-basic-tutorial-and-quick-reference
  2. 中文教程: 传送门:中文教程 网址:https://www.jianshu.com/p/25f0139637b7
  3. 技巧:使用在线LaTeX公式编辑器,来生成LaTeX公式代码,然后复制到Markdown编辑器中,并在两边加上
  4. 居中公式(独立公式):
数学公式

注意:使用连接处不要有空格,否则公式不会显示;使用

居中公式时,数学公式与

连接处可以有空格。即

  1. 注释:%为单行注释,例子详见后文。
  2. 细节:请参见我的另一篇博客:LaTeX数学公式-详细教程

注意事项

  1. 使用,即行中公式时,数学公式与连接处不要有空格,否则公式不会显示。
  2. 使用
,即居中公式时,数学公式与

连接处可以有空格。即

  1. 使用$$时,上方要空一行。
  2. =不要单独打一行,否则可能会出错。
  3. + - * / = ( ) | , . '等符号直接在

公式编号

自动编号

使用\begin{equation}\end{equation}进行公式输入,要同时使用,且编号不能够修改。

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\begin{equation}
a^2+b^2=c^2
\end{equation}

显示:

手动编号

在公式末尾使用\tag{编号}来实现公式手动编号,大括号内的内容可以自定义。需要使用\usepackage{amsmath}宏包,不能写在

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\begin{equation}
a^2+b^2=c^2
\tag{2}
\end{equation}

显示:

自定义标题样式

在导言区使用\newtheorem{example}{Example}[section]可以自定义标题样式,例子如下。

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\newtheorem{example}{Example}[section] % 自定义example样式

\begin{document}

\maketitle

\section{Introduction}

\begin{example}{Test1}

Hello world!

\end{example}

\begin{example}{Test2}

Hello world!

\end{example}

\end{document}

显示:

算法(伪代码)

需要使用\usepackage{algorithm}\usepackage{algorithmic}宏包,iffor等关键字要按照规范书写,如\IF \ENDIF

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{algorithm} % 排版算法
\usepackage{algorithmic} % 排版算法

\title{Algorithm}
\author{NSJim Green}
\date{October 2020}

\begin{document}

\maketitle

\section{Algorithm 1}

\begin{algorithm}
\caption{CheckSum(A,x)} %算法标题
\label{alg2} %标签
\begin{algorithmic} %算法开始
\STATE {\bf Input:} An array A and a value x  %也可以用\textbf{Input:}
\STATE {\bf Output:} A bool value show if there is two elements in A whose sum is x
\STATE A $\gets$ SORT(A)
\STATE n $\gets$ length(n)
\FOR{i $\gets$ 0 to n}
    \IF{Binary-search(A,x-A[i],1,n)}
    \STATE return true
    \ENDIF
\ENDFOR
\STATE return false
\end{algorithmic}
\end{algorithm}

\end{document}

显示:

代码块

基础用法

使用\usepackage{listings}宏包,并使用\lstset{}进行基础设置,然后使用\begin{lstlisting}[language=xxx]\end{lstlisting}插入代码块。

基础设置包括行号,不显示字符串空格,代码块边框,不包含颜色等设置,要设置颜色和字体请见下文的高级用法。

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{listings}

% 代码块基础设置
\lstset{
numbers=left,                          	% 在左侧显示行号
showstringspaces=false,        			% 不显示字符串中的空格
frame=single,                         	% 设置代码块边框
}

\title{Code block}
\author{NSJim Green}
\date{October 2020}

\begin{document}

\maketitle

\section{C Language}

\begin{lstlisting}[language=c]
#include <stdio.h>

// main function
int main() {
    printf("Hello World!");
    return 0;
}
\end{lstlisting}

\end{document}

显示:

高级用法

使用\usepackage{listings}\usepackage{xcolor}宏包,并使用\lstset{}进行高级设置,然后使用\begin{lstlisting}[language=xxx]\end{lstlisting}插入代码块。

高级设置除基础设置外,还包括关键字格式,字符串格式等设置。

例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\documentclass{article}
\usepackage[UTF8]{ctex}
\usepackage{listings}
\usepackage{xcolor}

% 代码块高级设置
\lstset{
% basicstyle=\footnotesize,                 % 设置整体的字体大小
showstringspaces=false,                     % 不显示字符串中的空格
frame=single,                               % 设置代码块边框
numbers=left,                               % 在左侧显示行号
% numberstyle=\footnotesize\color{gray},    % 设置行号格式
numberstyle=\color{darkgray},               % 设置行号格式
backgroundcolor=\color{white},              % 设置背景颜色
keywordstyle=\color{blue},                  % 设置关键字颜色
commentstyle=\it\color[RGB]{0,100,0},       % 设置代码注释的格式
stringstyle=\sl\color{red},                 % 设置字符串格式
}

\title{Code block}
\author{NSJim Green}
\date{October 2020}

\begin{document}

\maketitle

\section{C Language}

\begin{lstlisting}[language=c]
#include <stdio.h>

// main function
int main() {
    printf("Hello World!");
    return 0;
}
\end{lstlisting}

\end{document}

显示:

论文写作

模板

论文写作可以使用合适的模板,例如IEEE的模板,只需在文档类型处修改即可,代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\documentclass[conference]{IEEEtran}

双栏

更改文档的单双栏模式,只需更改文档类型处的选项即可,代码如下: 单栏:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\documentclass[onecolumn]{article}

双栏:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\documentclass[twocolumn]{article}

跨栏图表

在双栏编辑模式下,图片只能在一栏中显示,而且如果图片的宽度超过单栏文本宽度,则只能显示其中一部分,剩下的部分会溢出。

若想在双栏模式下插入跨栏图表可将环境替换为带*figuretable环境,代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\begin{figure*}
……
\end{figure*}
或
\begin{talbe*}
……
\end{table*}

无自动编号的标题

LaTeX中的标题都是自动编号的,若想使用无编号的标题,可使用带*section代码,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\section*{References}

引用

LaTeX中的公式,图表,参考文献都是自动编号的,添加\label语句后可以进行引用,还可以设置引用格式,使用方法如下:

公式引用

需导入amsmath宏包,代码为\usepackage{amsmath}

公式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\begin{equation}
z=x+y
\label{eq1}
\end{equation}

引用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Eq. (\ref{eq1})
或导入amsmath宏包,使用如下代码(推荐):
Eq. \eqref{eq1}

图片引用

需导入graphicx宏包,代码为\usepackage{graphicx}

图片

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\begin{figure}[htbp]
\centering
\includegraphics[width=8cm]{image/fig01-network model.png}
\caption{Network model.}
\label{fig1}
\end{figure}

引用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Fig. \ref{fig01}

表格引用

表格

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\begin{table}[htbp]
\caption{Parameters for simulation}
\begin{center}
\begin{tabular}{|c|c|c|c|}
\hline
\textbf{Parameters}&\textbf{Values} \\
\hline
Count of Nodes & 2 to 160 \\
Simulation time & 60s \\
Layer used & Logical Link Layer \\
Type of Antenna & Omni Directional \\
Queue type & Drop tail \\
MAC & 802.11 \\
\hline
\end{tabular}
\label{tab1}
\end{center}
\end{table}

引用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Table. \ref{tab1}

参考文献引用

参考文献

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\begin{thebibliography}{00}
\bibitem{b1} Ben-Othman J, Yahya B. Energy efficient and QoS based routing protocol for wireless sensor networks. J Parallel Distrib Comput 2010;2010(70):84957.
\bibitem{b2} Younis M, Youssef M, Arisha K. Energy-aware routing in cluster-based sensor networks. In: Proceedings of the IEEE 20th international symposium on modeling, analysis and simulation of computer and telecommunication systems; 2012. p. 0129. https://doi.org/10.1109/MASCOT.2002.1167069.
\bibitem{b3} Al-Karaki JN, Kamal AE. Routing techniques in wireless sensor networks: a survey. IEEE J Wirel Commun 2004;11(6):628. 2004.
\end{thebibliography}

引用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\cite{b1}
\cite{b2}
\cite{b3}

改变引用颜色

改变引用颜色前最好在导言区导入xcolor宏包,代码为\usepackage{xcolor}。 改变引用颜色需要在导言区添加如下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\usepackage[colorlinks,bookmarksopen,bookmarksnumbered,citecolor=green, linkcolor=red, urlcolor=blue]{hyperref}

citecolor为参考文献颜色,linkcolor为图表和公式引用的颜色,urlcolor为超链接颜色。各颜色可根据偏好或要求自行更改。

显示效果如下:

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/145947.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【知识】Latex中subfigure和subcaption的详细区别
在 LaTeX 中,subfigure 和 subcaption 都是用于处理多张子图的工具,但它们有显著的区别。以下从功能、兼容性、语法、优势/劣势几个方面详细对比两者。
小锋学长生活大爆炸
2025/05/24
1820
使用 LaTeX 进行论文写作
最近几个月一直在忙着跑实验,写论文,博客确实也是好久没有更新了,乘着最近论文搞得差不多了,碰巧也是在排版,来记录一下使用 LaTeX 进行论文写作的一些东西。
EmoryHuang
2023/03/12
2.7K0
使用 LaTeX 进行论文写作
​LaTeX 基础命令介绍(scienhub平台支持)
用户4821680
2024/03/28
3800
Latex文档结构介绍(scienhub平台支持在线测试)
对于 report 和 book 文档类,结构类似,但它们提供了更多的章节级别,例如 \chapter 用于书籍中的章节。以下是一个使用 book 文档类的示例:
用户4821680
2024/03/28
2030
LaTeX简单常用方法笔记,附模板
标题:\title{标题} 作者:\author{作者} 学号:\studentid{123} 正文:
小锋学长生活大爆炸
2021/06/11
1.7K0
LaTeX简单常用方法笔记,附模板
LaTeX浮动体
图片或表格通常都占有较大的一块,直接放在文档常常会造成分页的困难,即前一页放不下,放在后一页又会造成很大的留白。其他一些大块的内容也可能有类似的问题,比如程序算法、大型公式和不宜断开的特殊形状段落。LaTeX 中通过引入浮动体来解决这类问题。
hotarugali
2022/03/18
2.6K0
LaTeX简单常用方法笔记
API参考手册: http://www.personal.ceu.hu/tex/latex.htm
小锋学长生活大爆炸
2020/08/25
1.3K0
LaTeX简单常用方法笔记
我的LaTeX入门
第一次打美赛就用了latex,比赛前刷了各种博客,学习了1天就上场。美赛期间全程扮演不同角色,就是打杂的,大家都是第一次参加,都很累,不过我是最累的,两天两夜没睡。建模,编程,latex写论文全程参与。用latex写论文真的是太爽了,闲着也是闲着,不如把latex好好学习下,方便以后建模比赛提高速度。总结下其他博主的笔记
全栈程序员站长
2022/06/27
2.8K0
我的LaTeX入门
【latex】图片插入和引用
源地址:http://blog.163.com/xiaoting_hu/blog/static/504647722013528143405/
蛮三刀酱
2019/09/10
9.8K0
Latex如何插入图片[通俗易懂]
在写报告或论文的过程中,几乎不可避免的要插入一些图片,并且根据不同情况及要求进行排版,例如如何插入单个图片、一行插入两张图片、插入两行两列图片等等。在此,汇总一下各种插入图片的方法。
全栈程序员站长
2022/06/28
11.4K0
Latex如何插入图片[通俗易懂]
LaTeX 插入图片 公式
首先需要添加一个宏包graphicx,在插入图片的位置可以直接点击LaTeX的插入图片快捷按钮,然后修改其中的 * 位置的内容既可(caption与label若不需要也可以删掉)。
全栈程序员站长
2022/08/14
1.5K0
LaTeX 插入图片 公式
一份其实很短的 LaTeX 入门文档
原文地址:https://liam0205.me/2014/09/08/latex-introduction/
用户1148523
2019/05/26
2.4K0
LaTeX新人教程,30分钟从完全陌生…
本教程面向对LaTeX完全无认知无基础的新人。  旨在让新人能够用最简单快捷的方式,轻松入门,能够迅速使用LaTeX完成基本的文本编辑。  尤其旨在破除部分新人对LaTeX在传闻中难以学习的恐惧感。  在入门之后,面对各种进阶应用、特殊要求与异常状况,可以自行咨询google解决。
AIHGF
2019/02/18
1.6K0
Latex 论文elsevier,手把手如何用Latex写论文
这几天在开始写论文,准备发的是elsevier,这个网站的instruction有问题,下载的东西基本上好多的错误,所以我就写博客记录。
林德熙
2018/09/19
11.6K0
Latex 论文elsevier,手把手如何用Latex写论文
LaTeX详细安装步骤和简明教程
配置TeXLive和TeXstudio。TeXLive是编译器为Latex提供运行所需的环境;TeXstudio编辑器,提供操作界面,需要先安装好TeXLive之后,TeXstudio才能使用。
全栈程序员站长
2022/08/30
4.1K0
LaTeX详细安装步骤和简明教程
一篇极其容易上手的 LaTex 学习文档
LaTeX 有一些列自定义的书写规则组成,有特定的语法,比如Markdown,但语法和变量比前者多。本篇文章,适合刚学习LaTex的小白同学,会对下列几个方面进行介绍:
前端修罗场
2022/07/29
2.8K0
一篇极其容易上手的 LaTex 学习文档
Latex学习笔记(十)新模板的使用
最近有学长做了个新的MCMlatex模板 点击此处可以下载:下载. 主要内容如下: %% 美赛模板:正文部分 \documentclass[12pt]{article} % 官方要求字号不小于 12 号,此处选择 12 号字体 % 本模板不需要填写年份,以当前电脑时间自动生成 % 请在以下的方括号中填写队伍控制号 \usepackage[1234567]{easymcm} % 载入 EasyMCM 模板文件 \problem{A} % 请在此处填写题号 \usepackage{mathptmx}
zstar
2022/06/14
7070
latex教程
本文由腾讯云+社区自动同步,原文地址 https://stackoverflow.club/latex-usage/
羽翰尘
2019/11/19
1.2K0
通俗易懂的Latex教程文档
本篇文档可以搭配视频讲解使用。 讲解视频: https://player.bilibili.com/player.html?aid=933470753&page=1 通俗易懂的Latex教程(附数学
zstar
2022/06/14
2.6K0
通俗易懂的Latex教程文档
LatexNote使用总结
  按win+R键启动命令提示符,输入cmd进入命令窗口,在窗口中输入tex -v,latex -v等等可查看是否安装成功。
炒香菇的书呆子
2021/02/01
5.3K0
相关推荐
【知识】Latex中subfigure和subcaption的详细区别
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验