LaTex - algorithm2e算法常用技巧小结

最近用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}

效果图如下:

image

宏包参数的使用

这句代码表示引用宏包algorithm2e

\usepackage[linesnumbered,ruled,vlined]{algorithm2e}

下面是它的一些常用参数介绍

参数 作用
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}{算法}

效果图如下:

image

修改Input、Output为中文

\SetKwInOut{KwIn}{输入}
\SetKwInOut{KwOut}{输出}

效果图如下:

image

自定义算法编号

\renewcommand{\thealgocf}{3-1}

效果图如下:

image

添加算法目录

\renewcommand{\listalgorithmcfname}{算\ 法\ 目\ 录}
% 生成算法目录命令
\listofalgorithms

效果图如下:

image

整体效果

image

代码如下:

\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}
posted @ 2022-12-31 00:23  X1OO  阅读(2098)  评论(0编辑  收藏  举报