2

I just started a major project which presumably will grow up to 70 pages, including quite some for my bibliography. So I want that to look neat and orderly.

Until now, I have been satisfied with the default outcome of \usepackage[round,sort]{natbib}, \bibliographystyle{agsm}, but I have ever wanted to change it. What I would like the thing to look like in the end is (text between slashes should be in italics, caps should be small caps):

AUTHOR, F.O.
    2000 - /This is my First Book/, Address: Publisher

SCHREIBER, K.
    1802 - /Wenn Wir Auf Deutsch Geschrieben Habe/, Address: Publisher
    1803 - 'Ich weiss nicht wie das heisst', in: Etwas, E. (ed.), /Das Buch/, Address: Publisher, pp. 5-6

It would be nice to be able to put in two columns. But I don't know what the options are. Is this possible? Or is this not an option in latex and do I have to accept it the way it is?

Here's the output generated by the basic agsm bibliography style; note that it differs in several ways from the preferred style laid out above.

enter image description here

MWE:

\documentclass{report}
\usepackage[round,sort]{natbib}
\bibliographystyle{agsm}

\begin{document}
\nocite{*}
\bibliography{bibl}
\end{document}

bibl.bib file:

@book{auth00,
author={Author, First One},
title={This is my First Book},
year={2000},
publisher={Publisher},
address={Address}}

@book{schr02,
author={Schreiber, Kugel},
title={Wenn Wir Auf Deutsch Geschrieben Habe},
year={1802},
publisher={Publisher},
address={Address}}

@incollection{schr03,
author={Schreiber, Kugel},
title={Ich weiss nicht wie das heisst},
year={1803},
booktitle={Das Buch},
editor={Etwas, Edward},
publisher={Publisher},
address={Address}}
16
  • Do you want to continue using the agsm bibliography style? (I didn't think that this style introduces a line break between the author's name(s) and the subsequent bibliographic information...)
    – Mico
    Feb 28, 2015 at 14:23
  • you should look to biblatex-package. It's the best to have customized bibliography.
    – Maïeul
    Feb 28, 2015 at 14:33
  • @Maïeul - Is there a predefined biblatex style that reproduces the output of the agsm style?
    – Mico
    Feb 28, 2015 at 14:54
  • Please give a minimal working example (MWE).
    – cfr
    Feb 28, 2015 at 16:05
  • 3
    To organise bibliographies per authors (using biblatex) see tex.stackexchange.com/a/83891/16895
    – Guido
    Mar 6, 2015 at 20:54

1 Answer 1

2

Here is an adjustment of this answer for this question

\documentclass{article}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@book{fruits,
  title = {The apple and the banana},
  publisher = {Tomatopress},
  editor = {Straw Berry},
  author = {Annoying Orange},
  year = {1970}
}
@book{fruits2,
  title = {The pineapple and the banana},
  publisher = {Tomatopress},
  editor = {Straw Berry},
  author = {Annoying Orange},
  year = {1971}
}
@book{fruits3,
  title = {The mangos and the banana and other tropical fruits},
  publisher = {Tomatopress},
  editor = {Straw Berry},
  author = {Annoying Orange and Peachy Pear},
  year = {1970}
}
\end{filecontents*}


\usepackage[utf8]{inputenc}
\usepackage[firstinits,citestyle=authoryear]{biblatex}

\addbibresource{\jobname.bib}

\makeatletter
\newcommand{\@currentauthor}{}
\newcommand{\@current}{}

\AtEveryBibitem{%
  \savename{labelname}{\@current}%
  \ifdefstrequal{\@currentauthor}{\@current}
    {\par}
    {\item[]%
      \printnames[last-first/first-last]{labelname}\par}%
    \usedriver{}{special}%
    \makebox[0em][r]{\printfield{labelyear}\addspace--\addspace}%
    \clearfield{year}%
}

\DeclareBibliographyDriver{special}{%
\savename{labelname}{\@currentauthor}%
}
\makeatother

\renewbibmacro{editor+others}{}
\renewbibmacro{author/translator+others}{}
\renewbibmacro{author/editor+others/translator+others}{}

\defbibenvironment{bibliography}
  {\list
    {}
    {\setlength{\itemindent}{-4em}%
      \setlength{\leftmargin}{4em}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}}
  {\endlist}
  {}


\begin{document}
Hello world \cite{fruits,fruits2,fruits3}.

\printbibliography

\end{document}

producing

enter image description here

For a version where the bibliography is over two column, load the multicols and relsize packages (i.e., \usepackage{mulitcols,relksize}) and then use the following (re)definition of the bibliography environment:

\defbibenvironment{bibliography}
  {\begin{multicols}{2}\smaller\list
    {}
    {\setlength{\itemindent}{-4.5em}%
      \setlength{\leftmargin}{4.5em}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}}
  {\endlist\end{multicols}}
  {}

This produces:

enter image description here

1
  • Great! This is almost exactly what I needed. However, in cases where there are two publications by the same author in the same year it is necessary to distinguish between them in the bibliography. I changed \printfield{labelyear} to \printedateextra
    – Jopie
    Mar 12, 2015 at 11:56

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.