【Latex】算法排版规律(中文排版)
参考资料:
- 《algorithm, algorithmic算法包到底什么区别?》
- 《Latex写算法的伪代码排版》
- 《Latex 编写算法伪代码,基于algorithmicx包的使用说明(人工翻译自CTAN)》
- 《latex排版原理》
一、中文排版
1.1 准备工作
- 设置字符编码为中文排版
\usepackage[UTF8]{ctex}%%%使用中文
UTF8指的是编码包;ctex是参数命令,表示中文排版
- 引入算法包,都写上
\usepackage{algorithm}
\usepackage{algorithmicx} %或者\usepackage{algorithmic}
\usepackage{algpseudocode}
- algorithm : 算法的
float warpper
,类似于table, figure
这样的们命令,你可以在你的表格/图形上加一个数字,防止它被分成两页. - algorithmicx: 是
algorithmic
的升级版。事先已经定义好一些常用的命令语句,有如IF,WHILE
等。需要注意的是所有命令语句必须大写。此外,(升级版)自定义一些命令。
- 算法中可用用到特殊的数学公式或者符号
\usepackage{amsmath,amssymb,amsfonts}
举例
4. 利用\renewcommand
可以对系统已有的命令重新定义
英文举例
algorithmicrequire
是algorithmic
中的原有命令,require意为要求algorithmicensure
是algorithmic
中的原有命令,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】算法排版规律(中文排版)相关推荐
- [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 ...
- LaTeX使用CJK支持中文排版
1. CJK 简介 CJK 是 Werner Lemberg 的出色工作.CJK 是中文(Chinese).日文(Japanese).韩文(Korean)三国文字的缩写.顾名思义,它能够支持这三种文字 ...
- LaTex算法代码排版-algorithm2e
LaTex算法代码排版-algorithm2e 1.使用如下宏包 2.示例代码 3.生成效果 4.参考链接 1.使用如下宏包 \usepackage[ruled]{algorithm2e} %带竖线 ...
- LaTeX 中文排版
LaTeX 中文排版宏包.文档类介绍及排版实例 LaTeX 中文排版介绍 LaTeX 中文排版宏包介绍 LaTeX 中文排版文档类介绍 LaTeX 中文排版介绍 目前使用LaTeX实现中文排版的方法主 ...
- latex中怎么设置每一行文字都对齐_排版系列教程 | LaTeX,为学术论文排版而生【浮动体篇】...
今天,迎来LaTeX系列的第四篇[浮动体篇].LaTeX作为最优秀的排版语言,非常值得大家学习,对LaTeX感兴趣朋友可以点个关注,后面持续更新! 关于LaTeX,今天和大家多唠叨一点. 与主流的编程 ...
- Latex文本文档的排版
基于WinEdt \documentclass[a4paper,11pt]{article} \usepackage{latexsym} %使得Latex支持中文 \usepackage{CJK} \ ...
- Mac OS 下用Tex Shop 进行中文排版
作为新手,在Mac OS下用TexShop刚开始学latex排版时,总是无法显示中文,很是无奈. 折腾了一会,终于可以实现中文排版了.分享一下自己的一点经验. 1.TexShop中文排版 首先配置Te ...
- 中文排版规则_非设计师的5条排版规则
中文排版规则 01仅以一种字体开始 (01 Start with only one font) The first tip for non-designers dealing with typogra ...
- Latex入门篇之论文排版
Latex入门篇 1. 概述 1.1 Latex作用 1.2 初识Latex 2. Latex模板的使用 3. Latex排版的正经讲解 3.1 关于tex File文件 3.2 关于普通文本 3.3 ...
最新文章
- 使用Team Foundation Server进行源代码管理(转)
- Mysql非安装版的安装使用相关问题
- rabbit以及php amqp扩展使用
- 蓝字冲销是什么意思_60秒学个词:Elusive 是什么意思?(美音版)
- 计算机应用基础答案解析,计算机应用基础答案
- CSS之基于视窗单位的排版
- 【LeetCode1046】最后一块石头的重量(堆heap)
- 推荐系统--矩阵分解(1)
- python项目方案书模板格式_项目计划书格式范本word文档
- cosx的麦克劳林级数是多少_余弦函数的泰勒级数
- 让闲置的免费邮箱资源创造更大的价值
- python平方上标怎么输出,plot绘图同样适用
- startx 及xinit 介绍
- RPC框架原理与实现
- 数据挖掘进行数据分析常用的方法
- SpringCloud微服务治理技术入门
- 搭建云端数据库【MongoDB】
- win7 修改桌面的路径
- 纳米珠磨机可以运用在哪些领域
- Hello! 404