LaTeX 算法代码排版 --latex2e范例总结

LaTeX 写作: 算法代码排版 --latex2e范例总结

 

latex2e 宏包的使用范例:

 

  • usepackage[ruled]{algorithm2e}                                     %算法排版样式1
  • usepackage[ruled,vlined]{algorithm2e}                          %算法排版样式2
  • usepackage[linesnumbered,boxed]{algorithm2e}        %算法排版样式3

使用上述代码中三种不同的宏包编译后的代码排版样式预览:

样式一:

样式二:

样式三:

latex代码排版.tex文件: 

documentclass{article}
usepackage[ruled]{algorithm2e}
%算法排版样式1 %usepackage[ruled,vlined]{algorithm2e} %算法排版样式2 %usepackage[linesnumbered,boxed]{algorithm2e} %算法排版样式3
egin{document} How to use the algorithm2e
in LaTeX ~ file. Examples:
% ------------------------------Example - 1--------------------------------------------- egin{algorithm}[H] caption{How to write algorithms} KwIn{this text} KwOut{how to write algorithm with LaTeX2e } initialization; While{not at end of this document}{ read current; eIf{understand} { go to next section; current section becomes this one; } { go back to the beginning of current section; } } end{algorithm} % ---------------------------Example - 2------------------------------------------------ egin{algorithm} % SetAlgoNoLine %去掉之前的竖线 caption{identifyRowContext} KwIn{$r_i$, $Backgrd(T_i)$=${T_1,T_2,ldots ,T_n}$ and similarity threshold $ heta_r$} KwOut{$con(r_i)$} $con(r_i)= Phi$; For{$j=1;j le n;j e i$} { float $maxSim=0$; $r^{maxSim}=null$; While{not end of $T_j$} { compute Jaro($r_i,r_m$)($r_min T_j$); If{$(Jaro(r_i,r_m) ge heta_r)wedge (Jaro(r_i,r_m)ge r^{maxSim})$} { replace $r^{maxSim}$ with $r_m$; } } $con(r_i)=con(r_i)cup {r^{maxSim}}$; } return $con(r_i)$; end{algorithm} %--------------------------------------------------------------------------------------
some special information The algorithm2e LaTeX package conflicts with several others over the use of the algorithm identifier. A common indicator
is something like this message: To resolve the issues, simply put the following just before the inclusion of the algorithm2e package: %makeatletter % ewifif@restonecol %makeatother %letalgorithm elax %letendalgorithm elax end{document}

 中文latex模式下,更改Input为输入,更改Output为输出的方法: 在算法内部插入、

SetKwInOut{KIN}{输入}

SetKwInOut{KOUT}{输出}

用我们定义的新的宏名“KIN” 在算法开头相应位置替换掉自带的KwInput,用"KOUT" 替换掉KwOutput 即可,实现中文的输入和输出.

具体事例如下:

 1 
enewcommand{algorithmcfname}{算法}
 2 egin{algorithm}[H]
 3 %SetAlgoNoLine
 4 SetKwInOut{KIN}{输入}
 5 SetKwInOut{KOUT}{输出}
 6 %BlankLine  %空一行
 7     caption{标准DE算法 }
 8     label{DE_algo} %
 9     KIN{Population: $ M$; Dimension: $ D $; Genetation: $ T $ }
10     KOUT{The best vector (solution)  $ varDelta $ }
11     $ t leftarrow 1 (initialization) $;
12     For{$i=1$ to $ M $    }
13     {For{$j=1$ to $ D $}
14         {
15             $  {x}_{i,t}^j=x_{min}^j + rand(0,1)cdotp (x_{max}^j-x_{min}^j) $;
16         }
17     }        
18     %--------------------------------------------------    
19 While{$(|f(varDelta)| geqvarepsilon )$      or     $(t leq T )$}
20     {
21         For{$ i=1$  to $M$}
22         {
23 emph{$ lacktriangleright $ (Mutation and Crossover)}\            
24 %	extit{ $ lacktriangleright $ (Mutation and Crossover) }\
25             For{$j=1$ to $ D $}
26             {    
27                 $ v_{i,t}^j =Mutation(x_{i,t}^j)$;    
28                 $ u_{i,t}^j =Crossover(x_{i,t}^j,v_{i,t}^j)$;
29             }
30 emph{$ lacktriangleright $ (Greedy Selection)}\
31             %	extit{ $ lacktriangleright $ (Greedy Selection) }\
32             eIf{$ f(	extbf{u}_{i,t}) <  f(	extbf{x}_{i,t}) $}
33             {
34                 $  	extbf{x}_{i,t} leftarrow	extbf{u}_{i,t}$;    
35                 If{$  f(	extbf{x}_{i,t}) < f(varDelta)$}
36                 {
37                     $ varDelta leftarrow 	extbf{x}_{i,t}$ ;
38                 }
39             }
40             {
41                 $  	extbf{x}_{i,t} leftarrow 	extbf{x}_{i,t} $;
42             }
43         }
44         $ t leftarrow t+1 $;    
45     }    %While        
46     Return the best vector  $varDelta$;
47 end{algorithm}


 

原文地址:https://www.cnblogs.com/tsingke/p/5833221.html