LaTeX 科技排版:包含水平三线图式的伪代码算法排版algorithm



 LaTeX 科技排版:包含水平三线图式的伪代码算法排版algorithm


下面这个文档对排版算法至关重要,请多加练习


             
               
http://blog.renren.com/share/66049300/679318404
 
中文环境下使用
http://wwv.renren.com/xn.do?ss=10791&rt=1
http://www.sciencenet.cn/m/user_content.aspx?id=231910
Latex live 指南
Latex 符号指南
  Latex 公式指南
Latex 图像指南
http://www.latex-project.org/intro.html
http://latex.yo2.cn/articles/latex-learning0.html
2008/8/3 Latex 使用心得
最近学会了使用 Latex ,并且今年的 First Year Report 就是用 Latex 写的,发现了很多也许有用的小技巧,总结一下。

工具:

我现在使用的是 CTex ,一个号称支持中文的 Latex ,不过我现在还用不上中文。该软件免费可下载: http://www.ctex.org/HomePage   里面的 WinEdit 确实是很好用的。编译的内核是 MikTex 2.4 ,有一点老,不过基本功能都有了。
在 linux 上,可以使用 texmaker ,用了用,还是不错的。
一些使用心得 :

插入图片。在 Latex 中,图片是以文件的方式嵌入到文档当中,在转换为 pdf 或者 ps 文件的时候才会嵌入到文件中,否则都是单独存在的。插入图片的基本命令:
\begin{figure}
\centering
\includegraphics[width=0.6\textwidth]{file/vcrouter}
\caption{Internal structure of a VC router}\label{fig:vcrouter}
\end{figure}
\begin{figure} 和 \end{figure} 中间是图片的命令。 \centering 之后的所有内容居中。 \includegraphics 插入图片, width=0.6\textwidth 说明图片的宽度为 0.6 倍页宽,文件名是 file/vcrouter ,用 latex 编译自动搜索后缀为 eps 的图像, pdflatex 编译自动搜索后缀为 pdf 的文件。 \caption 说明该图 片的标题, \label 给出一个标签,文中则可以使用 \ref{} 进行连接。插入图片需要加载 \usepackage{graphicx} 。
插入多幅图片并包含子图的图片:
\begin{figure}[ht]
\centering \subfigure[A bundled-data channel]{
    \includegraphics[width=0.30\textwidth]{file/bundleddata}\label{fig:bundleddata}}
\hspace{0.1\textwidth} \subfigure[The 4-phase bundled-data
protocol]{
    \includegraphics[width=0.4\textwidth]{file/4phasebundled}\label{fig:4phasebundled}}
\caption{The 4-phase bundled-data protocol}\label{fig:4pb}
\end{figure}
这是一个两个子图水平并列的例子。在 \begin{figure} 后添加 [ht] 说明以水平 table 的形式排布,当然也可以使用 tabular ,不过麻烦一些。使用 \includegraphics 需要加载 \usepackage{subfigure} 。
公式编辑。其实可以使用公式编辑器。 MathType 5.0 以上,在 perferences 菜单里的 translators 选择 translate to other languages ,然后选择 latex 。之后,用公式编辑器编辑的公司可以直接用选择和复制放到 latex 文件当中。
如果公式需要加编号,使用 \begin{equation} 和 \end{equation} 就能自动添加编号。不过最好加载 \usepackage{amsmath} 。另外,默认公式是居中的,如果需要改成靠左缩进的方式,在 \documentclass[fleqn] {firstyearreport} 添加这个 fleqn 选择参数。
参考文献最好使用 bibtex 管理。管理的软件可以使用 Endnote ,不过我用的是 jabref ,一个开源软件,还是很好用的。只要 写上 \bibliography{file/reference} ,这里的 file/reference 说明参考文献是 file /reference.bib 文件,所有的参考文献就可以自动加载。关于参考文献的风格,我使用的 是 \bibliographystyle{alpha} ,以作者的第一字母和年代为标号。但是还有很多其他的方式,可以参考这个网站: http://www.cs.stir.ac.uk/~kjt/software/latex/showbst.html
图片格式是一个很烦人的问题。最基本的图片格式是 eps ,尽管现在 pdflatex 支持 pdf 和 jpeg,png 等等,但是我还是认为 eps 比较好。 eps 是矢量图,没有图像失真。用 eps 转换成的 pdf 放大多少都没有问题,体积也很小。
但是,支持 eps 的软件并不多。在 windows 上,我们最习惯的是 Visio 画图,但是 visio 对 eps 基本上没有支持。网上有很多将 visio 的图转化成 eps 的图的方法,但是很多都很麻烦。我现在终于找到了一种比较好的方式。
首先安装一个 postscript 的虚拟打印机, http://www.adobe.com/support/downloads/detail.jsp?ftpID=1502 。然后用 visio 将图片用 postscript 打成 prn 或者 ps 文件。用 CTex 自带的 GSview 打开该文件(没有也没关系,下一个: http://pages.cs.wisc.edu/~ghost/ ), file 菜单中有一个 ps to eps ,哈哈,自动转换边界,就变成 eps 文件了,而且是矢量的。
还有一个问题, pdflatex 偏偏是不支持 eps 文件,默认是 pdf 文件。使用 pdflatex 时,如果没有 pdf 文件会报错。有人说使 用 \usepackage{epstopdf} 可以解决该问题, eps 文件会自动在编译时变为 pdf 文件,但是在 windows 上的使用结果很糟 糕, eps 文件没有自动转换边界,按 A4 打印,结果很难看。
其实加载 \usepackage{epstopdf} ,就是使用 epstopdf 命令转换 eps 文件。但是在 windows 系统中的 epstopdf 命令好像不能自动转换边界,但是 linux 系统上的 epstopdf 是好的。所以我建议使用 linux 系统上的 epstopdf 命令转 化,是会自动转化边界的。
不过大批的文件一个一个去手动转化还是很麻烦,我就写了一个 makefile 文件,假设所有的 eps 文件都在一个文件夹下,那么 make all 一下,就能自动转化为 pdf 文件。知道我在说什么吧,呵呵。 Makefile 的内容如下:
clean:
        rm -f *.pdf
eps_file = $(wildcard *.eps)
pdf_file = $(eps_file:%.eps=%.pdf)
$(pdf_file): %.pdf : %.eps
        epstopdf $<
all: $(pdf_file)
show:
        echo $(pdf_file)
伪代码。伪代码有时候还是要用的,对于复杂的算法,直接写伪代码有时候更容易懂。关于伪代码有一个包 algorithms ,需要加 载 \usepackage{algorithm}\usepackage{algorithmic} , 具体用法可以直接看他的帮助,在下载的压缩包中的 doc 目录下。下载路径: http://www.ctan.org/tex-archive/help/Catalogue/entries/algorithms.html   忘了说了,所有 Latex 相关的文件找不到,或者需要最新版,请查询 http://www.ctan.org/tex-archive/help/Catalogue/entries/algorithms.html   .
伪代码举例
\usepackage{algorithm}    %format of the algorithm
\usepackage{algorithmic}  %format of the algorithm

 
\begin{algorithm}
\caption{Calculate $y = x^n$}
\label{alg1}
\begin{algorithmic}
\REQUIRE $n \geq 0 \vee x \neq 0$
\ENSURE $y = x^n$
\STATE $y \leftarrow 1$
\IF{$n < 0$}
\STATE $X \leftarrow 1 / x$
\STATE $N \leftarrow -n$
\ELSE
\STATE $X \leftarrow x$
\STATE $N \leftarrow n$
\ENDIF
\WHILE{$N \neq 0$}
\IF{$N$ is even}
\STATE $X \leftarrow X \times X$
\STATE $N \leftarrow N / 2$
\ELSE[$N$ is odd]
\STATE $y \leftarrow y \times X$
\STATE $N \leftarrow N - 1$
\ENDIF
\ENDWHILE
\end{algorithmic}
\end{algorithm}
 
效果

 
 algorithm宏包的文档指导 /Files/Lhw978/algorithms.pdf
 
 

LaTex:算法排版

http://www.binghe.org/2010/03/typeset-algorithm-in-latex/


排版可能需要的包:
    usepackage{algorithm}    %format of the algorithm
    usepackage{algorithmic}  %format of the algorithm
    usepackage{multirow}     %multirow for format of table
    usepackage{amsmath}
    usepackage{xcolor}
    DeclareMathOperator*{argmin}{argmin}                   %argmin或argmax公式的排版
    enewcommand{algorithmicrequire}{ extbf{Input:}}   %Use Input in the format of Algorithm
    enewcommand{algorithmicensure}{ extbf{Output:}} %UseOutput in the format of Algorithm

排版图片可能需要的包:
    usepackage{graphics}
    usepackage{graphicx}
    usepackage{epsfig}

算法的排版举例( 例子代码有误)
\begin{algorithm}[htb] %算法的开始
caption{ Framework of ensemble learning for our system.} %算法的标题
label{alg:Framwork} %给算法一个标签,这样方便在文中对算法的引用
\begin{algorithmic}[1] %这个1 表示每一行都显示数字
REQUIRE ~~\ %算法的输入参数:Input
The set of positive samples for current batch, $P_n$;\
The set of unlabelled samples for current batch, $U_n$;\
Ensemble of classifiers on former batches, $E_{n-1}$;
ENSURE ~~\ %算法的输出:Output
Ensemble of classifiers on the current batch, $E_n$;
STATE Extracting the set of reliable negative and/or positive samples $T_n$ from $U_n$ with help of $P_n$; label{code:fram:extract} %算法的一个陈述,对应算法的一个步骤或公式之类的; label{ code:fram:extract }对此行的标记,方便在文中引用算法的某个步骤
STATE Training ensemble of classifiers $E$ on $T_n cup P_n$, with help of data in former batches; label{code:fram:trainbase}
STATE $E_n=E_{n-1}cup E$; label{code:fram:add}
STATE Classifying samples in $U_n-T_n$ by $E_n$; label{code:fram:classify}
STATE Deleting some weak classifiers in $E_n$ so as to keep the capacity of $E_n$; label{code:fram:select}
RETURN $E_n$; %算法的返回值
end{algorithmic}
end{algorithm}
排版效果图


在文中对算法和算法的某个步骤的引用:Therefore, in step
ef{code:fram:extract} of algorithm
ef{alg:Framwork}, we extract $T_n$, a set of reliable negative samples
1、 For和While循环语句的排版举例
(1) 排版效果图


(2)排版代码( 例子代码有误)
\begin{algorithm}[h]
caption{An example for format For & While Loop in Algorithm}
\begin{algorithmic}[1]
FOR{each $iin [1,9]$}
STATE initialize a tree $T_{i}$ with only a leaf (the root);\
STATE $T=T?igcup T_{i};$\
ENDFOR

FORALL {$c$ such that $cin RecentMBatch(E_{n-1})$} label{code:TrainBase:getc}
STATE $T=T cup PosSample(c)$; label{code:TrainBase:pos}
ENDFOR;

FOR{$i=1$; $i<n$; $i++$ }
STATE $//$ Your source here;
ENDFOR

FOR{$i=1$ to $n$}
STATE $//$ Your source here;
ENDFOR

STATE $//$ Reusing recent base classifiers. label{code:recentStart}
WHILE {$(|E_n| leq L_1 )and( D
eq phi)$}
STATE Selecting the most recent classifier $c_i$ from $D$;
STATE $D=D-c_i$;
STATE $E_n=E_n+c_i$;
ENDWHILE label{code:recentEnd}

end{algorithmic}
end{algorithm}
 
 
  算法 algorithm 重命名
  http://bbs.ctex.org/viewthread.php?tid=49008
使用 \usepackage{algorithm2e} 如何 使得 caption {}排版结果产生的“Agorithm”变为 " 算法 "?

milksea 回复:
改这两个
\renewcommand{\listalgorithmcfname}{List of Algorithms}
\renewcommand{\algorithmcfname}{Algorithm}

问题解决
 

,谢谢


 
 
附录。需要插入附录的话,下面的命令会很有用
\appendix
\appendixpage
\addappheadtotoc
\appendix 说明之后的内容为附录, \appendixpage 将添加一个专门的附录页, \addappheadtotoc 将附录添 加到目录当中,需要加载 \usepackage{appendix} 。不过,一旦附录开始,将不能转回正文。另一种方式可以使用 \begin{appendices} 和 \end{appendices} 在正文中添加附录,参看 http://www.tex.ac.uk/cgi-bin/texfaq2html?label=appendix
关于文档中的引用链接和生成 pdf 的链接目录,只能使用 pdflatex 。方法是加载 \usepackage{hyperref} ,所有链接自动生成。
关于所有的 latex 相关的命令,有一本手册(书) http://tobi.oetiker.ch/lshort/lshort.pdf ,好像有中文的翻译版本 http://net.ytu.edu.cn/share/%D7%CA%C1%CF/lshort-cn.pdf
哈哈,还有一个事, space 访问量过万了。 2008 年 8 月 3 日 。
 
 
源地址: http://www.cnblogs.com/Lhw97 8/admin/javascript:showReg(0);                                           
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引:三线表示例代码如下: ```latex \begin{table}[htbp] \caption{示例表格} \begin{tabular}{lcl} \toprule a11 & a12 & a13 \\ \midrule a21 & a22 & a23 \\ a31 & a32 & a33 \\ \bottomrule \end{tabular} \end{table} ``` 这是一个简单的示例表格,使用了三线表,通过`\toprule`、`\midrule`和`\bottomrule`命令来绘制表格的横线。在`tabular`环境中,可以设置列的对齐方和列数。在这个示例中,表格有列,分别居左、居中和居左对齐。 引用:下面是一个更详细的示例,使用了`booktabs`宏包来增强表格的样,并使用`float`宏包来控制表格的位置: ```latex \usepackage{booktabs} \usepackage{float} \begin{table}[H] \caption{实验结果} \label{table_time} \begin{tabular}{lllllll} \toprule 数组大小 & $10^6$ & $10^7$ & $10^8$ \\ \midrule 时间(s) & 0.025 & 0.248 & 2.425 \\ 时间(s) & 0.002 & 0.032 & 0.27 \\ 比 & 12.5 & 7.75 & 9 \\ \bottomrule \end{tabular} \end{table} ``` 这个示例展示了一个带有标题和标签的三线表格。通过使用`booktabs`宏包,我们可以使用`\toprule`、`\midrule`和`\bottomrule`命令绘制美观的横线。 引用:如果需要在算法伪代码中使用三线表格样,可以使用`algorithm`和`algpseudocode`宏包来实现。以下是一个示例: ```latex \usepackage{algorithm} \usepackage{algpseudocode} \usepackage{amsmath} \renewcommand{\algorithmicrequire}{\textbf{Input:}} \renewcommand{\algorithmicensure}{\textbf{Output:}} \begin{algorithm}[htb] \caption{题目} \label{alg:Framwork} \begin{algorithmic} \Require A,B \Ensure C \For{i;i ;i<n} \If{i!=89} \State 吃; \Else \State 喝; \If{i=0} \State 喜喜; \EndIf \EndIf \EndFor \For{地方} \State 多个; \EndFor \end{algorithmic} \end{algorithm} ``` 这个示例展示了一个算法伪代码的格,使用了`algorithm`和`algpseudocode`宏包来创建算法环境和算法语法。在这个示例中,我们使用了`\Require`和`\Ensure`命令指定输入和输出,使用`\For`和`\If`命令创建循环和条件语句,并通过`\State`命令指定具体的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值