zoukankan      html  css  js  c++  java
  • 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}


     

  • 相关阅读:
    PHP Mail 简介
    二级叉的结算另一种方法
    PHP extract() 函数
    array_count_values函数
    对碰结算的方法
    array_walk() 函数
    函数引发二级叉的结算
    array_intersect() php筛选两个数组共有的元素
    php文件锁
    JAVA Math常用方法
  • 原文地址:https://www.cnblogs.com/tsingke/p/5833221.html
Copyright © 2011-2022 走看看