33

When using biblatex, suppose I have set up two separate bibliographies, how can I assign them different styles, e.g. one numbered and the other author-year format or some such thing.

\documentclass{article}

\usepackage[defernumbers=true]{biblatex}

\DeclareBibliographyCategory{cited}
\AtEveryCitekey{\addtocategory{cited}{\thefield{entrykey}}}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Author, A.},
  year = {2001},
  title = {Alpha},
}

@misc{B02,
  author = {Buthor, B.},
  year = {2002},
  title = {Bravo},
}

@misc{C03,
  author = {Cuthor, C.},
  year = {2003},
  title = {Charlie},
}
\end{filecontents}

\bibliography{\jobname}

\begin{document}

\nocite{*}

\cite{A01,B02}

\printbibliography[title={References},category=cited]

\printbibliography[title={Further Reading},notcategory=cited]

\end{document}
25

Good question. :-) One the one hand, section 3.6.2 of the biblatex manual mentions

mixing a numerical subbibliography with one or more subbibliographies using a different scheme (e. g., author-title or author-year).

On the other hand, according to section 3.1.1, style, bibstyle and citestyle are load-time options, i.e. they must be specified when biblatex is loaded and cannot be used in the optional argument of \printbibliography.

I have a possibly hackish solution. Load biblatex with a numeric style (the default behaviour) or an alphabetic style. Define a new bibliography environment nolabelbib that simply copies the definition of bibliography as found in authortitle.bbx and authoryear.bbx (i.e. one that doesn't print a label). Switch to this environment for your "Further Reading" (sub-)bibliography. The result should equate the authortitle style.

\documentclass{article}

\usepackage{biblatex}

\DeclareBibliographyCategory{cited}
\AtEveryCitekey{\addtocategory{cited}{\thefield{entrykey}}}

% The following definition is copied from authortitle.bbx/authoryear.bbx
\defbibenvironment{nolabelbib}
  {\list
     {}
     {\setlength{\leftmargin}{\bibhang}%
      \setlength{\itemindent}{-\leftmargin}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}}
  {\endlist}
  {\item}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Author, A.},
  year = {2001},
  title = {Alpha},
}
@misc{B02,
  author = {Buthor, B.},
  year = {2002},
  title = {Bravo},
}
@misc{C03,
  author = {Cuthor, C.},
  year = {2003},
  title = {Charlie},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\nocite{*}

\begin{document}

Some text \autocite{A01,B02}.

\printbibliography[title={References},category=cited]

\printbibliography[env=nolabelbib,title={Further Reading},notcategory=cited]

\end{document}

enter image description here

  • Wow, biblatex never stops to amaze me. – user2330 Feb 2 '11 at 17:28
  • I've tried to compile this example with pdflatex file.tex bibtex file pdflatex file.tex pdflatex file.tex But no bibliography was generated. How could I compile correctly the example? Thanks. – jackb Sep 6 '13 at 10:19
  • Problem solved with \usepackage[style=numeric-comp,useprefix,hyperref,backend=bibtex]{biblatex} – jackb Sep 6 '13 at 10:49
0

You might also want to check out the multibib library:

http://www.bakoma-tex.com/doc/latex/multibib/multibib.pdf

  • 2
    The question is about biblatex so multibib is irrelevant. Biblatex already allows multiple bibliographies and cannot be used with such auxiliary packages. – cfr Oct 30 at 14:46

Your Answer

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