科研神器Latex:algorithm2e常用技巧小结
- 一个简单的模板
- 宏包参数的使用
- 基本语法
- 修改Algorithm为中文
- 修改Input、Output为中文
- 自定义算法编号
- 添加算法目录
- 整体效果
最近用latex在overleaf上排版算法,使用了algorithm2e包,碰到的坑简直不是一点半点,官方文档又是全英文的,由于最近受到毕设论文的压迫,压根没有欲望去看,但大海捞针的文章里头真是太难检索到笔者需要的信息了,踩了一大波雷后,终于找到了几个可用的解决方法,LaTeX作为理工科科研人员的必备工具,早晚都得跟它酿酿锵锵,笔者在这里给大家总结一些algorithm2e写算法伪代码常用的小技巧!!!
一个简单的模板
这里先给大家提供一个简单的算法模板:
\documentclass{ctexart}
\usepackage[linesnumbered,ruled,vlined]{algorithm2e}
\begin{document}
\begin{algorithm}[H]
\SetAlgoLined %显示end
\caption{algorithm caption}%算法名字
\KwIn{input parameters A, B, C}%输入参数
\KwOut{output result}%输出
some description\; %\;用于换行
\For{condition}{
only if\;
\If{condition}{
1\;
}
}
\While{not at end of this document}{
if and else\;
\eIf{condition}{
1\;
}{
2\;
}
}
\ForEach{condition}{
\If{condition}{
1\;
}
}
return
\end{algorithm}
\end{document}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
效果图如下:
宏包参数的使用
这句代码表示引用宏包algorithm2e
\usepackage[linesnumbered,ruled,vlined]{algorithm2e}
- 1
下面是它的一些常用参数介绍
参数 | 作用 |
---|---|
linesnumbered | 显示行号 |
ruled | 标题显示在上方,不加就默认显示在下方 |
vlined | 代码段中用线连接 |
boxed | 将算法插入在一个盒子里 |
基本语法
代码 | 作用 |
---|---|
\; | 行末添加行号并自动换行 |
\caption{算法名称} | 插入算法名称 |
\KwData输入信息} | 显示“Data:输入信息” |
\KwIn{输入信息} | 显示“Input:输入信息” |
\KwOut{输出信息} | 显示“Output:输出信息” |
\KwResult{输入信息} | 显示“Result:输出信息” |
\For{条件}{循环语句} | For循环 |
\If{条件}{肯定语句} | If条件判断 |
\eIf{条件}{肯定语句}{否定语句} | If-else判断语句 |
\While{条件}{肯定语句} | While循环 |
\ForEach{条件}{执行语句} | ForEach遍历 |
\tcc{注释} | 显示“\* 注释 *\” |
\tcp{注释} | 显示“\\注释” |
\SetAlgoLined | 显示“每个结尾的end” |
\LinesNumbered | 显示行号 |
修改Algorithm为中文
使用以下语句可将默认的“Algorithm”修改为中文“算法”
\renewcommand{\algorithmcfname}{算法}
- 1
效果图如下:
修改Input、Output为中文
\SetKwInOut{KwIn}{输入}
\SetKwInOut{KwOut}{输出}
- 1
- 2
效果图如下:
自定义算法编号
\renewcommand{\thealgocf}{3-1}
- 1
效果图如下:
添加算法目录
\renewcommand{\listalgorithmcfname}{算\ 法\ 目\ 录}
% 生成算法目录命令
\listofalgorithms
- 1
- 2
- 3
效果图如下:
整体效果
代码如下:
\documentclass{ctexart}
\usepackage[ruled,vlined]{algorithm2e}
\begin{document}
\renewcommand{\listalgorithmcfname}{算\ 法\ 目\ 录}
% 生成算法目录命令
\listofalgorithms
\renewcommand{\algorithmcfname}{算法}
\SetKwInOut{KwIn}{输入}
\SetKwInOut{KwOut}{输出}
\begin{algorithm}
\renewcommand{\thealgocf}{3-1}
\SetAlgoLined %显示end
\caption{algorithm caption}%算法名字
\KwIn{input parameters A, B, C}%输入参数
\KwOut{output result}%输出
some description\; %\;用于换行
\For{condition}{
only if\;
\If{condition}{
1\;
}
}
return
\end{algorithm}
\begin{algorithm}
\renewcommand{\thealgocf}{3-2}
\SetAlgoLined %显示end
\caption{algorithm caption}%算法名字
\KwIn{input parameters A, B, C}%输入参数
\KwOut{output result}%输出
some description\; %\;用于换行
\For{condition}{
only if\;
\If{condition}{
1\;
}
}
return
\end{algorithm}
\end{document}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
最后,感觉有被笔者帮助到的友友请一键三连!!!
文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树首页概览42751 人正在系统学习中