LaTeX 中 algorithm 环境完整指南

在科研论文里,写清楚算法步骤通常需要用到 伪代码环境。最常见的选择有两个包:

  • algorithm2e —— 功能最强大,适合期刊/学位论文
  • algorithmicx + algpseudocode —— 更灵活、可定制,常用于会议模板

1️⃣ 常用包的选择

  1. algorithm2e

    \usepackage[ruled,vlined]{algorithm2e}
    
    • ruled:算法标题在上方,并有横线
    • vlined:每行后加竖线(折线效果),用来表示语句块作用域
    • linesnumbered :为每一行添加行号
    • 提供 \KwIn, \KwOut, \For, \If, \While 等高阶命令
    • 自带行号、自动缩进、美观
  2. algorithmicx + algpseudocode

    \usepackage{algorithm}
    \usepackage{algpseudocode}
    
    • algorithm 负责浮动体,类似 figure/table
    • algpseudocode 提供命令,比如 \State, \If, \For
    • 优点:高度可控,适合需要精细排版的场景

2️⃣ 基本结构

algorithm2e 示例

\begin{algorithm}[!t]\SetAlgoLined\caption{Power Allocation Algorithm}\KwIn{User set $\mathcal{U}$, channel gains $h_u$, total power $P$}\KwOut{Optimal power allocation $\{p_u\}$}Initialize $p_u \gets 0$ for all $u$\;\For{each user $u \in \mathcal{U}$}{Compute priority weight $w_u$\;\If{$w_u > \text{threshold}$}{Allocate power $p_u \gets f(h_u, w_u)$\;}}\Return $\{p_u\}$
\end{algorithm}

在这里插入图片描述

algorithmicx + algpseudocode 示例

\begin{algorithm}[!t]
\caption{Power Allocation Algorithm}
\begin{algorithmic}[1]
\Require User set $\mathcal{U}$, channel gains $h_u$, total power $P$
\Ensure Optimal power allocation $\{p_u\}$\State Initialize $p_u \gets 0$ for all $u$
\For{each user $u \in \mathcal{U}$}\State Compute priority weight $w_u$\If{$w_u > \text{threshold}$}\State Allocate power $p_u \gets f(h_u, w_u)$\EndIf
\EndFor
\State \Return $\{p_u\}$
\end{algorithmic}
\end{algorithm}

在这里插入图片描述


3️⃣ 注意事项

🔹 (1) 包冲突问题

  • 有些模板(如 IEEEtran)自带 algorithm 环境,可能会和 algorithm2e 冲突
  • 解决方法:如果用 algorithm2e,建议 \usepackage[linesnumbered,ruled,vlined]{algorithm2e} 并避免同时加载 algorithmicx

🔹 (2) 算法位置控制

  • \begin{algorithm}[!t] —— 强制浮动到页面顶部
  • [!h] —— 尽量放在当前位置
  • [!b] —— 底部

🔹 (3) 行号 & 标题规范

  • 行号:algorithm2e\SetAlgoNlRelativeSize{-1} 调整大小
  • 标题:最好简洁,避免超过一行
  • 如果论文模板要求“Algorithm 1: xxx”,需检查 期刊模板 是否自带样式

🔹 (4) 中英文混排

  • 建议输入输出统一用 \KwIn\KwOut,保持一致
  • 中文论文里标题可写中文,但正文尽量保持英文变量与符号

🔹 (5) 长算法分页

  • algorithm2e 自带分页支持
  • algorithmicx 需要加 \usepackage{algcompatible} 来避免分页问题

🔹 (6) 折线(竖线)控制

  • algorithm2e 里,折线由 vlined 选项决定
  • 如果不想要折线,有两种方法:

全局关闭:在导言区去掉 vlined

\usepackage[ruled]{algorithm2e}

局部关闭:在某个算法内部用命令

\SetVline{false}

需要恢复时再写

\SetVline{true}

👉 这样你可以灵活决定:有的算法直观用折线表示作用域,有的算法则更简洁无竖线。


4️⃣ 小技巧

  • 伪代码中写注释

    \tcp{This is a comment in algorithm2e}
    % or
    \Comment{This is a comment in algpseudocode}
    
  • 多行输入/输出

    \KwIn{$\mathcal{U}$: set of users, $P$: total power}
    \KwOut{Optimal allocation $\{p_u\}$}
    
  • 强制换行
    algorithm2e 里用 \;


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/919356.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/919356.shtml
英文地址,请注明出处:http://en.pswp.cn/news/919356.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

纯Qt结合ffmpeg实现本地摄像头采集/桌面采集/应用程序窗口采集/指定采集帧率和分辨率等

一、前言说明 ffmpeg的功能真的是包罗万象,除了基本的编解码,还有个专门的avdevice模块用来对本地设备的采集支持,最开始用到ffmpeg采集本地摄像头的缘由,还不是因为Qt不给力,Qt5开始有个qcamera类,但是只…

【论文笔记】Multi-Agent Based Character Simulation for Story Writing

论文信息 论文标题: Multi-Agent Based Character Simulation for Story Writing - In2Writing 2025 论文作者: Tian Yu, Ken Shi, Zixin Zhao, Gerald Penn 论文链接: https://aclanthology.org/2025.in2writing-1.9/ 论文领域:…

GaussianLSS

背景 BEV感知能够聚合多个传感器输入得到统一的空间表征,在3D感知、下游应用以及跨模态融合中发挥重要作用。现有的BEV感知分为2D反投影(LSS)以及3D投影(BEVFormer),其中3D投影依赖于3D体素的投影&#xff…

卫生许可证识别技术:通过OCR与NLP实现高效合规管理,提升审核准确性与效率

在食品安全、公共卫生管理日益重要的今天,卫生许可证成为企业合规经营的关键凭证。传统人工审核方式效率低、易出错,而卫生许可证识别技术应运而生,正逐步革新监管与合规流程。下面深入解析这项技术的核心要素。核心技术原理卫生许可证识别本…

【habitat学习一】Habitat-Lab 配置键文档详解(CONFIG_KEYS.md)

该文件是 Habitat-Lab(Facebook Research 开发的 Embodied AI 模拟框架)的核心配置文档,详细定义了 Habitat 配置系统(基于 OmegaConf)中所有可配置参数的层级结构、默认值、取值范围及功能说明。以下内容严格按文件结…

AI-调查研究-55-机器人 百年进化史:从Unimate到人形智能体的技术跃迁

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) AI炼丹日志-31- 千呼万唤始出来 GPT-5 发布!“快的…

【python实用小脚本-190】Python一键删除PDF任意页:输入页码秒出干净文件——再也不用在线裁剪排队

Python一键删除PDF任意页:输入页码秒出干净文件——再也不用在线裁剪排队 PDF删页, 零依赖脚本, 命令行秒用, 小白神器, 瑞士军刀 故事开场:一把瑞士军刀救了你 周一早高峰,老板发来 200 页 PDF: “把第 18、25、37 页删掉&#x…

RH134 运行容器知识点

1. 相比较虚拟机,容器有哪些技术优势?答:轻量级:容器共享宿主操作系统的内核,比虚拟机更轻量级,启动速度更快,资源占用更少。高效性:容器可以快速部署和扩展,适合于微服务…

亚矩阵云手机智能定位:助力Snapchat矩阵账号的本地化内容运营穿透技术

——构建跨地理围栏的智能社交营销网络**​​一、技术架构&#xff1a;动态定位引擎与多维度穿透体系​​动态定位引擎​​多源信号融合定位​&#xff1a;集成GPS/基站/WiFi三角定位技术&#xff0c;通过亚矩阵云手机底层驱动注入真实坐标数据&#xff08;误差<5米&#xf…

数据处理和统计分析 —— Pandas 基础(附数据集)

目录 一、概述 &#xff08;一&#xff09;series 1、组成 2、创建方式 3、Series常用属性 &#xff08;二&#xff09;DataFrame 1、组成&#xff1a; 2、构建方式 &#xff08;三&#xff09;数据导入和导出 二、加载数据集 加载部分数据 loc / iloc 三、分组和聚合计算 需求…

github 如何在 readme 显示Star History

在GitHub的README文件中显示Star History&#xff08;星标历史&#xff09;图表&#xff0c;可以通过以下几种方式实现&#xff1a; 使用Star History服务 你可以使用Star History服务来生成并嵌入星标历史图表 。具体步骤如下&#xff1a; 访问 Star History 网站: https:/…

安全防范方案

一、基于地理位置的访问控制&#xff08;核心方案&#xff09; 原理&#xff1a;通过内置GeoIP数据库或第三方IP库识别访问源国家/地区&#xff0c;动态拦截非目标区域IP。 配置步骤&#xff1a; 启用GeoIP模块 登录管理控制台 → 安全策略 → 地理位置策略 → 加载MaxMind Ge…

Python爬虫实战:研究optimesh库,构建Github网格数据采集系统

1. 引言 1.1 研究背景与意义 在计算机辅助设计(CAD)、有限元分析(FEA)、计算流体力学(CFD)等领域,网格作为离散化连续空间的基础载体,其质量直接影响数值模拟的精度与效率。高质量的网格应具备单元形状规则、分布均匀、边界贴合度高等特征,而低质量网格可能导致计算…

利用Qwen大模型进行c++11并发库的学习,与时俱进!!!!

文章目录 1、学习新的东西可以借助ai和官方文档 1.1 会问问题 异步编程教程 1. std::future 2. std::shared_future 3、std::promise 4、4. std::packaged_task 5. std::async 6. std::future_status 和等待函数 综合代码 总结 1、学习新的东西可以借助ai和官方文档 因为别人写…

曲面/线 拟合gnuplot

1. 下载gnuplot windows 版&#xff0c;安装&#xff0c;&#xff08;别的绿色的可能下载即用&#xff0c;推荐下面链接这款&#xff09; gnuplot - Browse Files at SourceForge.net 2. 准备数据&#xff0c;存成data.dat或者其它文件名称&#xff0c;放桌面 数据内容如下…

CentOS Linux 7 (Core)上部署Oracle 11g、19C RAC详细图文教程

一、部署参考链接&#xff1a; 墨天轮数据库社区 - 乐知乐享&#xff0c;同心共济 实战篇&#xff1a;一步步教你 Linux 7 安装 Oracle 11GR2 RAC 实战篇&#xff1a;Linux7 安装 Oracle 19C RAC 详细图文教程 Linux7 安装 Oracle 19C RAC 详细图文教程

WebSocket DevTools 开发调试工具完全指南 – 实时监控、消息拦截、性能分析一站式解决方案

概述 WebSocket DevTools 是一款专为 WebSocket 连接调试而设计的浏览器开发者工具扩展。它提供了实时监控、消息拦截、连接管理等功能&#xff0c;帮助开发者快速定位和解决 WebSocket 相关问题。 主要特性 &#x1f50d; 实时监控&#xff1a;实时显示 WebSocket 连接状态…

常见的光源频闪控制方式

一、光源频闪的优势消除运动模糊&#xff0c;提升成像质量 光源以极短脉冲&#xff08;微秒级&#xff09;与相机曝光严格同步&#xff0c;实现“瞬时冻结”高速运动物体。增强特征对比度&#xff0c;提高缺陷检出率 频闪模式下&#xff0c;LED可短时超负荷工作&#xff0c;峰值…

读From GPT-2 to gpt-oss: Analyzing the Architectural Advances(续)

序 本篇由来&#xff0c;在COC上我当面感谢了组委会和姜宁老师&#xff0c;随即被姜宁老师催稿&#xff0c;本来当天晚上写了一个流水账&#xff0c;感觉甚为不妥。于是决定慢慢写&#xff0c;缓缓道来。要同时兼顾Show me the code&#xff0c;Show me the vide。希望能形成一…

6-7 TIM编码器接口 [江科协STM32]

一、引入&#xff08;1&#xff09;编码器接口的好处&#xff1a;节约软件资源&#xff1a;外部中断计次&#xff0c;程序频繁进入中断&#xff0c;则软件资源会被简单频繁的工作给占用&#xff0c;效率不高使用定时器的编码器接口&#xff0c;再配合编码器&#xff0c;就可以测…