有时候我们需要在文档中加入源代码,这里给出一个代码示例,供大家参考。

案例1:algorithm宏包

1 源代码

\documentclass{article}
\setlength\textwidth{245.0pt}
\usepackage[noend]{algpseudocode}
\usepackage{algorithm}\begin{document}\begin{algorithm}[t]\caption{algorithm caption} %算法的名字\hspace*{0.02in} {\bf Input:} %算法的输入, \hspace*{0.02in}用来控制位置,同时利用 \\ 进行换行input parameters A, B, C\\\hspace*{0.02in} {\bf Output:} %算法的结果输出output result\begin{algorithmic}[1]\State some description % \State 后写一般语句\For{condition} % For 语句,需要和EndFor对应\State ...\If{condition} % If 语句,需要和EndIf对应\State ...\Else\State ...\EndIf\EndFor\While{condition} % While语句,需要和EndWhile对应\State ...\EndWhile\State \Return result\end{algorithmic}
\end{algorithm}\end{document}

2 代码效果

案例2:带公式的算法伪代码

1 源代码

\documentclass[11pt]{ctexart}
\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}
\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage{algpseudocode}
\usepackage{amsmath}\floatname{algorithm}{算法}
\renewcommand{\algorithmicrequire}{\textbf{输入:}}
\renewcommand{\algorithmicensure}{\textbf{输出:}}\begin{document}\begin{algorithm}\caption{用归并排序求逆序数}\begin{algorithmic}[1] %每行显示行号\Require $Array$数组,$n$数组大小\Ensure 逆序数\Function {MergerSort}{$Array, left, right$}\State $result \gets 0$\If {$left < right$}\State $middle \gets (left + right) / 2$\State $result \gets result +$ \Call{MergerSort}{$Array, left, middle$}\State $result \gets result +$ \Call{MergerSort}{$Array, middle, right$}\State $result \gets result +$ \Call{Merger}{$Array,left,middle,right$}\EndIf\State \Return{$result$}\EndFunction\State\Function{Merger}{$Array, left, middle, right$}\State $i\gets left$\State $j\gets middle$\State $k\gets 0$\State $result \gets 0$\While{$i<middle$ \textbf{and} $j<right$}\If{$Array[i]<Array[j]$}\State $B[k++]\gets Array[i++]$\Else\State $B[k++] \gets Array[j++]$\State $result \gets result + (middle - i)$\EndIf\EndWhile\While{$i<middle$}\State $B[k++] \gets Array[i++]$\EndWhile\While{$j<right$}\State $B[k++] \gets Array[j++]$\EndWhile\For{$i = 0 \to k-1$}\State $Array[left + i] \gets B[i]$\EndFor\State \Return{$result$}\EndFunction\end{algorithmic}\end{algorithm}
\end{document}

代码运行效果

案例3:带范围线版本

源代码

\documentclass[8pt,twocolumn]{ctexart}
\usepackage{amssymb}
\usepackage{bm}
\usepackage{textcomp} %命令\textacutedbl的包,二阶导符号% Page length commands go here in the preamble
\setlength{\oddsidemargin}{-0.25in} % Left margin of 1 in + 0 in = 1 in
\setlength{\textwidth}{9in}   % 纸张宽度Right margin of 8.5 in - 1 in - 6.5 in = 1 in
\setlength{\topmargin}{-.75in}  % Top margin of 2 in -0.75 in = 1 in
\setlength{\textheight}{9.2in}  % Lower margin of 11 in - 9 in - 1 in = 1 in
\setlength{\parindent}{0in}\makeatletter
\newif\if@restonecol
\makeatother
\let\algorithm\relax
\let\endalgorithm\relax
\usepackage[linesnumbered,ruled,vlined]{algorithm2e}%[ruled,vlined]{
\usepackage{algpseudocode}
\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}} \begin{document}\begin{algorithm}
\caption{component matrices computing}
\LinesNumbered
\KwIn{$\mathcal{X}\in\mathbb{R}^{l_1\times l_2\times\cdots\times l_N},\varepsilon,\lambda,\delta,R$}
\KwOut{$A^{(j)}s$ for $j=1$ to $N$}
\textbf{Initialize} all $A^{(j)}s$ //which can be seen as the $0^{th}$ round iterations\;{$l$\hspace*{-1pt}\textacutedbl}$=L$ //if we need to judge whether $(11)$ is true then {$l$\hspace*{-1pt}\textacutedbl} denotes $L|_{t-1}$\;\For{ each $A_{i_jr}^{<!-- -->{j}}(1\le j\le N,1\le i_j\le I_j,1\le r\le R)$ }
{//$1^{st}$ round iterations\;$g_{i_jr}^{(j)'}=g_{i_jr}^{(j)}$\;$A_{i_jr}^{(j)'}=A_{i_jr}^{(j)}$//if the rollback shown as $(12)$ is needed,$A_{i_jr}^{(j)'}$ denotes $A_{i_jr}^{(j)}|_{t-1}$\;$A_{i_jr}^{(j)}=A_{i_jr}^{(j)}-\mathrm{<!-- -->{\bf sign}}\left(g_{i_jr}^{(j)}\right)\cdot\delta_{i_jr}^{(j)}$\;
}\Repeat(//other rounds of iterations for computing component matrices){$\bm{L\le \varepsilon}$ or maximum iterations exhausted}
{$l'=L$ //if we need to judge whether $(11)$ is true then $l'$ denotes $L|_t$\;\For{ each $A_{i_jr}^{<!-- -->{j}}(1\le j\le N,1\le i_j\le I_j,1\le r\le R)$}{\If{$g_{i_jr}^{(j)}\cdot g_{i_jr}^{(j)'}>0$}{$A_{i_jr}^{(j)'}=A_{i_jr}^{(j)} $\;$g_{i_jr}^{(j)'}=g_{i_jr}^{(j)} $\;$\delta_{i_jr}^{(j)}=\bm{\min}\left(\delta_{i_jr}^{(j)}\cdot\eta^{+},Max\_Step\_Size\right)$\;$A_{i_jr}^{(j)}=A_{i_jr}^{(j)}-\mathrm{<!-- -->{\bf sign}}\left(g_{i_jr}^{(j)}\right)\cdot\delta_{i_jr}^{(j)}$\;}\ElseIf{$g_{i_jr}^{(j)}\cdot g_{i_jr}^{(j)'}<0$}{\If{$l'>l$\hspace*{-1pt}\textacutedbl}{$g_{i_jr}^{(j)'}=g_{i_jr}^{(j)}$\;$A_{i_jr}^{(j)}=A_{i_jr}^{(j)'}$// if $(11)$ is true then rollback as $(12)$\;$\delta_{i_jr}^{(j)}=\bm{\max}\left(\delta_{i_jr}^{(j)}\times\eta^{-},Min\_Step\_Size\right)$\;}\Else{$A_{i_jr}^{(j)'}=A_{i_jr}^{(j)} $\;$g_{i_jr}^{(j)'}=g_{i_jr}^{(j)} $\;$\delta_{i_jr}^{(j)}=\bm{\max}\left(\delta_{i_jr}^{(j)}\cdot\eta^{-},Min\_Step\_Size\right)$\;$A_{i_jr}^{(j)}=A_{i_jr}^{(j)}-\mathrm{<!-- -->{\bf sign}}\left(g_{i_jr}^{(j)}\right)\cdot\delta_{i_jr}^{(j)}$\;}}\Else{$A_{i_jr}^{(j)'}=A_{i_jr}^{(j)} $\;$g_{i_jr}^{(j)'}=g_{i_jr}^{(j)} $\;$A_{i_jr}^{(j)}=A_{i_jr}^{(j)}-\mathrm{<!-- -->{\bf sign}}\left(g_{i_jr}^{(j)}\right)\cdot\delta_{i_jr}^{(j)}$\;}}$l$\hspace*{-1pt}\textacutedbl$=l'$\;
}
\end{algorithm}
\end{document}

代码效果:

参考资料:

LaTeX写伪代码_金良山庄-CSDN博客_latex写代码

Latex语法学习05:代码表格的制作相关推荐

  1. 【每天1分钟】MarkDown语法学习之插入表格

    [每天1分钟]MarkDown语法学习之插入表格 表格是Markdown语法中比较复杂的一个,其语法如下: 表头|条目一|条目二 :---:|:---:|:---: 项目|项目一|项目二 以上标记显示 ...

  2. LaTeX语法学习(一):数学公式篇

    LaTeX语法学习(一):数学公式篇 文章目录 LaTeX语法学习(一):数学公式篇 一.前言 二.数学模式 1.行内公式 2.行间公式 3.公式手动编号 4.公式加粗 5.更改公式字母颜色 三.数学 ...

  3. latex语法学习(二)

    文档和语言的结构 如果排版风格反映了内容的逻辑和语义结构,读者就能看见和感觉到文章的这种脉络. 在latex中段落是最重要的文档单位,我们之所以称之为"文档单位",因为段落是反映一 ...

  4. Latex语法学习04:参考文献的引用

    目录 首先准备bib文件: 1 数字标号型参考文献 2 基于natbib包的参考文献引用 2.1 案例 2.2 命令解析 2.2.1 数字引用格式 2.2.2 错误处理 2.2.3 命令解析 3 引用 ...

  5. Latex语法学习10:盒子的使用(fbox, tcolorbox, boitee),支持设置颜色和换页

    目录 1 \fbox 2 彩色的盒子(可换页) 3 boitee环境 1 \fbox 这段代码主要用到了三个命令: \noindent:表示取消缩进 \textwidth:表示设置盒子宽度为页面宽度 ...

  6. Latex语法学习08:打通latex、mathml和word公式转换

    目录 1 基于工具的转换 1.1 获取mathml源码 1.2 将mathml代码转换为latex 1.3 latex向mathml的转换 1.4 mathml粘贴到word 1.5 word转mat ...

  7. 3、Latex学习笔记之表格篇

    目录 表格 1.基本结构 1.1框架 1.2行高 1.3标题 1.4标签 1.5居中 1.6表格 2.引用表格 3.常见表格类型 3.1三线表 3.2 斜线表头 3.3合并单元格 4.在线表格生成工具 ...

  8. LaTex自用学习笔记(为论文与数学建模排版准备)——涉及字体、符号、文档结构、插入图片、插入表格、图表浮动、数学公式、矩阵等

    目录 简介 字体的设置 符号使用情境 文档结构 插图 1.插图的方法 2.图片的参数 插入表格 图表的浮动体环境 数学公式 矩阵 自定义命令或环境 1.\newcommand和\renewcomman ...

  9. Latex笔记(一)—— 复杂表格的制作

    引言 表格是论文写作中的重要一环,尤其是较为复杂的三线表的制作. 在网上寻找了很久发现没有比较综合的解释方法,因此将查阅的关于复杂三线表的制作的资料总结成了一篇笔记. 由于笔记是用Latex写作的,因 ...

  10. Markdown语法学习|精简版

    markdown语法学习|精简版 文章开头 点击这里回到下方介绍 页面跳转 的阅读位置 点击这里回到下方介绍 toc 的阅读位置 此笔记学习摘抄自Markdown语法大全(超级版),并根据笔者的使用不 ...

最新文章

  1. 软件开发质量控制-CMMI读后疑问
  2. Python标准库collections模块的Counter类
  3. C51语言支持哪些数据类型,C51编译器支持的数据类型(1)
  4. POJ3320 Jessica's Reading Problem 尺取法
  5. 计算机综合试验,计算机综合实验1.doc
  6. 【Java基础】 JQuery的常用操作
  7. 死循环线程php,QObject的派生类方法实现多线程死循环问题
  8. python-time模块--pickle模块
  9. 5款优秀免费在线数据备份/存储工具
  10. Adobe Experience Cloud落地中国,Adobe、微软与世纪互联共庆三方合作
  11. 古人用计算机计算图片,人类最早的计算器《算表》如何帮助古人完成计算?
  12. 通联数据举办公益讲座 探讨金融大数据发展机会
  13. 京东数据库智能运维平台建设之路
  14. hls简述(HTTP live Streaming)
  15. shor 量子算法,合数分解
  16. linux查看进程号、端口号
  17. 这可能是全网最详细的计算机网络面经(笔记二)
  18. PLC编程入门梯形图实例讲解
  19. 如何营造办公室的友好氛围
  20. Arduino开发遥控小车(三)基于nRF24L01无线模块实现舵机转向和直流电机调速

热门文章

  1. 下拉列表dropdown取消默认点击隐藏及修复需要二次点击的方法
  2. 苹果屏幕上的小圆点_官网新增2个内购软件 ! iOS 14上最值得使用的5个好功能,你都会了吗?...
  3. java数字时钟界面_Java数字时钟实现代码
  4. 手机号码格式和邮箱格式校正
  5. 手机邮箱服务器设置安全类型,手机邮箱设置
  6. IntelliJ IDEA集成JProfiler,入门教程
  7. 笔记本计算机无法上无线网络,笔记本电脑连不上无线网络的处理方法
  8. 在html中函数无效,无法在按钮点击HTML中调用JavaScript函数
  9. 自用PHP版H5微信公众号吸粉引流的恶搞小游戏 当天收获500+粉丝
  10. php短信接口怎么用,php短信接口接入详细过程