In the following example I assume that you need two different bibliographycal sections in your documents: Primary Sources, and Secondary Sources; I also assume that you have two databases: bibl1.bib
and bibl2.bib
.
The idea is to use a keyword
filter. In the following example I chose primary
, and secondary
as the words used to divide bibliographies.
To print the two bibliographies you can use the keyword =
option for \printbibliography
. For example, saying something like
\printbibliography[keyword=primary,...]
\printbibliography[keyword=secondary,...]
You also need to add a keywords
field to each entry in the bib
files indicating if each entry will be considered as "primary" or "secondary".
The code:
\begin{filecontents*}{bibl1.bib}
@book{goossens93,
keywords = {primary},
author = "Michel Goossens and Frank Mittlebach",
title = "The {LaTeX} Companion",
year = "1993",
publisher = "Addison-Wesley",
address = "Reading, Massachusetts"
}
@book{knuth84,
keywords = {primary},
author = "Donald E. Knuth",
title= "The {TeX}book",
publisher = "Addison-Wesley",
year = 1984
}
\end{filecontents*}
\begin{filecontents*}{bibl2.bib}
@unpublished{patashnik88,
keywords = {secondary},
author = "Oren Patashnik",
title = "Using {BibTeX}",
note = "Documentation for general BibTeX users",
month = jan,
year = 1988
}
\end{filecontents*}
\documentclass{article}
\usepackage[style=mla,guessmedium=false]{biblatex}
\addbibresource{bibl1.bib}
\addbibresource{bibl2.bib}
\begin{document}
\cite{knuth84}, \cite{goossens93}, \cite{patashnik88}
\printbibliography[keyword=primary,heading=subbibliography,%
title={Primary Sources}]
\printbibliography[keyword=secondary,heading=subbibliography,%
title={Secondary Sources}]
\end{document}

I used the guessmedium=false
option to avoid biblatex-mla
guessing the publication medium, thereby avoiding printing "Print" (or "Web") when the field howpublished
is undefined,
As I mentioned in the comments, this will only be possible if you add meta-data to the .bib
file to indicate whether a particular journal has "per issue" or "per volume" page numbering. However, this isn't very difficult to do, and you can probably add fields conditionally with your bibliography manager. Here's an example of how this would work in practice.
I've added a field to each article entry in the bib file called "Type". This is available automatically to biblatex
, and can be used for various things. For clarity I've given the field the values "PerIssue" or "PerVolume"; in practice, you really only need to supply the field for the PerIssue journals (since I suspect they are the minority).
If a journal is numbered per issue (and therefore will require the number in parentheses) we set the Type field to "PerIssue".
Then we declare the field format for number
to check if the type is "PerIssue" or not. If it is, then the number is formatted; if not it is omitted.
Depending on your reference manager you may be able add the Type field with the correct annotation to every entry with a particular journal name.
\documentclass[endnotes]{apa6e}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[style=apa]{biblatex}
\DeclareLanguageMapping{american}{american-apa}
\def\PerIssue{PerIssue}
\DeclareFieldFormat[article]{number}{\iffieldequals{type}{\PerIssue}{(#1)}{}}
\title{A title}
\author{An Author}
\shorttitle{A title}
\authornote{}
\abstract{An abstract}
\begin{filecontents}{\jobname.bib}
@article{Kallio1988,
Author = {Kallio, Kenneth D.},
Journal = {Child Development},
Number = {2},
Pages = {397--410},
Title = {Developmental Differences in the Comprehension of Simple and Compound Comparative Relations},
Type = {PerIssue},
Url = {http://www.jstor.org/stable/1130319},
Volume = {59},
Year = {1988}}
@article{Kavanaugh1976,
Author = {Kavanaugh, Robert D.},
Journal = {Child Development},
Month = {Sep},
Number = {3},
Pages = {885-887},
Title = {On the Synonymity of `more' and `less': Comments on a Methodology},
Type = {PerVolume},
Volume = {47},
Year = {1976}}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
This is some text. \cite{kallio1988,kavanaugh1976}
\urlstyle{rm}
\printbibliography
\end{document}

Implementation with your reference manager
In order to implement this scheme you need to tell your reference manager about the extra Type
field that you are adding to @article
bib entries. Both of the popular reference managers (BibDesk on the Mac, and JabRef on any OS) can add custom fields.
BiBDesk
- Go to Preferences -> Fields
- Under the Advanced part of the window, choose Custom BibTeX Types and Fields (Edit)
- You will see the following input window, which allows you to add Type as an Optional field to all Article entries. You need to click on the "Allow editing default types and fields" to do this.

JabRef
- Go to Options -> Customize entry types
- You will see the following input window, which allows you to add Type as an Optional field to all Article entries.

Best Answer
The
biblatex-mla
maintainer has updated the package to properly work with recent versions ofbiblatex
. The style now includesmla-new
that implements the 8th edition of the MLA style guide. See also theCHANGES
file on CTAN