3

I am using a modified verbose-ibid citestyle (as suggested here). If I use \cite, it won't use the short version, and that might be good, but right know I need to use the short version (cite:short). So how would I use \cite and force the short form?

5
  • It should "just work" (i.e. citations after the first should be shortened) unless you have set the option citetracker=false ... or unless you have made some other modifications. Try setting citetracker=true explicitly. Or do you want all citations short, even the first? May 27, 2014 at 22:53
  • @PaulStanley Sadly, it doesn't. I forgot to mention that I am using \cite within an image \caption, could that cause the problem? May 28, 2014 at 15:53
  • 1
    As far as I know citetrackers are disabled in floats, so that might indeed be the problem. The biblatex documentation states: "To avoid any such ambiguities, the citation and page trackers are temporarily disabled in all floats." (§4.11.5 Trackers in Floats and TOC/LOT/LOF, p. 232 of the biblatex documentation).
    – moewe
    May 29, 2014 at 16:43
  • @moewe wanna make that an answer?
    – Johannes_B
    Dec 6, 2014 at 13:53
  • @Johannes_B I have added an answer (better late than never, I presume).
    – moewe
    Apr 5, 2015 at 8:12

1 Answer 1

4

Since captions (and floats in general) are rarely considered part of the text flow (after all a float is quite volatile in its placement and it is even more difficult to predict when exactly a reader might look at a float), the trackers are disabled within those environments.

The biblatex documentation states in §4.11.5 Trackers in Floats and TOC/LOT/LOF, p. 232

If a citation is given in a float (typically in the caption of a figure or table), scholarly back references like ‘ibidem’ or back references based on the page tracker get am- biguous because floats are objects which are (physically and logically) placed outside the flow of text, hence the logic of such references applies poorly to them. To avoid any such ambiguities, the citation and page trackers are temporarily disabled in all floats. In addition to that, these trackers plus the back reference tracker (backref) are temporarily disabled in the table of contents, the list of figures, and the list of tables.

So this behaviour is indeed intended, if you want to force short citations instead, you can define an "enforcer"

\makeatletter
\newcommand{\captshort}{\let\blx@imc@ifciteseen\@firstoftwo}
\makeatother

If you use this within a caption (e.g. \caption{\captshort\cite{foo}}), short citations will be forced.

\documentclass{article}
\usepackage[style=verbose]{biblatex}
\addbibresource{biblatex-examples.bib}
\makeatletter
\newcommand{\captshort}{\let\blx@imc@ifciteseen\@firstoftwo}
\makeatother

\begin{document}
  \cite{geer} \cite{geer}

  \begin{table}[!h]
  \caption{\captshort\cite{geer}}
  \end{table}

  \cite{wilde} \cite{wilde}
\end{document}

Table 1: Geer, “Earl, Saint, Bishop, Skald – and Music”


Alternatively, we can define a new cite command \shrtcite that always prints the short form and use that instead

\newbibmacro*{shrtcite}{%
  \usebibmacro{cite:citepages}%
  \iffieldundef{shorthand}
    {\usebibmacro{cite:short}}
    {\usebibmacro{cite:shorthand}}}

\DeclareCiteCommand{\shrtcite}
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{shrtcite}}
  {\multicitedelim}
  {\usebibmacro{cite:postnote}}

MWE

\documentclass{article}
\usepackage[style=verbose]{biblatex}
\addbibresource{biblatex-examples.bib}

\newbibmacro*{shrtcite}{%
  \usebibmacro{cite:citepages}%
  \iffieldundef{shorthand}
    {\usebibmacro{cite:short}}
    {\usebibmacro{cite:shorthand}}}

\DeclareCiteCommand{\shrtcite}
  {\usebibmacro{prenote}}
  {\usebibmacro{citeindex}%
   \usebibmacro{shrtcite}}
  {\multicitedelim}
  {\usebibmacro{cite:postnote}}

\begin{document}
  \cite{geer} \cite{geer}

  \begin{table}[!h]
  \caption{\shrtcite{geer}}
  \end{table}

  \cite{wilde} \cite{wilde}
\end{document}

Table 1: Geer, “Earl, Saint, Bishop, Skald – and Music”

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .