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

这篇具有很好参考价值的文章主要介绍了利用Overleaf使用Latex插入算法伪代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一个简单的例子:

样式一(algorithm2e算法):

样例二(algorithm2e算法):

 样式三(algorithm算法):

 样式四(algorithm算法):

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

1、宏包参数的使用

2、修改Algorithm为中文

3、修改Input、Output为中文

4、自定义算法编号

5、添加算法目录

总代码

附录

1、“\\”和“\;”区别

2、返回

4、添加斜体文本

5、附案例

6、空格

7、更多


一个简单的例子:

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

latex插入伪代码,绘图,算法

样式一(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}

latex插入伪代码,绘图,算法

样例二(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}

latex插入伪代码,绘图,算法

 样式三(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)\ and\ (\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}

latex插入伪代码,绘图,算法

 样式四(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)\ and\ (\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$ //输出结果
            
            \State
            \Function{ConstructTree}{$traj, nary$}
            \State Initialize an empty tree $MT$ with no nodes and edges
            \State Initialize an empty dictionary variable $map$
            \State $len\gets$ The length of $traj$
            \State Initialize the dictionary variable $flags$ of length $len$
            \State \Call{AddChild}{$MT, traj, len-1, map, flags$}
            \State \Return{$MT$}
        \EndFunction
        \end{algorithmic}
    \end{algorithm}
\end{document}

latex插入伪代码,绘图,算法

下面详细讲解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}{算法}

latex插入伪代码,绘图,算法

3、修改Input、Output为中文

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

latex插入伪代码,绘图,算法

4、自定义算法编号

\renewcommand{\thealgocf}{3-1}

latex插入伪代码,绘图,算法

5、添加算法目录

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

latex插入伪代码,绘图,算法

总代码

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

latex插入伪代码,绘图,算法

附录

均为基于 algorithm2e的。

1、“\\”和“\;”区别

\\换行后没有分号,而\;有。

latex插入伪代码,绘图,算法

2、返回

三种返回方式

\SetKwProg{Fn}{Function}{:}{end}
\Fn{FMain asda}{
  \KwRet $f_{\theta}$\;
  \Return{$f_{\theta}$}\;
  \textbf{return}{ $f_{\theta}$}\;
}

latex插入伪代码,绘图,算法

 3、定义函数Function

\SetKwProg{Fn}{Function}{:}{end}
\Fn{FMain asda}{
    这里是一个函数定义\\
}

latex插入伪代码,绘图,算法

4、添加斜体文本

\textit{AddChild(MT, traj, len-1, map, flags)}\;

latex插入伪代码,绘图,算法

5、附案例

\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{Mobility Tree Construction}
    \label{alg:1}
    \KwIn{One of the user's trajectory $traj$; The number of branches in the tree $nary$;}
    \KwOut{The Mobility Tree $MT$ corresponding to the input trajectory}
    \SetKwProg{Fn}{Function}{:}{end}
    \Fn{AddChild(MT, traj, idx, map, flags)}{
        $node\gets traj_{idx}$\;
        $map_{idx}\gets$ The number of nodes in $MT$\;
        Add $node$ to $MT$\;
        \If{$idx > 0$ and $flag_{idx} != 0$}{
            $flag_{idx}\gets 0$\;
            $i\gets nary$\;
            \While{$i > 0$}{
                $child\gets$ \textit{AddChild(MT, traj, idx-i, map, flags)}\;
                $edge\gets$ $child$ to $node$  // $src \rightarrow dst$\;
                Add $edge$ to $MT$\;
            }
        }
        \Return{$node$}
    }

    \Fn{ConstructTree(traj, nary)}{
        Initialize an empty tree $MT$ with no nodes and edges\;
        Initialize an empty dictionary variable $map$\;
        $len\gets$ The length of $traj$\;
        Initialize the dictionary variable $flags$ of length $len$\;
        \textit{AddChild(MT, traj, len-1, map, flags)}\;
        \Return{$MT$}
    }
\end{algorithm}
\end{document}

latex插入伪代码,绘图,算法

6、空格

一个斜杠\加空格即可。

\ 

7、更多

latex插入伪代码,绘图,算法

写LaTex数学公式大全:LaTeX-Math-Symbols.pdf (msu.edu)

latex插入伪代码,绘图,算法

latex插入伪代码,绘图,算法

latex插入伪代码,绘图,算法

latex插入伪代码,绘图,算法文章来源地址https://www.toymoban.com/news/detail-728274.html

到了这里,关于利用Overleaf使用Latex插入算法伪代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数学建模 latex 图片以及表格排版整理(overleaf)

    无论是什么比赛,图片和表格的格式都非常重要,这边的重要不只是指规范性,还有抓住评委眼球的能力。 那么怎样抓住评委的眼球? 最重要的一点就是善用 图片 和 表格 (当然撰写论文最重要的是 逻辑 ,这个是需要长期的阅读和总结训练的,前期甚至还需要大量的背诵

    2023年04月10日
    浏览(45)
  • 写毕设投期刊神器——在线LaTeX编辑器Overleaf

    LaTeX 是是科研工作中最常用的文档排版系统,然而我个人觉得很多 LaTeX 编辑器没有做到开箱即用,即使别人告诉我 LaTeX 的文献管理是多么方便。造成很长一段时间,我都处于: LaTeX 真好,但我选Markdown。 而Overleaf让我重新喜欢上使用LaTeX了,Overleaf是开源的在线 LaTeX 编辑器软

    2024年01月19日
    浏览(49)
  • 美赛LaTeX关键操作讲解--绘制表格,插入图片、公式、代码块

    后天2022年美赛就开始了,针对写作要求,博主着重整理了一下运用LaTeX绘制表格,插入图片、公式的详细操作以及相应的注释要求。(以下代码直接复制便可以使用,编号格式方面以及设置好了) 希望大家都能在2022的美赛取得个好成绩哦! 目录 1.绘制表格 1.1代码块如下:

    2024年02月08日
    浏览(55)
  • 基于overleaf 的美国大学生数学建模竞赛(美赛)latex 格式模板(含信件和附件)

    可能是最后一次打美赛了,感觉有的东西不整理整理有点对不起自己的经历。感觉为这个比赛付出过挺多的,这几次参赛的经历也从各种方面提升了我的能力,相信未来的自己也还会怀念这段时光。 个人认为美赛的难点之一就是优质资源难得,不知道自己的整理算不算优质资

    2024年02月04日
    浏览(48)
  • 使用ppt和texlive生成eps图片(高清、可插入latex论文)

    写论文经常需要生成高清的图片插入到论文中,本文以ppt画图生成高质量的eps图片的实现来介绍具体操作方法。关于为什么要生成eps图片,一个是期刊要求(也有不要求的),另一个是显示图像的质量高。 转化获得eps图片的方法很多,什么ps软件,adobe收费软件等,但是很多

    2024年02月09日
    浏览(57)
  • 【LaTeX 教程】07. LaTeX 插入文献

    大家在撰写学术论文的时候,经常会遇到插入参考文献的时候,在这里总结在LaTeX 中插入文献的方法,方便大家学习,希望对大家的科研与学习有所帮助。 常见方法 BibTex法 BibTeX 是一种格式和一个程序,用于协调LaTeX的参考文献处理. BibTeX 使用数据库的的方式来管理参考文献

    2024年02月08日
    浏览(46)
  • Latex写算法的伪代码排版

    代码: 效果: 前期准备: 代码1: 效果: 代码2: 效果: 代码3: 效果: 代码4: 效果: algorithm2e包可能会与其它包产生冲突,一个常见的错误提示是“Too many }\\\'...”。为了解决这个问题,要在引入algorithm2e包之前加入下面的命令: 前期准备: 代码1: 效果: 代码2: 效果:

    2024年02月01日
    浏览(35)
  • 【实用技巧】Latex写算法伪代码(pseudocode)

    本文使用线上Latex编译平台:https://www.overleaf.com 注册登录后即可创建Latex项目 创建新项目,这里命名为pseudocode_demo 在main.tex文件中加入第三方包 如果需要显示中文则另外加 usepackage{CJKutf8} 需要注意的是,overleaf使用的是pdfLaTeX进行编译的,对于中文需要进行额外的适配操作

    2024年02月08日
    浏览(35)
  • 【LaTex】LaTex 的使用与写作(快速入门,尾附:简洁的论文模板代码)

    在编辑框第一行,输入以下内容来设置文件类型: 一般也可以在 documentclass 处设置基本参数。(如默认字体大小为12pt,纸张大小为A4,单面打印。) 则,第一行内容需改为: 文件的正文部分需要放入 document 环境中,在 document 环境外的部分不会出现在文件中。 加载(amsma

    2024年02月08日
    浏览(49)
  • latex图片插入问题汇总

    1.插入图片不显示: 问题描述: 正确使用插入图片代码,运行没有错误提示,但是编译出来的pdf却不显示图片,只有一个图例。 提示: (1)检查是否插入图片宏包usepackage{graphicx},检查图片存放路径; (2)检查图片尺寸是否过大编译文件不能显示; (3)XeLatex和PDFLatex运

    2024年02月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包