深圳幻海软件技术有限公司 欢迎您!

科研神器Latex:algorithm2e算法常用技巧小结

2023-04-02

科研神器Latex:algorithm2e常用技巧小结一个简单的模板宏包参数的使用基本语法修改Algorithm为中文修改Input、Output为中文自定义算法编号添加算法目录整体效果最近用latex在overleaf上排版算法,使用了algorithm2e包,碰到的坑简直不是一点半点,官方文档又

科研神器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 人正在系统学习中