[Tex/LaTex] Functions with no parameters in algorithmicx

algorithmicxalgorithms

I am trying to write an algorithm using algorithmicxand I need to put a function with no parameters.

I use

\Function {foo}{}

latex produces:

function FOO

However I need:

function FOO()

(The same goes for calling a function (i.e. when using \Call{foo}{})

Best Answer

Use

\Function{foo}{\null}

and

\Call{foo}{\null}

This way you're passing these macros a non-empty, non-printing argument. Here is a mock example taken from the algorithmicx documentation:

enter image description here

\documentclass{article}
\usepackage{algorithm}% http://ctan.org/pkg/algorithms
\usepackage{algpseudocode}% http://ctan.org/pkg/algorithmicx
\begin{document}
\begin{algorithm}
  \caption{Euclid’s algorithm}\label{euclid}
  \begin{algorithmic}[1]
    \Function{Euclid}{\null}\Comment{The g.c.d. of a and b}
      \State $r\gets a\bmod b$
      \While{$r\not=0$}\Comment{We have the answer if r is 0}
        \State $a\gets b$
        \State $b\gets r$
        \State $r\gets a\bmod b$
      \EndWhile\label{euclidendwhile}
      \State \textbf{return} $b$\Comment{The gcd is b}
            \State \Call{foo}{\null}
    \EndFunction
  \end{algorithmic}
\end{algorithm}
\end{document}