# cite in caption of listings

I am trying to cite a paper in the caption of listings. I have the following code:

\begin{lstlisting}[caption=Example of something (Adapted from \cite{abc})]
example
\end{lstlisting}


But this is giving me error! It says ! Illegal parameter number in definition of \reserved@a. Can anyone help me with this?

-
Did you try \protect\cite{abc}? –  egreg Jun 18 '12 at 22:42
Yes that worked thanks! –  Sadiksha Gautam Jun 18 '12 at 22:43
I've added an answer, but please add a minimal example to your question, so that we can get a better insight into the issue. –  egreg Jun 18 '12 at 22:53

It seems a typical "fragile command in a moving argument problem". However the following document doesn't show any problem:

\documentclass{article}
\usepackage{listings}
\begin{document}
\lstlistoflistings
\begin{lstlisting}[caption=Example of something (Adapted from \cite{abc})]
example
\end{lstlisting}
\begin{thebibliography}{1}
\bibitem{abc} x
\end{thebibliography}
\end{document}


So I suspect that you're using some package that kill the robustness of \cite in some way.

A way to solve the issue is writing

\protect\cite{abc}


in the caption, but probably it can be better addressed with a minimal example available.

As correctly remarks Gonzalo Medina in his comment, there's also the possibility of writing

\begin{lstlisting}[
caption={[Example of something]Example of something (Adapted from \cite{abc})}
]


so that only "Example of something" will be sent to the list of listings (which is very important if the adopted bibliography style is "unsorted").

-