# Citations in captions as separate argument

Whenever I include a table of a figure in my research papers, I cite the source of the information in the caption itself. However, I don't want this citation to appear in the List of figures/tables.

Therefore, an option for specifying a separate caption for the lists exists:

``````\caption[This is a caption.]{This is a caption. See: \citeinline[249]{batman11e}.}
``````

Which produces the following in the content:

Figure 1.1: This is a caption. See: Batman (2011), p.249.

This solution however includes quite a bit of redundancy. Is there a way to come up with a separate caption-command, that offers some form of "citation-option" and automatically adds a prefix and the citation?

Some pseudo-code to show it:

``````\capncite{This is a caption.}[\citeinline[249]{batman11e}]
``````

would produce the same as in the first code-snippet above.

I'm thinking that this could theoretically be possible with some sort of macro, but I don't know whether this would be the preferred option.

Addition: The `citeinline`-command is defined as:

``````\DeclareMultiCiteCommand{\citeinline}{\cite}{\multicitedelim}

\renewbibmacro*{cite:labelyear+extrayear}{% Change year to (year)
\iffieldundef{labelyear} %
{}
{\printtext[bibhyperref]{%
\printtext[parens]{%
\printfield{labelyear}%
\printfield{extrayear}}}}}
``````

It's easy to do it with `xparse`:

``````\usepackage{xparse}
\NewDocumentCommand{\capncite}{omO{\unskip}}
{\IfNoValueTF{#1}
{\caption[#2]{#2 #3}}
{\caption[#1]{#2 #3}}%
}
``````

``````\capncite{This is a caption.}[See: \citeinline[249]{batman11e}]
``````\capncite[Short]{This is a caption.}[See: \citeinline[249]{batman11e}]
• That's great! I just tried `\newcommand{\capncite}[3]{\caption[#1]{#1 See: \citeinline[#3]{#2}.}}`, which also works, but seems a lot more unstable than your solution. Thanks! – dhst Mar 6 '12 at 15:03