2

I have a bibliography that mixes every refrence type (mostly books and articles together). Now, I would love to be able to separate only the articles from the rest and display them under a separate bibliography subtitle, e.g. "Articles".

Is this in any way possible?

I use

\usepackage{natbib}
\bibliographystyle{apalike}

for my bibliography and cite with the following commands:

\newcommand\mycite[2][]{%
  \citeauthor{#2}\ (\citeyear{#2})\ifx#1\undefined\else, #1\fi}
  \newcommand\myfootcite[2][]{\footnote{\mycite[#1]{#2}}}
  \def\prevcite{} % initialize \prevcite
%% macro for in-text citation
\newcommand\tcite[2][]{%  
  \def\newcite{#2} 
  \ifx\prevcite\newcite 
    Ibid.%
  \else%
    \gdef\prevcite{#2}% update \prevcite
    \citeauthor{#2}\ (\citeyear{#2})%
  \fi
  \ifx#1\undefined\else, #1\fi}
%% macro for in-footnote citation
\newcommand\fcite[2][]{\footnote{\tcite[#1]{#2}}}

Many thanks for your suggestions!

4
  • Have you looked into the multibib package?
    – Mico
    Dec 26, 2014 at 23:26
  • 3
    biblatex can do that: it has a \defbibfilter command which allows , among other things, to filter references by entry type. See §3.6.10 opf the documentation.
    – Bernard
    Dec 27, 2014 at 0:15
  • @Bernard No need to create filters with \defbibfilter just use the type and nottype options of \printbibliography.
    – Guido
    Dec 27, 2014 at 8:36
  • @Guido: I just wanted to insist on the possibility of creating filters.
    – Bernard
    Dec 27, 2014 at 10:42

1 Answer 1

5

Take a look at the biblatex examples on CTAN or from the TeXLive distribution. This possible solution is based on those examples.

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents}{bib.bib}
    @article{death-star,
    author       = {Bevel Lemelisk and Wilhuff Tarkin and Darth Vader and Darth Sidious},
    title        = {Death Star},
    howpublished = {Alderaan and Yavin 4},
    year         = {0 BBY}
  }
  @misc{death-star-2,
    author       = {Bevel Lemelisk and Wilhuff Tarkin and Darth Vader and Darth Sidious},
    title        = {Death Star II},
    howpublished = {Endor},
    year         = {4 ABY}
  }
  @article{abc,
    author       = {Abc, D.},
    title        = {The Letter Fantasies},
    year         = 1492,
    keywords     = {one}
  }
  @Book{efg,
    author       = {Efg, H.},
    title        = {Alphabet Soup},
    year         = 1942,
    keywords     = {two}
  }
\end{filecontents}
\usepackage[backend=biber,
%   style=authoryear, % uncomment to display author-year
]{biblatex}
\defbibfilter{other}{
  not type=article
}
%
\addbibresource{bib.bib}
\begin{document}
They first built \emph{Death Star}~\autocite{death-star}.

The design flaw was found in \autocite[Lemelisk et al., Chapter 3, p. 123][]{death-star}.

To address the flaw, they designed \emph{Death Star 2}~\autocite{death-star-2}
that featured many smaller diameter heat exhaust vents.

Read the letter fantasies \cite{abc} or stories from the a-soup \cite{efg}.
\nocite{*}
\printbibheading
\printbibliography[heading=subbibliography,title={Articles},type=article]
\printbibliography[heading=subbibliography,title={Other Sources},filter=other]
\end{document}

enter image description here

6
  • There is no need to define a filter. Biblatex provides the nottype option for \printbibliography (and it can be used multiple times).
    – Guido
    Dec 27, 2014 at 8:34
  • @zun: This is exactly what I am looking for. However, I am completely lost at how to implement this as I don't use biblatex. How should I go about finding a solution?
    – MadJens
    Jan 16, 2015 at 13:37
  • @MadJens : is switching to biblatex an option? If so, you should have a look at tex.stackexchange.com/questions/5091/… and tex.stackexchange.com/questions/13509/biblatex-for-idiots .
    – Clément
    Jan 16, 2015 at 15:51
  • Unfortunately, no.
    – MadJens
    Jan 16, 2015 at 16:01
  • Is there no way to do this with natbib? Maybe a possibiliy manually creating two bibliographies with the bibtexkeys?
    – MadJens
    Jan 18, 2015 at 18:36

You must log in to answer this question.

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