现在的位置: 首页 > 综合 > 正文

LaTeX 中算法有关宏包和命令的使用

2014年01月28日 ⁄ 综合 ⁄ 共 2334字 ⁄ 字号 评论关闭

留存:插入表格 如果一项内容太多需要换行
 加入 \newcommand{\tabincell}[2]{\begin{tabular}{@{}#1@{}}#2\end{tabular}}
命令: \tabincell{c}{aa\\bb}
 
公式太长,需要分割为两行是:可以用如下方法:
可以使用下面的语句,使得编号显示在两个等式的中间:
\begin{equation}
\begin{array}{l}
a+b=1 \\
c+d=2
\end{array}
\end{equation}

 

 



• 宏包

首先,需要使用以下宏包,

\usepackage{algorithm}

\usepackage{algorithmic}


• 输入、输出和返回值
此外如果算法有标准的输入和输出,以及返回值,可以使用相应的输入、输出、返回值命令,输入、输出、返回值命令依次分别为:

% 该命令为输入参数说明的命令,至于命令的 "~~",具体作用也不清楚,参考的链接中是这样给的,

\REQUIRE ~~ \\

% 以下命令为输出参数说明的命令

\ENSURE ~~ \\

% 使用返回值格式命令

\RETURN


• 命令重命名
当然,如果不喜欢宏包中默认的命令,则可以使用以下latex命令将原有的默认命令进行重命名,
\renewcommand{\algorithmrequire}{\textbf{Input:}}
\renewcommand{\algorithmensure}{\textbf{Output:}}
按照以上两句代码重定义后,就可以用 "Input:" 和 "Output:" 来分别表示输入和输出了。

• 完整例子以及详细说明
以下为一个使用算法的tex 代码例子,
\usepackage{algorithm}
\usepackage{algorithmic}

\begin{algorithm}
\caption{算法的标题}
\label{alg:framwork}     %
给算法一个标签,以便其它地方引用该算法

\begin{algorithmic}[1]       %
数字 "1" 表示为算法显示行号的时候,每几行显示一个行号,如:"1" 表示每行都显示行号,"2" 表示每两行显示一个行号,也是为了方便其它地方的引用

\REQUIRE ~~\\      %
算法的输入参数说明部分

    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 ~~\\     %
算法的输出说明

    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}
    %
 
   算法的具体描述,也可以给具体的算法行给定标签,方便其它部分对它的引用
\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}
\RETURN $E_n$;        %
算法的返回值


\end{algorithmic}
\end{algorithm}

• for 循环的使用例子
∘ 例子, for 格式
\FOR {each $i \in [1,9]$}
    \STATE
initialize a tree $T_{i}$ with only a leaf (the root); \\

    \STATE
$T = T\bigcup $_{i};$ \\

\ENDFOR

∘ 例子2,forall 格式
\FORALL {forall 循环条件} \label{alg:code:tag:1}
    \STATE
forall 循环体算法伪代码行一 
   \label{alg:code:tag:2}
    \STATE
forall 循环体算法伪代码行二 
   \label{alg:code:tag:3}
\ENDFOR

• while 循环的使用例子
\WHILE {while循环条件}
    \STATE
while循环体算法伪代码行一

    \STATE
while 循环体算法伪代码行二

\ENDWHILE

• if
\IF {if条件描述}
    \STATE
if代码描述一

    \STATE
if代码描述二

\ENDIF

• if ... else ...
\IF {if条件描述}
    \STATE
if伪代码描述一

    \STATE
if伪代码描述二

\ELSE
    \STATE
else伪代码描述一

    \STATE
else伪代码描述二

\ENDIF

• if ... else if ...
\IF {if条件描述}
    \STATE
if伪代码描述

\ELSIF {elseif条件描述一}
    \STATE
elseif伪代码描述一

\ELSIF {elseif条件描述二}
    \STATE
elseif伪代码描述二

\ELSE
    \STATE
else伪代码描述

\ENDIF

• repeat until ,这里的条件描述,描述的是退出条件,也就是在条件满足时,循环退出
\REPEAT

抱歉!评论已关闭.