LaTeX伪代码写法总结

article/2025/8/28 2:46:14

1. 伪代码所用包

一般会接触到的包有algorithm、algorithmic、algorithmicx、algorithm2e这四种包。

algorithm用于给伪代码提供一个浮动体环境,防止其换页或其他因素导致的内容中断,从而跨页显示。

algorithmic用于编辑伪代码的内容,一些for、while、if等语句通过该包中的命令进行编写。

algorithmicx可以看作algorithmic的升级版,提供了一些自定义命令

algorithm2e则是独立于algorithmic和algorithmicx的另一套伪代码环境,两套环境语法、排版上均不相同,本篇博文聚焦于algorithmicx环境中所用的一些简单命令,旨在简单快速上手LaTeX伪代码。

阅读此博文前,请先熟悉LaTeX基本语法,可参考本人博文:https://blog.csdn.net/Zerg_Wang/article/details/104120617

 

2. 环境构筑

algorithmic环境

\begin{algorithm}后面跟着的“H”是指定伪代码浮动体的位置,语法规则与普通浮动体一致。

\documentclass{article}
\usepackage{algorithm}
\usepackage{algorithmic}\begin{document}
\begin{algorithm}[H]\caption{title}%标题\label{alg1}%标签\begin{algorithmic}%这里是伪代码内容\end{algorithmic}
\end{algorithm}
\end{document}

algorithmicx环境

若要使用algorithmicx的语法环境,调用包的时候将algorithmic包替换为一个叫algpseudocode的包即可(该包会自动调用algorithmicx包),其他地方与algorithmic的环境一致。

 

3. 语法规则

这里介绍较为常用的algorithmicx的语法命令(algorithmic命令与algorithmicx类似,区别是:前者的命令全为大写,后者仅首字母大写)

\State <text>

用于一般内容显示,当然不用该命令直接打内容也可以,但\State会为内容自动且正确地缩进,无论外面嵌套了多少个if或是循环。

\Return <text>

返回语句,一般配合\State使用:\State \Return <text>

\Comment {<text>}

注释内容,一般跟在\State命令正常内容之后,注释的内容在排版时是右对齐的。

条件判断语句

\If{<condition>} <text> \EndIf

\If{<condition>} <text> \Else <text> \EndIf

\If{<condition>} <text> \ElsIf{<condition>}  <text> \Else <text> \EndIf

其中\ElsIf语句可以多重嵌套

效果展现:

\If{$a>b$} \State $max = a$
\ElsIf{$a<b$}\State $max = b$
\Else \State same
\EndIf

循环语句

\For{<condition>} <text> \EndFor

\ForAll{<condition>} <text> \EndFor

\While{<condition>} <text> \EndWhile

\Repeat <text> \Until{<condition>}

\Loop <text> \EndLoop

输入输出语句

\Require <text>

\Ensure <text>

当然,如果想改成“Input”“Output”形式,或者“输入”“输出”这种形式,可以在导言区重新定义该命令:

\renewcommand{\algorithmicrequire}{\textbf{自定义输入}}
\renewcommand{\algorithmicensure}{\textbf{自定义输出}}

函数体

\Function{<name>}{<params>} <text> \EndFunction

特殊字符

以下字符仅用于algorithmic环境中

\TRUE \FALSE \AND \OR \XOR \NOT

 

4. 其他

显示行号

\begin{algorithmic}[1]

“1”表示每行均显示行号,如果填“2”,意思是每2行显示一次行号。

标题与标号更改

如果不作额外更改,标题一行会显示为:

如果有多个伪代码,标号为2或者其他数字,则可以在编辑标题内容的语句(环境区)前加:

\setcounter{algorithm}{1}

命令中的数字为1,显示的数字则为1+1=2,以次类推。

如果连标题中的“Algorithm”也要更改为其他内容,可在导言区自定义标签:

\floatname{algorithm}{自定义名}

 

5. 参考资料

https://zhuanlan.zhihu.com/p/145195565

http://hustsxh.is-programmer.com/posts/38801.html

 


http://chatgpt.dhexx.cn/article/gwsdWa53.shtml

相关文章

伪码-伪代码的定义以及实现

伪代码的写法 伪代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言(Pascal&#xff0c;C&#xff0c;Java&#xff0c;etc)实现。因此&#xff0c;伪代码必须结构清晰、代码简单、可读性好&#xff0c;并且类似自然语言…

伪代码教程

伪代码教程 起一篇伪代码基础教程 伪代码(Pseudo code)是一种介于计算机语言和自然语言间的文字和符号&#xff0c;是表达算法的简单而有效的方法。伪代码不需要关注底层是如何实现的&#xff0c;本身就是算法框架的逻辑模型。 一、赋值语句 赋值号 A ← B A\leftarrow B A←…

伪代码怎么编写?

20230522 补充一下&#xff1a; 建议学习PUML的语法&#xff0c;这个和伪代码很相似&#xff0c;也可以看到业务流程图 问 根据IDEA项目代码生成伪代码的工具 答 目前没有根据IDEA项目代码自动生成伪代码的工具。伪代码是一种描述程序算法的语言&#xff0c;通常不是具体的编…

【笔记】伪代码编写

在线LaTeX编写工具overleaf极大的方便了暂时需要为论文编写伪代码的需要&#xff1a;Overleaf, Online LaTeX Editor 该工具只需要简单注册就可以使用。 首先进入overleaf主页&#xff0c;然后完成注册和登录&#xff1a; 接着&#xff0c;需要创建用于储存LaTeX的文件夹&…

伪代码与代码区别

伪码&#xff08;Pseudocode&#xff09;是一种算法描述语言。使用伪码的目的是使被描述的算法可以容易地以任何一种编程语言&#xff08;Pascal&#xff0c;C&#xff0c;Java等&#xff09;实现。因此&#xff0c;伪代码必须结构清晰、代码简单、可读性好&#xff0c;并且类似…

伪代码书写方式

伪代码是描述算法过程的一种语言&#xff0c;它可以直接用中文或者英文等自然语言表示&#xff0c;也可以直接上代码&#xff0c;但常用经典的语法表示(讲的就是这种)。日常生中,别人能通过你的描述明白相应算法就行。 小规范 1、不需要声明变量&#xff0c;变量名可以一定程…

伪代码学习与应用

目录 0. 前言1. 伪代码的基础语法2. 在word中插入伪代码2.1 Aurora和Miktex安装2.2 插入伪代码 参考链接伪代码模板模板一模板二模板三模板四 疑难杂症1. 显示中文&#xff1f;2. 特殊字符&#xff1f;3. 换行&#xff1f; 0. 前言 上一次接触伪代码可能还是在现代数字信号处理…

2D激光slam四种算法建图效果对比

slam算法对照 通过麦克纳姆轮机器人小车构建地图对比Gmapping、Hector、Karto、Cartographer四种算法的优缺点 真实场景图如下图所示&#xff1a; 具体步骤为&#xff1a; 1、打开地图构建命令 roslaunch turn_on_wheeltec_robot mapping.launch2、打开rviz rviz3、打开控制…

SLAM——hector-slam算法原理解析

1、hector-slam代码框架概述 下载源码&#xff1a;git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam.git 原理解读参照&#xff1a;https://blog.csdn.net/weixin_40047925/article/details/80679496 其中包含了许多用于仿真的文件&#xff0c;hector slam算法主…

激光SLAM算法学习(三)——3D激光SLAM

3D激光SLAM 1、3D激光SLAM的介绍 3D激光SLAM的输入: IMU数据 3D激光雷达数据 里程计数据 3D激光SLAM的输出: 3D点云地图 机器人的轨迹 or PoseGraph 2、3D激光SLAM的发展 3D激光SLAM的帧间匹配方法——点云配准算法 Point-to-Plane ICP Feature-based Method 3D激光SLAM的回…

SLAM 算法的一些简单的介绍和理解,有的是从别的地方找到的资料,感觉很有道理。

SLAM&#xff08;Simultaneous localization and mapping&#xff09;,我们要达到的目的就是估计机器人&#xff08;传感器-比如相机&#xff09;的位置轨迹&#xff0c;然后创建地图。locating和map两者互相依赖&#xff0c;密不可分。然而我们 已知的信息一个是 observation&…

2021年开源SLAM算法

1.TANDEM&#xff1a;Tracking and Dense Mapping in Real-time using Deep Multi-view Stereo 慕尼黑工业大学Daniel Cremers团队&#xff0c;实时单目跟踪稠密建图纯视觉SLAM&#xff0c;采用Realsense D455(深度传感器IMU&#xff0c;但只用RGB) 项目地址&#xff1a;https…

激光SLAM技术总结(3)3D激光SLAM算法原理

目录 1. 3D激光SLAM简介 2. 3D激光雷达SLAM 3. 高精度V-LOAM方案 4 发展趋势 1. 3D激光SLAM简介 在 3D 激光 SLAM 领域中&#xff0c; 由 Zhang J 等人提出的LOAM 方案&#xff0c;利用 3D 激光雷达采集数据&#xff0c; 进行基于特征点的扫描匹配&#xff0c; 利用非线性…

实习:slam算法的学习整理

1.odom 2.updata_odom 3.updata_laser updata_landmark 4.resample pf.c 相机的位姿转换是基于世界坐标系的&#xff0c;观察到的路标也会在世界坐标系中不断收敛&#xff0c;若不是计算错误&#xff0c;基本上不会产生漂移。而IMU是自身坐标系标定的&#xff0c;在转换到…

关于slam

什么是SLAM?机器人在未知环境中&#xff0c;要实现智能化需要完成三个任务&#xff0c;第一个是定位(Localization)&#xff0c;第二个是建图(Mapping)&#xff0c;第三个则是随后的路径规划(Navigation)。 之前地平线的高翔博士用这样一句话概括SLAM的释义。不过实际生活中的…

SLAM介绍

https://blog.csdn.net/tiandijun/article/details/55212968 SLAM 1.  前言 读者朋友们大家好&#xff01;&#xff08;很久很久&#xff09;之前&#xff0c;我们为大家介绍了SLAM的基本概念和方法。相信大家对SLAM&#xff0c;应该有了基本的认识。在忙完一堆写论文、博…

【动态SLAM】快速入门(原理介绍及经典算法)

【动态SLAM】快速入门&#xff08;原理介绍及经典算法&#xff09; 0 简介1. 传统视觉SLAM技术的局限2. 常用算法&#xff1a;2.1 基于深度学习的分割方法2.1.1 目标检测&#xff08;Object Detection&#xff09;2.1.2 语义分割&#xff08;INstance Segmentation&#xff09;…

Visual SLAM算法笔记

MulinB按&#xff1a;最近在学习SLAM算法&#xff0c;这里作为阅读笔记记录和总结一下。这里关注的主要是基于视觉的Visual SLAM或Visual Odometry&#xff0c;也包括一部分图像和IMU融合的Visual-Inertial Odometry相关算法。 注&#xff1a;下文中部分链接指向Google Schola…

一起自学SLAM算法:8.2 Cartographer算法

连载文章&#xff0c;长期更新&#xff0c;欢迎关注&#xff1a; 写在前面 第1章-ROS入门必备知识 第2章-C编程范式 第3章-OpenCV图像处理 第4章-机器人传感器 第5章-机器人主机 第6章-机器人底盘 第7章-SLAM中的数学基础 第8章-激光SLAM系统 8.1 Gmapping算法 8.2 Cartographe…

开源3D激光(视觉)SLAM算法汇总(持续更新)

目录 一、Cartographer 二、hdl_graph_slam 三、LOAM 四、LeGO-LOAM 五、LIO-SAM 六、S-LOAM 七、M-LOAM 八、livox-loam 九、Livox-Mapping 十、LIO-Livox 十一、FAST-LIO2 十二、LVI-SAM 十三、FAST-Livo 十四、R3LIVE 十五、ImMesh 十六、Point-LIO 一、Car…