Add the word "Algorithm" before each entry in the List of Algorithms
The following piece of code will insert Algorithm~
before each number of the algorithm in the List of Algorithms (LoA):
\begingroup
\let\oldnumberline\numberline
\renewcommand{\numberline}{Algorithm~\oldnumberline}
\listofalgorithms
\endgroup
It redefines the \numberline
macro that inserts and sets the algorithm number into the LoA. For a good discussion on the meanings and placement/usage of these macros, read the tocloft
package documentation (section 1.1 LaTeX's methods). Bracing (or grouping using \begingroup
...\endgroup
) localizes the scope so it does not affect \numberline
used by other contents structures. Here's the full code that redefines \listofalgorithms
so it can be cleanly used inside your document body:
\documentclass{book}
\usepackage[breaklinks]{hyperref}
\usepackage{algorithm,algorithmic}
\let\oldlistofalgorithms\listofalgorithms
\renewcommand{\listofalgorithms}{%
\begingroup%
\let\oldnumberline\numberline%
\renewcommand{\numberline}{Algorithm~\oldnumberline}%
\oldlistofalgorithms%
\endgroup}
\begin{document}
\listofalgorithms
\chapter{Sample}
% Outline
\begin{algorithm}[!hbt]
\centering
\caption{Optimization}\label{alg:pso}
\begin{algorithmic}[1]
\STATE \textit{GenerateInitialPopulation}(pop)
\FOR {particle $ \leftarrow $ 1 \textit{to} numParticles}
\STATE \textit{Evaluate}(particle)
\ENDFOR
\end{algorithmic}
\end{algorithm}
\end{document}
If you wish to avoid the horizontal space introduced between the margin and the algorithm contents entries, you can use the following redefinition of \listofalgorithms
:
\makeatletter
\renewcommand{\listofalgorithms}{%
\begingroup%
\let\oldnumberline\numberline%
\let\old@dottedtocline\@dottedtocline
\renewcommand{\@dottedtocline}[5]{\old@dottedtocline{##1}{0pt}{##3}{##4}{##5}}%
\renewcommand{\numberline}{Algorithm~\oldnumberline}%
\oldlistofalgorithms%
\endgroup}
\makeatother
The above update of \@dottedtocline
changes the default 1.5em
spacing usually placed in the second argument with 0pt
.