10

The number is displayed, but the footnote text is missing. How to fix that?

\documentclass{article}

\usepackage{algorithm}
% Need it for floating environment
\usepackage[noend]{algpseudocode} 
% Hide endif .etc
\usepackage{caption}
% Need it for \caption*
\usepackage{xspace}
% Fix macro spacing bug

\algrenewcommand{\algorithmicrequire}{\textbf{Input:}}
\algrenewcommand{\algorithmicensure}{\textbf{Output:}}
\algrenewcommand{\algorithmicforall}{\textbf{for each}}
% \algrenewcommand instead of \renewcommand according to manual
\newcommand{\To}{\textbf{to}\xspace}
% Not stated in manual, \Return and \algorithmicreturn are defined, but no \algorithmicstate, why?
\newcommand{\Dosth}{\State \textbf{Do Something}\xspace}
% Note no space before \xspace
\newcommand{\Please}[1]{\State \textbf{#1}}
\newcommand{\ForEach}{\ForAll}
% Fail to use \algorithmicforall, why?
\begin{document}

\begin{algorithm}
    \caption*{\textbf{Algorithm:} \textsc{Depth First Search}} \label{alg:dfs1}

    \begin{algorithmic}[1]

        \Function{DFS}{$v$}
            \State $count \gets count + 1$
            \Please{mark} $v$ with $count$
            \Dosth with $v$
            \ForEach{vertex $w \in \mathcal{V}$ adjacent to $v$}
                \If{$w$ is marked with $0$} \Comment Only needed to exclude its parent.\footnote{No sibling is visited before the loop. Each sibling will be visited exactly once due to the nature of the loop.}
                    \State \Call{DFS}{$w$}
                \EndIf
            \EndFor
            \State \Return
        \EndFunction

    \end{algorithmic}
\end{algorithm}

\end{document}
colinfang
  • 1,541

2 Answers2

9

Instead of the \footnote command, you can use \footnotemark and \footnotetext:

\documentclass{article}

\usepackage{algorithm}
% Need it for floating environment
\usepackage[noend]{algpseudocode} 
% Hide endif .etc
\usepackage{caption}
% Need it for \caption*
\usepackage{xspace}
% Fix macro spacing bug

\algrenewcommand{\algorithmicrequire}{\textbf{Input:}}
\algrenewcommand{\algorithmicensure}{\textbf{Output:}}
\algrenewcommand{\algorithmicforall}{\textbf{for each}}
% \algrenewcommand instead of \renewcommand according to manual
\newcommand{\To}{\textbf{to}\xspace}
% Not stated in manual, \Return and \algorithmicreturn are defined, but no \algorithmicstate, why?
\newcommand{\Dosth}{\State \textbf{Do Something}\xspace}
% Note no space before \xspace
\newcommand{\Please}[1]{\State \textbf{#1}}
\newcommand{\ForEach}{\ForAll}
% Fail to use \algorithmicforall, why?
\begin{document}

\begin{algorithm}
    \caption*{\textbf{Algorithm:} \textsc{Depth First Search}} \label{alg:dfs1}

    \begin{algorithmic}[1]

        \Function{DFS}{$v$}
            \State $count \gets count + 1$
            \Please{mark} $v$ with $count$
            \Dosth with $v$
            \ForEach{vertex $w \in \mathcal{V}$ adjacent to $v$}
                \If{$w$ is marked with $0$} \Comment Only needed to exclude its parent.\footnotemark
                    \State \Call{DFS}{$w$}
                \EndIf
            \EndFor
            \State \Return
        \EndFunction

    \end{algorithmic}
\end{algorithm}
\footnotetext{No sibling is visited before the loop. Each sibling will be visited exactly once due to the nature of the loop.}

\end{document}
Gonzalo Medina
  • 505,128
  • 6
    The footnote mark floats with the algorithm and the footnotetext remains where it's defined. I have my footnotetext two pages before the footnotemark, any solution for this? Thank you. – Trylks Dec 10 '13 at 16:20
  • @Trylks While an unpleasant solution, mving the actual \footnotetext more below, approximately to the text where the float is typeset, fixed it for me. – ComFreek Aug 16 '17 at 08:39
2

I suggest try adding these to preamble:

\usepackage{footnote}
\makesavenoteenv{algorithm}

It works in some case, and I found they might not always work because of see this from latex.org

  • 2
    How would you use it? Does it just work? Instead of linking to an external document/site, please complete your post to contain the relevant content (while also providing a link to the source as a form of attribution). – Werner Jan 15 '19 at 05:53