0

In presentation slides, one's own work is typically abbreviated, by, say, first letters of last names (like "This has been solved by FB (2013)" instead of "This has been solved by Foobarfoo and Barfoobar (2013)"). How can this be achieved with BibLaTeX, while keeping the full references in the bibliography? (like "Foobarfoo, B. and Barfoobar, F. (2013), On strange BibLaTeX questions, Journal of BibLaTeX 12(3)". [The latter bibliography style I already have, I am just wondering whether there is an option so that \cite{} changes from the standard, full-last-name author-year style to this new, abbreviated style. I saw the option abbreviate=true, but of course that didn't do it.]

0
1

labelalpha might be what you're looking for.

EDIT added maxalphanames=999 so all authors are abbreviated (though it does become quite confusing with a lot of names).

We let biber create labels (labelalpha=true) and set up the template.

\DeclareLabelalphaTemplate{
  \labelelement{
    \field[final]{shorthand}
    \field{label}
    \field[strwidth=1,strside=left]{labelname}
  }
  \labelelement{
     \literal{\,}
  }
  \labelelement{
    \field{year}
  }
}

With \citefield{testartlong}{labelalpha} we can then access the shortened label.

We then define a new citation command \abbrvcite to use the abbreviated citations (I would rather not overwrite \cite to use this style.).

\DeclareCiteCommand{\abbrvcite}
  {\usebibmacro{prenote}}
  {\printfield{labelalpha}%
    \iffieldundef{extraalpha}%
    {}%
    {\printfield{extraalpha}}}%
  {\multicitedelim}
  {\usebibmacro{postnote}}

Note the use of extraalpha, as abbreviated citations might get ambiguous quite quickly.

Full MWE

\documentclass[american, a4paper]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[autopunct=true]{csquotes}
\usepackage[labelalpha=true,style=numeric,maxnames=999,maxalphanames=999]{biblatex}
\addbibresource{\jobname.bib}

\begin{filecontents}{\jobname.bib}
@article{testartlong,
  author        = {Arnold Uthor and William Riter and Rita Esearcher and Steven C. Ientist and Stuart T. Udent and Peter R. Ofessor and Lewis E. C. Turer},
  title         = {An Article about Articles},
  journal       = {Journal of Articles},
  volume        = {8},
  number        = {2},
  page          = {1-5},
  date          = {2010},
}
@article{testart,
  author        = {Arnold Uthor and William Riter},
  title         = {A Very Interesting Article},
  journal       = {Journal of Articles},
  volume        = {7},
  number        = {3},
  page          = {1-5},
  date          = {2010},
}
@book{testbook,
  author        = {Walter Ordsmith},
  editor        = {Eddie Ditor},
  title         = {The Work},
  subtitle      = {Subtitle},
  date          = {1983},
}
@online{testonline,
  author        = {Bernie Logger},
  title         = {A Very Opinionated Blog Post},
  url           = {http://example.com},
  year          = {2013},
}
@online{testonline2,
  author        = {Bernie Logger},
  title         = {A Very Opinionated Blog Post II},
  subtitle      = {More Text},
  url           = {http://example.com},
  year          = {2013},
}
\end{filecontents}

\DeclareLabelalphaTemplate{
  \labelelement{
    \field[final]{shorthand}
    \field{label}
    \field[strwidth=1,strside=left]{labelname}
  }
  \labelelement{
     \literal{\,}
  }
  \labelelement{
    \field{year}
  }
}

\DeclareCiteCommand{\abbrvcite}
  {\usebibmacro{prenote}}
  {\printfield{labelalpha}%
    \iffieldundef{extraalpha}%
    {}%
    {\printfield{extraalpha}}}%
  {\multicitedelim}
  {\usebibmacro{postnote}}

\begin{document}
  Let's cite \cite{testartlong}.
  \abbrvcite{testartlong} and \abbrvcite{testbook}, \abbrvcite{testart} or \abbrvcite{testonline} vs \abbrvcite{testonline2}.
  \nocite{*}
  \printbibliography
\end{document}

enter image description here

3
  • Thanks a lot. Is there a solution without biber? I use bibtex as backend (so that texi2dvi directly calls biblatex). If not then so be it. Sep 6 '13 at 13:53
  • @Marius Hofert Unfortunately, \DeclareLabelalphaTemplate is biber-only (see documentation, § 4.5.5, p. 153). If you specify backend=bibtex you will still get short labels, but not in exactly the way defined above; try it, maybe you like it. If only texi2dvi hinders you from switching to biber, have a look at latexmk.
    – moewe
    Sep 6 '13 at 14:07
  • Okay, thanks. Honestly, I am not happy with the approach overall at the moment (I come from latexmk but use texi2dvi now since it is much faster (3s vs 5s) and also for other reasons). I'll still accept your answer (because it is correct in principle and might help others). I might come back to this in the future when I have more time to rethink 'the whole process' and how this could be improved. Thanks again. Sep 6 '13 at 20:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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