Latex - Inserting a reference in a figure's caption

46,519

Solution 1

Solution found: write \protect\cite{ref} instead of just \cite{ref}

Or even shorter: '{\cite{ref}}'

Solution 2

As the accepted answer seems rather hacky (and also didn't work for me) I will post my solution for the problem:

\begin{figure}
  ...
  \caption[Cap for listoffigures]{Cap below figure with cite \cite{source}}
  ...
\end{figure}

This compiles without errors and warnings.

Share:
46,519
Sérgio
Author by

Sérgio

Electronics and Computer Engineering student

Updated on July 13, 2020

Comments

  • Sérgio
    Sérgio almost 4 years

    In Latex, I want to add a reference in the legend of a figure, like:

    \begin{figure}
       ...
       \caption{This is the legend of this figure (reprinted from \cite{something}).}
       ...
    \end{figure}
    

    but the citation is not allowed to be placed in the the caption, only in the text. My bibliography is working on any other places of the text.

    Any suggestions how to do this?

    Thanks

  • Subhamoy S.
    Subhamoy S. over 9 years
    I am compiling with xelatex and I can see no citation in the caption. Enclosing it in \protect{} has no effect either.
  • Subhamoy S.
    Subhamoy S. over 9 years
    Don't know about PdfLaTeX, but this is not working in xelatex.
  • Tom
    Tom almost 9 years
    This did solve the problem for me when I used pdflatex.
  • drevicko
    drevicko over 8 years
    For me (pdflatex), \protect worked, but enclosing in {} didn't
  • maia
    maia almost 8 years
    Also works for hyperlinks -- \protect\hyperlink{supp1}{Supplemental link 1} instead of \hyperlink{supp1}{Supplemental link 1}
  • Carlos Luis Rivera
    Carlos Luis Rivera over 2 years
    {\protect\autocite{ref}} (using BibLaTeX) worked fine with XeLaTeX. So, putting \protect and the citation command in a pair of curly braces, i.e. {\protect\cite{ref}}, will also work fine with XeLaTeX.
  • Carlos Luis Rivera
    Carlos Luis Rivera over 2 years
    @SubhamoyS. {\protect\autocite{ref}} (using BibLaTeX) worked fine with XeLaTeX. So, putting \protect and the citation command in a pair of curly braces, i.e. {\protect\cite{ref}}, will also work fine with XeLaTeX.