2

I would like to have two bibliographies in my PhD thesis, where the first one lists my own publications that are included in the thesis, and appears in the beginning, numbered by roman numerals. The main body of the text should then be able to cite this bibliography, with the roman numerals, and the main bibliography with ordinary numerals.

My best attempt this far, following Subbibliography with roman numbers and Biblatex and some other threads, has two faults: the citations to the first bibliography are numbered with latin numerals, and I cannot cite the first bibliography at all from within the main text (which is where I'd like to cite it).

Minimal (not quite) working example:

\documentclass{article}
\usepackage[backend=biber]{biblatex}
\DeclareFieldFormat{Roman}{\RN{#1}}
% The following definition is copied from numeric.bbx
\defbibenvironment{roman-numerals}
  {\list
     {\printtext[labelnumberwidth]{%
    \printfield{prefixnumber}%
    \printfield[Roman]{labelnumber}}}
     {\setlength{\labelwidth}{\labelnumberwidth}%
      \setlength{\leftmargin}{\labelwidth}%
      \setlength{\labelsep}{\biblabelsep}%
      \addtolength{\leftmargin}{\labelsep}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}%
      \renewcommand*{\makelabel}[1]{\hss##1}}
  {\endlist}
  {\item}

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

\begin{filecontents}{\jobname-mine.bib}
@misc{Mine1,
  author = {Me, M.},
  year = {2001},
  title = {Alpha},
}
@misc{Mine2,
  author = {Me, M.},
  year = {2002},
  title = {Bravo},
}
@misc{Mine3,
  author = {Me, M.},
  year = {2003},
  title = {Charlie},
}

\end{filecontents}

\addbibresource{\jobname.bib}
\addbibresource{\jobname-mine.bib}

\begin{document}
\begin{refsection}[\jobname-mine.bib]
\nocite{*}
\printbibliography[title={My publications}, env=roman-numerals]
\end{refsection}
Some text that won't be here, but note roman numerals don't work even here \cite{Mine1, Mine3}.

\section{Main text}

\begin{refsection}[\jobname.bib]
Citing things in body \cite{A01, B02}. Would like to cite things in section mine    \cite{Mine1}
\printbibliography[title=References]
\end{refsection}

\end{document}
  • 1
    I had a go at this and I can get the separation but I can't get use of roman numerals as citation labels in the text. I think you'd have to redefine \cite and even then I think it would be messy. Why not adapt the shorthands functionality biblatex offers to this purpose? Or use the prefix numbering biblatex offers? Note: I'm not saying it can't be done as you wish - I'm far from even moderately adept at using biblatex. But I don't think it would be at all trivial. Also, are you sure that your institution allows this? Usually, there's a standard format with draconian rules and regs! – cfr Jan 1 '14 at 3:00
  • @cfr Thanks for you attempt! The formatting I'm trying to achieve is precisely what the rules and regs require :) The LaTeX template for that, which's been inherited down the generations, used just the standard latex \bibitem etc, which I'd like to update. There's of course always the chance to just use a bibliography only for the actual references, and do the cites for my papers manually, since there's only four of them. I guess I kind of nerdsniped myself in obsessing with having to make biblatex work for both :) Although it would be nice to make a better template for everyone else too. – Timo Jan 1 '14 at 22:47
2

I found a solution that's good enough for my own purposes, so I'm answering my own question. As @cfr suggested, using the shorthand field for the roman numerals basically does the trick. The separation part works by not using a refsection for the main text.

Remaining downsides, for anyone who's interested in trying to improve on this:

  • need to manually enter the roman numerals in the shorthand fields
  • the DeclareSourceMap feels like a bit of overkill for just preventing my publications from re-appearing in the main bibliography. Is there any better way to do this?
  • this will not work as is if one wants to use separate refsections in the main body (I don't, luckily)

The code:

\documentclass{article}
\usepackage[backend=biber]{biblatex}

%test data: other references
\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Author, A.},
  year = {2001},
  title = {Alpha},
}
@misc{B02,
  author = {Buthor, B.},
  year = {2002},
  title = {Bravo},
}
\end{filecontents}

%test data: my papers
\begin{filecontents}{\jobname-mine.bib}
@misc{Mine1,
  author = {Me, M.},
  year = {2001},
  title = {My Alpha},
  shorthand={\RN{1}}
}
@misc{Mine2,
  author = {Me, M.},
  year = {2002},
  title = {My Bravo},
  shorthand={\RN{2}}
}
@misc{Mine3,
  author = {Me, M.},
  year = {2003},
  title = {My Charlie},
  shorthand={\RN{3}}
}

\end{filecontents}

%Auto-add the keyword thpaper. Not strictly necessary, but saves some trouble
\DeclareSourcemap{
 \maps[datatype=bibtex]{
  \map{\perdatasource{\jobname-mine.bib} \step[fieldset = keywords, fieldvalue = {thpaper}]
  }
 }
}


\addbibresource{\jobname.bib}    
\addbibresource{\jobname-mine.bib}

\begin{document}

%Print the references to my papers. Refsection allows easy shortcutting with nocite{*} limited to the correct file
\begin{refsection}[\jobname-mine.bib]
\nocite{*}
\printbibliography[title={My publications}]
\end{refsection}

\section{Main text}

Citing things in body \cite{A01, B02}. Would like to cite my own publications \cite{Mine1}, and now it works, with the roman numerals even.
%Print the main bibliography, notkeyword=thpaper keeps my papers from re-appearing. 
%Using a refsection with a filename would be nicer, but that breaks the citations to my 
%publications.
\printbibliography[title=References, notkeyword=thpaper]

\end{document} 

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.