利用Overleaf使用Latex插入算法伪代码

目录

一个简单的例子:

样式一(algorithm2e算法):

样例二(algorithm2e算法):

 样式三(algorithm算法):

下面详细讲解algorithm2e算法的使用

1、宏包参数的使用

2、修改Algorithm为中文

3、修改Input、Output为中文

4、自定义算法编号

5、添加算法目录

总代码


一个简单的例子:

我们使用的是Overleaf, 在线LaTeX编辑器进行编写,在项目的菜单中选择XeLaTeX编译器。

样式一(algorithm2e算法):

\def\SetClass{article}
\documentclass{\SetClass}
\usepackage[top=2cm, bottom=2cm, left=2.5cm, right=2.5cm]{geometry} %定义页边距
\usepackage[linesnumbered,ruled]{algorithm2e}
% \documentclass[1000pt]{article}
\usepackage{amsmath} %数学公式
\usepackage[UTF8]{ctex} %输出中文
\renewcommand{\thealgocf}{2} %这里用来定义算法1,算法2等\begin{document}
\IncMargin{1em} % 页边距
\begin{algorithm}\SetAlgoLined %显示end\caption{Mobility Tree Construction}\SetKwInOut{Input}{Input}\SetKwInOut{Output}{Output}% 设置输入\Input{}% $$括起来表示这是一个数学表达式,会使用英文斜体表示. \\表示换行$X = n \times gene$, expression matrix for $n$ sample with $g$ genes \\% _表示下缀$X_i$ = expression matrix of sample \\% \delta是latex输入希腊字母δ的方式$\delta$: probability \\$f_{mlp}$: the model \\% 定义函数内容\SetKwFunction{MyFuns} {MyFuns}\SetKwProg{Fn}{Function}{:}{}\Fn{\MyFuns{$X$, $X_i$, $X_{func}$, $\delta$}} {setVariables($X$, $Score$) \\% 添加注释\tcp{\emph{This is an annotation}}\label{cmt} \\Train a network, $f_{\theta,0}$, using the samples from $D_L$  \\% for循环\For{$i$ in $1 : MaxIterations$}{Pseudo-label $D_U$ using $f_{\theta, i-1}$ \\$D_{selected} \leftarrow $ Select pseudo-labels using UPS \\$\tilde{D} \leftarrow D_L \bigcup D_{selected}$ \\Initiallize new network $f_{\theta, i}$ \\Train $f_{\theta, i}$ using the samples from $\tilde{D}$. \\$f_{\theta} \leftarrow f_{\theta, i}$ \\}\KwRet $f_{\theta}$}
\end{algorithm}
\DecMargin{1em} % 页边距
\end{document}

样例二(algorithm2e算法):

\def\SetClass{article}
\documentclass{\SetClass}
\usepackage[top=2cm, bottom=2cm, left=2.5cm, right=2.5cm]{geometry} %定义页边距
\usepackage[linesnumbered,ruled]{algorithm2e}
% \documentclass[1000pt]{article}
\usepackage{amsmath} %数学公式
\usepackage[UTF8]{ctex} %输出中文
\renewcommand{\thealgocf}{2} %这里用来定义算法1,算法2等\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}

 样式三(algorithm算法):

%在菜单中,编译器选择XeLaTex
\documentclass[11pt]{ctexart}
\usepackage[top=2cm, bottom=2cm, left=2.5cm, right=2.5cm]{geometry} %定义页边距
\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage{algpseudocode}
\usepackage{amsmath} %数学公式
\usepackage[UTF8]{ctex} %输出中文
\floatname{algorithm}{Algorithm} %算法
\renewcommand{\algorithmicrequire}{\textbf{Input:}} %输入
\renewcommand{\algorithmicensure}{\textbf{Output:}} %输出\begin{document}
\renewcommand{\thealgorithm}{2} %这里用来定义算法1,算法2等\begin{algorithm}\caption{K-Means聚类盲均衡算法} %标题\begin{algorithmic}[1] %每行显示行号,1表示每1行进行显示\Require 输入样本集$D$ = \{$x_1,x_2,...,x_N$\},分簇数$K=2$,最大迭代次数为$M$,从分簇样本中随机选取两点\{$u_1$,$u_2$\}作为初始质心\Ensure 样本分簇质心\{$C_1$,$C_2$\}\For{$m = 1 \to M$} //$m$表示迭代次数\State $C_1 \Leftarrow \emptyset, C_2 \Leftarrow \emptyset$ //初始化各簇\For{$i = 1,2,...,N$}     //$i$表示样本集编号\State $d_{i1} \Leftarrow {\Vert x_i-u_1 \Vert}^2$, $d_{i2} \Leftarrow {\Vert x_i-u_2 \Vert}^2$ //计算$x_i$到两质心的欧式距离\If {$d_{i1} \leq d_{i2}$}\State $C_1 \Leftarrow C_1 \cup \{x_i\}$ //将$x_i$划分到相应的簇\Else\State $C_2 \Leftarrow C_2 \cup \{x_i\}$ %有时候需要用\来转译\EndIf\EndFor\State $\tilde{u_1} \Leftarrow \frac{1}{\vert C_1 \vert}\sum_{x \in C_1} x$, $\tilde{u_2} \Leftarrow \frac{1}{\vert C_2 \vert}\sum_{x \in C_2} x$ //重新计算各簇质心\If{$(\tilde{u_1} == u_1) && (\tilde{u_2} == u_2$} //各簇质心未改变,跳出循环\State \textbf{break} from line 3 %\textbf为加粗\Else\State $u_1 \Leftarrow \tilde{u_1}, u_2 \Leftarrow \tilde{u_2}$ //更新各簇质心\EndIf\EndFor\State \Return $C_1, C_2$ //输出结果\end{algorithmic}\end{algorithm}
\end{document}

下面详细讲解algorithm2e算法的使用

1、宏包参数的使用

这句代码表示引用宏包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

显示行号

2、修改Algorithm为中文

使用以下语句可将默认的“Algorithm”修改为中文“算法”

\renewcommand{\algorithmcfname}{算法}

3、修改Input、Output为中文

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

4、自定义算法编号

\renewcommand{\thealgocf}{3-1}

5、添加算法目录

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

总代码

\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}

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

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

相关文章

2023华数杯数学建模C题完整5问代码思路分析

目前已经写出2023华数杯C题母亲身心健康对婴儿成长的影响全部5问的完整代码和42页论文(正文30页,论文部分摘要如下: 本文共解决了五个问题,涉及婴儿行为特征、睡眠质量与母亲的身体指标和心理指标的关系,以及如何优化…

使用Socket实现TCP版的回显服务器

文章目录 1. Socket简介2. ServerSocket3. Socket4. 服务器端代码5. 客户端代码 1. Socket简介 Socket(Java套接字)是Java编程语言提供的一组类和接口,用于实现网络通信。它基于Socket编程接口,提供了一种简单而强大的方式来实现…

【MATLAB第66期】#源码分享 | 基于MATLAB的PAWN全局敏感性分析模型(有条件参数和无条件参数)

【MATLAB第66期】#源码分享 | 基于MATLAB的PAWN全局敏感性分析模型(有条件参数和无条件参数) 文献参考 Pianosi, F., Wagener, T., 2015. A simple and efficient method for global sensitivity analysis based on cumulative distribution functions.…

zuul实现黑名单,request多次读取问题,stream close

一,背景及设计 1.需要在网关实现黑名单功能,实现拦截指定接口。黑名单用户,会加入指定黑名单列表,关联对应功能,如用户登录,用户下单,用户接单。 2.表设计 平台表:不同系统 黑名单…

Grafana 曲线图报错“parse_exception: Encountered...”

问题现象 配置的Grafana图报错如下: 原因分析 点开报错,可以看到报错详细信息,是查询语句的语法出现了异常。 变量pool的取值为None 解决方案 需要修改变量pool的查询SQL,修改效果如下: 修改后&#x…

HTML5注册页面

分析 注册界面实际上是一个表格&#xff08;对齐&#xff09;&#xff0c;一行有两个单元格。 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevic…

行业追踪,2023-08-08

自动复盘 2023-08-08 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…

Vue2 第二十节 vue-router (四)

1.全局前置路由和后置路由 2.独享路由守卫 3.组件内路由守卫 4.路由器的两种工作模式 路由 作用&#xff1a;对路由进行权限控制 分类&#xff1a;全局守卫&#xff0c;独享守卫&#xff0c;组件内守卫 一.全局前置路由和后置路由 ① 前置路由守卫&#xff1a;每次路由…

设计模式之策略模式(Strategy)

一、概述 定义一系列的算法&#xff0c;把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的类而变化。 二、适用性 1.许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法。 2.需要使用一个算法的不同变体。…

Python-OpenCV 图像的基础操作

图像的基础操作 获取图像的像素值并修改获取图像的属性信息图像的ROI区域图像通道的拆分及合并图像扩边填充图像上的算术运算图像的加法图像的混合图像的位运算 获取图像的像素值并修改 首先读入一副图像&#xff1a; import numpy as np import cv2# 1.获取并修改像素值 # 读…

如何从 Android 设备恢复已删除的文件?

从 Android 设备恢复已删除的文件很简单&#xff0c;但您需要了解内部恢复和SD 卡恢复之间的区别。 目前销售的大多数 Android 设备都配备了 SD 卡插槽&#xff08;通常为 microSD&#xff09;&#xff0c;可以轻松添加额外的存储空间。该存储空间可用于存储照片、视频、文档&a…

Web压测工具http_load原理分析

01、前言 http_load是一款测试web服务器性能的开源工具&#xff0c;从下面的网址可以下载到最新版本的http_load&#xff1a; http://www.acme.com/software/http_load/ 这个软件一直在保持着更新&#xff08;不像webbench&#xff0c;已经是十年的老古董了。 webbench的源…

SpringBoot复习:(22)ConfigurationProperties和@PropertySource配合使用及JSR303校验

一、配置类 package cn.edu.tju.config;import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component;Component ConfigurationPropertie…

HOT79-跳跃游戏 II

leetcode原题链接&#xff1a;跳跃游戏 II 题目描述 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j &…

zookeeper的部署

一 先下载zookeeper 二 解压包 三 修改配置文件 四 把配好文件传到其他的节点上面 五 在每个节点的dataDir指定的目录下创建一个 myid 的文件 六 配置zook的启动脚本 七 设置开机自启 八 分别启动 九查看当前状态service zookeeper status 十 总结 一 先下载zookeeper …

前端处理后端返回的数据中有\n\n字样的换行符标识

后端返回的数据&#xff1a; 上面圈着的部分就是\n&#xff0c;前端需要将数据进行换行&#xff0c;对于这类型的数据&#xff0c;在前端页面是需要进行稍微处理才能正常显示。如果没有经过处理&#xff0c;那么内容是不会在有换行符的位置进行换行显示的 解决办法1&#xff1…

UE5 半透明覆层材质

文章目录 前言介绍示例1示例2示例3 前言 本文采用虚幻5.2.1版本演示&#xff0c;介绍半透明覆层材质&#xff08;覆层材质&#xff09;。 介绍 半透明覆层材质是 UE5.1 版本 更新的功能&#xff0c;使用半透明覆层材质&#xff0c;可以轻松的给物体表面附着一层材质。 在UE5…

Matlab绘图 图例legend 太长,怎么减小指示线的长度

来源 绘图时&#xff0c;稍微减小文字已经不能正常放下图例&#xff0c;想通过调整图例指示线段长度缩减整个图例长度。 方法一 参考matlab官方论坛 leg legend(Plot1,Plot2,...); leg.ItemTokenSize [x1,x2]; By default x130 and x218 so put larger or smaller number…

zookeeper安装教程及其基本使用

目录 zookeeper下载&#xff1a; zookeeper下载官网&#xff1a; 本地安装配置&#xff1a; 启动zookeeper&#xff1a; 开启服务端&#xff1a; 启动客户端&#xff1a; 查看zookeeper的状态&#xff1a; zoo.cfg文件解读&#xff1a; zookeeper的集群安装&#xff1a…

享元模式 Flyweight Pattern 《游戏编程模式》学习笔记

如果我们要存储一个树一样的数据结构&#xff0c;直觉来说我们会这么写 但是实际上我们会发现&#xff0c;哪怕森林里有千千万万的树&#xff0c;它们大多数长得一模一样。 它们使用了相同的网格和纹理。 这意味着这些树的实例的大部分字段是一样的。 那么我们就可以将树共…