TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How can I add a source to a figure? I need to add \ref, \cite or just free text. Something like that:

\begin{figure} [ht]
  \centering
  \includegraphics[width=0.95\textwidth]{res/figure.pdf}
    \caption{Caption}
    \source{\ref{},\cite{} or free Text}
  \label{fig:gliederung}
\end{figure}

Should give me:

Result

The source shouldn't appear in \listoffigures.

share|improve this question
4  
Have you tried \caption[Caption]{Caption. Source: here the source of the picture}? – Daniel Jan 23 '13 at 16:26
up vote 8 down vote accepted

There are many ways to do this. The source could be put inside the caption. LaTeX puts the caption in one line, if it fits there. This can be prevented by \hspace{\linewidth} in the following example. When LaTeX tests the width by putting it in a \hbox, then \hspace is taken into account. LaTeX concludes that the caption does not fit into one line and by setting it in several lines, the line break is executed and the white space right after it (\hspace{\linewidth}) is ignored:

\documentclass{article}

\newcommand*{\captionsource}[2]{%
  \caption[{#1}]{%
    #1%
    \\\hspace{\linewidth}%
    \textbf{Source:} #2%
  }%
}

\begin{document}
\begin{figure} [ht]
  \centering
  \captionsource{Caption}{ref, cite or free Text}
  \label{fig:gliederung}
\end{figure}
\end{document}

Alternatively package caption provides an option singlelinecheck, where the testing for fitting into a line can be disabled, using possible multi-line mode always.

share|improve this answer

I know it makes a lot of time from this post but I had the same problem and found the solution you where looking for. I will post it just in case someone founds it useful.

I took the idea from Gonzalo Medina's post (http://tex.stackexchange.com/a/58300/33066).

Solution: Just add this line somewhere at the beginning of your code:

\newcommand{\source}[1]{\caption*{Source: {#1}} }

How to use it: The way I defined this command, it couldn't be more intuitive:

\begin{figure}
    \includegraphics{./imageName}
    \caption{Caption of the image.} \label{imageLabel}
    \source{Source of the image.}
\end{figure}

How it works: The added line creates a new command \source{} with a single input parameter (your source). The * in \caption*{} prevents the figure caption to be accounted for LaTeX and shown in \listoffigures In fact if you type:

\begin{figure}
    \includegraphics{./imageName}
    \caption{Caption of the image.}\label{imageLabel}
    \caption*{Source: Source of the image.}
\end{figure}

Style modification:

I personaly like having all my sources aligned to the right, so I usually define the command above like that:

\newcommand{\source}[1]{\caption*{\hfill Source: {#1}} }

Also the vertical spacing between Caption and Source can be modified adding a \vspace{} command like that:

\newcommand{\source}[1]{\vspace{-3pt} \caption*{ Source: {#1}} }

([+] value will add space and [-] value will reduce it)

I hope it helps!

share|improve this answer
    
I believe this more elegant way of achieving this, plus one for that and of course the nice explanation too. – Indigo Jul 22 '15 at 10:50
1  
@Xavi in connection with the answer, how can I reduce the spacing between caption and source? I am using Memoir, but I do not think that it matters in the circumstances. – Roberto Gozzoli Dec 13 '15 at 0:10
    
Hi @RobertoGozzoli, I guess you mean the vertical spacing between caption and source. I've never used Memoir so I can't assure this answer will work for you. I would just add \vspace{##pt} and play with the value ## to get the space you desire ([+] values will add space while [-] values will reduce it). For me -3pt has been enough. Less than that it overlaps with the Caption. (I will add the response to your question at the post, in "Style modification"). – Xavi Dec 24 '15 at 9:45

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.