Take the 2-minute tour ×
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.

I use biblatex and biber for the bibliography and I came to the problem that I need a subset of the bibliography to be in verbose style (all authors for 5 references) and at another place in the document I need all entries as compressed as possible (about 200-300 references).

So I currently I employed style=numeric-comp and maxnames=1. The drawback is that the maxnames options are global only options since biblatex 1.6. (Currently I use biblatex 1.7)

So how do I render a subset in verbose style and the rest in compressed style?

share|improve this question
add comment

1 Answer 1

up vote 6 down vote accepted

You can use

\makeatletter
\numdef\blx@maxbibnames{99}
\makeatother

\printbibliography

\makeatletter
\numdef\blx@maxbibnames{1}
\makeatother

\printbibliography

The line \numdef\blx@maxbibnames{x} is the command executed by the option maxnames=x. Thus in the first case, it will print 99 names before switching to et al, in the second case, it will do the same but after the first one.

share|improve this answer
    
Awesome!, Thank you so much, this saved my live :) –  math Dec 4 '12 at 11:40
5  
you can actually use \defcounter{maxnames}{1} instead of going into the package internal mode. –  Davy Landman Dec 4 '12 at 12:18
    
@DavyLandman Have you tested it? It does not work for me with BibLaTeX 2.4. –  Guido Dec 4 '12 at 17:17
2  
@Guido \defcounter on the user-level counter works with, say: \AtBeginBibliography{\iftoggle{shortnames}{\defcounter{maxnames}{1}}{}}. Resetting the low-level counter isn't a good idea. So you should at least do it locally by wrapping \numdef and the corresponding \printbibliography in a group. –  Audrey Dec 4 '12 at 21:09
1  
@Guido Issuing \toggletrue{shortnames} before \printbibliography will give the short bibliography. You'd also need \newtoggle{shortnames} in the preamble, of course. It will be initialized to false. –  Audrey Dec 4 '12 at 21:30
show 4 more comments

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.