11

I'm writing a grant application, and I've been asked to compress my bibliography so that it looks something like this:

1. Smith, J. Nature 7, 201-204 (1999). 2. Jones, B. Cell 17, 364-369 (2007). 3. Jackson, R. et al. J Comp Bskt Weave 32, 123-190 (2010). 4. Parker, P. et al. J Wall Climb, 10, 17-21 (1973). [...]

First author name only (followed by et al.), abbreviated and italicised journal names, bold volume numbers, no line breaks so that the entire reference list is basically a single giant paragraph (I know, it's ugly as sin, but this is what I've been asked to do), etc.

I'm using biblatex because I need to print this bibliography in the middle of the proposal, and it just seemed easiest to use biblatex in that situation. Is there any biblatex style that would do what I'm looking for? Or failing that, a bibtex style and I'll figure out how to print the bibliography in the right place? Or will I need to figure out how to roll my own?

5

This solution takes pretty much the same approach as Oleg's, but it avoids the paralist package as the one-paragraph list environments don't entirely get along with biblatex's numeric citation label format. The document here also uses the contributed style package biblatex-nature, but any other numeric style could be applied.

\documentclass{article}
\usepackage[style=nature,maxnames=1,uniquelist=false]{biblatex}
\usepackage[colorlinks]{hyperref}

% Some field suppression via options
\ExecuteBibliographyOptions{isbn=false,url=false,doi=false,eprint=false}

% One-paragraph bibliography environment
\defbibenvironment{bibliography}
  {\list
     {\printtext[labelnumberwidth]{%
        \printfield{prefixnumber}%
        \printfield{labelnumber}}%
      \ifentrytype{article}{% Suppress remaining fields/names/lists here
        \clearfield{title}}{}}
     {\setlength{\leftmargin}{0pt}%
      \setlength{\topsep}{0pt}}%
      \renewcommand*{\makelabel}[1]{##1}}
  {\endlist}
  {\mkbibitem}

% \mkbibitem just prints item label and non-breakable space
\makeatletter
\newcommand{\mkbibitem}{\@itemlabel\addnbspace}
\makeatother

% Add breakable space between bibliography items
\renewcommand*{\finentrypunct}{\addperiod\space}

% et al. string upright (nature style applies \mkbibemph)
\renewbibmacro*{name:andothers}{%
  \ifboolexpr{
    test {\ifnumequal{\value{listcount}}{\value{liststop}}}
    and
    test \ifmorenames
  }
    {\ifnumgreater{\value{liststop}}{1}{\finalandcomma}{}%
     \andothersdelim
     \bibstring{andothers}}
    {}}

\addbibresource{biblatex-examples.bib}
\begin{document}
\section{Section title}
Filler text \parencite{bertram,glashow,aksin}.
\printbibliography
\section{Section title}
Filler text.
\end{document}

enter image description here

  • Thanks for you help! I'll test out your approach in the morning as well. (Not sure whose answer to accept here!) – Winawer Jul 18 '13 at 15:03
  • @Winawer No problem. Aside from a harmless log warning, Oleg's answer is perfectly acceptable for your problem. Errors only arise if you pass nested optional arguments to \inparaenum. For example: \inparaenum[ \printfield[<format name>]{labelnumber}]. – Audrey Jul 18 '13 at 15:20
  • This answer is surely more sophisticated. I'd have also avoided the paralist, if I'd know the \@itemlabel command :) – Oleg Domanov Jul 18 '13 at 15:40
2

This is a modification of the standard style numeric. If you use another one, this should be modified accordingly. The same goes for entry types other than @article.

\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@article{a1,
  author = {Smith, J.},
  journal = {Nature},
  volume = {7},
  pages = {201-204},
  year = {1999},
}
@article{a2,
  author = {Jones, B.},
  journal = {Cell},
  volume = {17},
  pages = {364-369},
  year = {2007},
}
@article{a3,
  author = {Jackson, R. and others},
  journal = {J Comp Bskt Weave},
  volume = {32},
  pages = {123-190},
  year = {2010},
}
\end{filecontents*}
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{paralist}
\usepackage{xpatch}
\usepackage[style=numeric]{biblatex}
\addbibresource{\jobname.bib}

\defbibenvironment{bibliography}
  {\inparaenum[ \printfield{labelnumber}.]}
  {\endinparaenum}
  {\item}
\DeclareFieldFormat[article,periodical]{volume}{\textbf{#1}}
\DeclareFieldFormat{pages}{#1}
\DeclareNameAlias{default}{last-first}
\renewbibmacro{in:}{}
\xpatchbibmacro{journal+issuetitle}
  {\usebibmacro{volume+number+eid}}
  {\usebibmacro{volume+number+eid}%
   \setunit{\addcomma\space}%
   \printfield{pages}%
   \clearfield{pages}}
  {}{}
\begin{document}
\nocite{*}
\printbibliography
\end{document} 

enter image description here

As Audrey noticed, it's even simpler with biblatex-nature style. You only need to modify the bib environment (so xpatch is not necessary):

\defbibenvironment{bibliography}
  {\inparaenum[ \printfield{labelnumber}.]}
  {\endinparaenum}
  {\clearfield{title}\item}

I also added the clearing of undesired fields, in this case only title.

  • +1 Aside from the one-paragraph requirement biblatex-nature is quite close to the desired style. It's unlikely the source bib file will be lacking titles; these can be suppressed in \AtEveryBibitem or the customized bibliopgraphy environment. – Audrey Jul 18 '13 at 14:00
  • Yes, indeed. I added these to the answer. – Oleg Domanov Jul 18 '13 at 14:26
  • That is genius, thanks! The biblatex-nature+modification gets me where I need to be. (Well, I have to go back and shorten all my journal titles, but that's my own stupid fault) – Winawer Jul 18 '13 at 15:01
1

I fixed something up, I had lying around, so formatting may not apply correctly. The style you wanted to reproduce is not part of biblatex-chem But if you have already worked out a citation style already (how to format the bibliography), this still might help. (It is a fairly quick-and-dirty solution. Comments are very welcome.)

\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@BOOK{foo,
  title = {Foo},
  publisher = {the Press},
  year = {3000},
  author = {the Foo and another foo and the bar},
}

@ARTICLE{baz,
  author = {the Baz and another baz and the foo},
  title = {Baz},
  journal = {J. of Baz},
  year = {3001},
  volume = {1},
  pages = {22},
}

@ARTICLE{buz,
  author = {the Buz and the baz},
  title = {Buz},
  journal = {J. of Buz},
  year = {3001},
  volume = {1},
  pages = {22},
}

@BOOK{bar,
  title = {Bar},
  publisher = {the Press},
  year = {3002},
  author = {the Bar and the foo},
}

\end{filecontents}

\documentclass[12pt,final]{scrreprt}

\usepackage[backend=biber,
            style=chem-biochem,
            maxcitenames=1,mincitenames=1,
            ]{biblatex}

\addbibresource{\jobname.bib}

\newcommand{\numberedfullcite}[1]{\cite{#1}~\fullcite{#1}}

\begin{document}

\leftline{\bfseries Bibliography:}

\noindent\numberedfullcite{foo} %
\numberedfullcite{baz} %
\numberedfullcite{buz} %
\numberedfullcite{bar}

\end{document}

It gives: enter image description here

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.