参考资料:

  • 《algorithm, algorithmic算法包到底什么区别?》
  • 《Latex写算法的伪代码排版》
  • 《Latex 编写算法伪代码,基于algorithmicx包的使用说明(人工翻译自CTAN)》
  • 《latex排版原理》

一、中文排版

1.1 准备工作

  1. 设置字符编码为中文排版
\usepackage[UTF8]{ctex}%%%使用中文

UTF8指的是编码包;ctex是参数命令,表示中文排版

  1. 引入算法包,都写上
\usepackage{algorithm}
\usepackage{algorithmicx} %或者\usepackage{algorithmic}
\usepackage{algpseudocode}
  • algorithm : 算法的float warpper,类似于table, figure这样的们命令,你可以在你的表格/图形上加一个数字,防止它被分成两页.
  • algorithmicx: 是algorithmic的升级版。事先已经定义好一些常用的命令语句,有如IF,WHILE等。需要注意的是所有命令语句必须大写。此外,(升级版)自定义一些命令。
  1. 算法中可用用到特殊的数学公式或者符号
\usepackage{amsmath,amssymb,amsfonts}

举例

4. 利用\renewcommand可以对系统已有的命令重新定义
英文举例

  • algorithmicrequirealgorithmic中的原有命令,require意为要求
  • algorithmicensurealgorithmic中的原有命令,ensure意为确保
  • \textbf是字体加粗命令
  • 黄线下标的Input:是新命令的名称
    效果图如下

    中文的命令重新定义为
\renewcommand{\algorithmicrequire}{\textbf{输入:}}
\renewcommand{\algorithmicensure}{\textbf{输出:}}

1.2 排版

一个栗子:

\begin{document}\begin{algorithm}  %生成浮动式图\caption{DBSCAN 伪代码}  %标题% 由algorighmic完成代码的编译部分\begin{algorithmic}[1] %[1]表示每行显示行号 ,且由123..排序 \Require 点集ps,邻域半径eps,邻域的最小个数MinP.\Ensure 簇 cl.\For {q in ps} \State 标记q为unvisited(未拜访的)\EndFor\For {q in ps }\If {q 的标记为visited 或者 q 属于任意簇}:\State 跳过(continue)\Else:\If {q 是 cp(核心点)}\State 标记q为visited.且创造一个新簇 cl\For {p 是 q的$\epsilon$的邻域内的点(p $\in n_{\epsilon}(q)$ )}\If {p 的标记为unvisited}\State 将p放入簇cl中\EndIf\EndFor\EndIf\EndIf\EndFor\State Return 簇 cl\end{algorithmic}\end{algorithm}\end{document}

图示:

1.3 循环模块语句的书写

A. For语块

\For{<text1>}\State 循环主体<body>
\EndFor

\ForAll{<text2>}\State 循环主体<body>
\EndFor

\For{$i\gets 1, n$} %%%\gets表示逆箭头\State $sum\gets sum+i$
\EndFor

B. While语块

\While{<text1>}\State 循环主体,类似于For<body>
\EndWhile

    \State $sum\gets 0$ (初始设置sumw为0)\State $i\gets 1$ (初始设置i为1)
\While{$i\le n$}\State $sum\gets sum+i$\State $i\gets i+1$
\EndWhile

C. Repeat语块

\Repeat\State 循环主体在前,条件判断在后<body>
\Until{<text2>}

    \State $sum\gets 0$ (初始设置sumw为0)\State $i\gets 1$ (初始设置i为1)
\Repeat\State $sum\gets sum+i$\State $i\gets i+1$
\Until{$i>n$}

1.4 条件模块的语句书写

\If{$quality\ge 9$}\State $a\gets perfect$
\ElsIf{$quality\ge 7$}\State $a\gets good$
\ElsIf{$quality\ge 5$}\State $a\gets medium$
\ElsIf{$quality\ge 3$}\State $a\gets bad$
\Else\State $a\gets unusable$
\EndIf

1.5 输入输出语句

\Require something
\Ensure something\Statex
\State \Call{Create}{10}

1.6 Procedure语块

\Procedure{<name>}{<params>}<body>
\EndProcedure

其他的见参考资料

【Latex】算法排版规律(中文排版)相关推荐

  1. [linux] mac安装latex (mactex) 用texshop中文排版(XeLaTex)

    installing - I want to start using LaTeX on Mac OS X. Where do I start? - TeX - LaTeX Stack Exchange ...

  2. LaTeX使用CJK支持中文排版

    1. CJK 简介 CJK 是 Werner Lemberg 的出色工作.CJK 是中文(Chinese).日文(Japanese).韩文(Korean)三国文字的缩写.顾名思义,它能够支持这三种文字 ...

  3. LaTex算法代码排版-algorithm2e

    LaTex算法代码排版-algorithm2e 1.使用如下宏包 2.示例代码 3.生成效果 4.参考链接 1.使用如下宏包 \usepackage[ruled]{algorithm2e} %带竖线 ...

  4. LaTeX 中文排版

    LaTeX 中文排版宏包.文档类介绍及排版实例 LaTeX 中文排版介绍 LaTeX 中文排版宏包介绍 LaTeX 中文排版文档类介绍 LaTeX 中文排版介绍 目前使用LaTeX实现中文排版的方法主 ...

  5. latex中怎么设置每一行文字都对齐_排版系列教程 | LaTeX,为学术论文排版而生【浮动体篇】...

    今天,迎来LaTeX系列的第四篇[浮动体篇].LaTeX作为最优秀的排版语言,非常值得大家学习,对LaTeX感兴趣朋友可以点个关注,后面持续更新! 关于LaTeX,今天和大家多唠叨一点. 与主流的编程 ...

  6. Latex文本文档的排版

    基于WinEdt \documentclass[a4paper,11pt]{article} \usepackage{latexsym} %使得Latex支持中文 \usepackage{CJK} \ ...

  7. Mac OS 下用Tex Shop 进行中文排版

    作为新手,在Mac OS下用TexShop刚开始学latex排版时,总是无法显示中文,很是无奈. 折腾了一会,终于可以实现中文排版了.分享一下自己的一点经验. 1.TexShop中文排版 首先配置Te ...

  8. 中文排版规则_非设计师的5条排版规则

    中文排版规则 01仅以一种字体开始 (01 Start with only one font) The first tip for non-designers dealing with typogra ...

  9. Latex入门篇之论文排版

    Latex入门篇 1. 概述 1.1 Latex作用 1.2 初识Latex 2. Latex模板的使用 3. Latex排版的正经讲解 3.1 关于tex File文件 3.2 关于普通文本 3.3 ...

最新文章

  1. 使用Team Foundation Server进行源代码管理(转)
  2. Mysql非安装版的安装使用相关问题
  3. rabbit以及php amqp扩展使用
  4. 蓝字冲销是什么意思_60秒学个词:Elusive 是什么意思?(美音版)
  5. 计算机应用基础答案解析,计算机应用基础答案
  6. CSS之基于视窗单位的排版
  7. 【LeetCode1046】最后一块石头的重量(堆heap)
  8. 推荐系统--矩阵分解(1)
  9. python项目方案书模板格式_项目计划书格式范本word文档
  10. cosx的麦克劳林级数是多少_余弦函数的泰勒级数
  11. 让闲置的免费邮箱资源创造更大的价值
  12. python平方上标怎么输出,plot绘图同样适用
  13. startx 及xinit 介绍
  14. RPC框架原理与实现
  15. 数据挖掘进行数据分析常用的方法
  16. SpringCloud微服务治理技术入门
  17. 搭建云端数据库【MongoDB】
  18. win7 修改桌面的路径
  19. 纳米珠磨机可以运用在哪些领域
  20. Hello! 404

热门文章

  1. PS小技巧(二):批处理
  2. 大数据程序员这9大行业上班最赚钱!
  3. 从 IT 时代到 DT 时代的转型
  4. 智慧养老智能化解决方案-智能床垫-智慧养老解决方案
  5. wyh的物品(二分)
  6. 云计算学习路线思维导图
  7. 人机同行:明略数据产品理念之二 | 简单好用
  8. 今天带软测2班学员做面试前的试题(每天几道面试题分析)
  9. INE首届共识大会 | 白眉:一起向百万级领地主进军
  10. 相机标定+鸟瞰图生成(VS2017+OpenCV)