[Tex/LaTex] \Fn ! Undefined control sequence

algorithm2eUbuntuupdating

Under Ubuntu 15.04, I want to use algorithm2e to write pseudo code, when I copied an example from the documentation, TeXStudio displays error indicating that the command \Fn is undefined. I thought that the package might be outdated so I run an update over texlive-science

sudo apt-get install texlive-science

but it shows that texlive-science is already the newest version.
Is it not updated in Ubuntu repositories? If so, how can I update algorithm2e to the lasted version?

Best Answer

You can find the required definition of \Fn in the algorithm2e documentation code. It's defined using \SetKwProg.

The generic algorithm is prefixed with the following definitions:

\SetKwProg{Fn}{Function}{}{end}\SetKwFunction{FRecurs}{FnRecursive}%
\newcommand{\forcond}{$i=0$ \KwTo $n$}

enter image description here

\documentclass{article}

\usepackage{algorithm2e}
\newcommand{\forcond}{$i=0$ \KwTo $n$}
\SetKwProg{Fn}{Function}{}{end}\SetKwFunction{FRecurs}{FnRecursive}%
\SetAlgoLongEnd

\begin{document}

\begin{algorithm}
  \Fn(\tcc*[h]{algorithm as a recursive function}){\FRecurs{some args}}{
    \KwData{Some input data\\these inputs can be displayed on several lines and one 
      input can be wider than line's width.}
    \KwResult{Same for output data}
    \tcc{this is a comment to tell you that we will now really start code}
    \If(\tcc*[h]{a simple if but with a comment on the same line}){this is true}{
      we do that, else nothing\;
      \tcc{we will include other if so you can see this is possible}
      \eIf{we agree that}{
        we do that\;
      }{
        else we will do a more complicated if using else if\;
        \uIf{this first condition is true}{
          we do that\;
        }
        \uElseIf{this other condition is true}{
          this is done\tcc*[r]{else if}
        }
        \Else{
          in other case, we do this\tcc*[r]{else}
        }
      }
    }
    \tcc{now loops}
    \For{\forcond}{
      a for loop\;
    }
    \While{$i<n$}{
      a while loop including a repeat--until loop\;
      \Repeat{this end condition}{
        do this things\;
      }
    }
    They are many other possibilities and customization possible that you have to
    discover by reading the documentation.
  }
\end{algorithm}

\end{document}

For other parts of the documentation, it redefined \Fn to display something else (depending on the output requirements).