本文共 4326 字,大约阅读时间需要 14 分钟。
LaTeX 写作: 算法代码排版 --latex2e范例总结
latex2e 宏包的使用范例:
使用上述代码中三种不同的宏包编译后的代码排版样式预览:
样式一:
样式二:
样式三:
latex代码排版.tex文件:
\documentclass{article} \usepackage[ruled]{algorithm2e} %算法排版样式1%\usepackage[ruled,vlined]{algorithm2e} %算法排版样式2%\usepackage[linesnumbered,boxed]{algorithm2e} %算法排版样式3 \begin{document} How to use the algorithm2e in \LaTeX ~ file. Examples: % ------------------------------Example - 1--------------------------------------------- \begin{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------------------------------------------------ \begin{algorithm} % \SetAlgoNoLine %去掉之前的竖线 \caption{identifyRowContext} \KwIn{$r_i$, $Backgrd(T_i)$=${T_1,T_2,\ldots ,T_n}$ and similarity threshold $\theta_r$} \KwOut{$con(r_i)$} $con(r_i)= \Phi$\; \For{$j=1;j \le n;j \ne i$} { float $maxSim=0$\; $r^{maxSim}=null$\; \While{not end of $T_j$} { compute Jaro($r_i,r_m$)($r_m\in T_j$)\; \If{$(Jaro(r_i,r_m) \ge \theta_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%\newif\if@restonecol%\makeatother%\let\algorithm\relax%\let\endalgorithm\relax\end{document}
中文latex模式下,更改Input为输入,更改Output为输出的方法: 在算法内部插入、
\SetKwInOut{KIN}{输入}
\SetKwInOut{KOUT}{输出}
用我们定义的新的宏名“\KIN” 在算法开头相应位置替换掉自带的\KwInput,用"\KOUT" 替换掉\KwOutput 即可,实现中文的输入和输出.
具体事例如下:
\renewcommand{\algorithmcfname}{算法}\begin{algorithm}[H]%\SetAlgoNoLine\SetKwInOut{KIN}{输入}\SetKwInOut{KOUT}{输出}%\BlankLine %空一行 \caption{标准DE算法 } \label{DE_algo} % \KIN{Population: $ M$; Dimension: $ D $; Genetation: $ T $ } \KOUT{The best vector (solution) $ \varDelta $ } $ t \leftarrow 1 (initialization) $\; \For{$i=1$ to $ M $ } {\For{$j=1$ to $ D $} { $ {x}_{i,t}^j=x_{min}^j + rand(0,1)\cdotp (x_{max}^j-x_{min}^j) $\; } } %-------------------------------------------------- \While{$(|f(\varDelta)| \geq\varepsilon )$ or $(t \leq T )$} { \For{$ i=1$ to $M$} {\emph{$ \blacktriangleright $ (Mutation and Crossover)}\\ %\textit{ $ \blacktriangleright $ (Mutation and Crossover) }\\ \For{$j=1$ to $ D $} { $ v_{i,t}^j =Mutation(x_{i,t}^j)$\; $ u_{i,t}^j =Crossover(x_{i,t}^j,v_{i,t}^j)$\; }\emph{$ \blacktriangleright $ (Greedy Selection)}\\ %\textit{ $ \blacktriangleright $ (Greedy Selection) }\\ \eIf{$ f(\textbf{u}_{i,t}) < f(\textbf{x}_{i,t}) $} { $ \textbf{x}_{i,t} \leftarrow\textbf{u}_{i,t}$\; \If{$ f(\textbf{x}_{i,t}) < f(\varDelta)$} { $ \varDelta \leftarrow \textbf{x}_{i,t}$ \; } } { $ \textbf{x}_{i,t} \leftarrow \textbf{x}_{i,t} $\; } } $ t \leftarrow t+1 $\; } %While \Return the best vector $\varDelta$\;\end{algorithm}
转载地址:http://vsxgi.baihongyu.com/