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}
Best Answer
You can use
\nopp
to suppress the page prefix 'p.'/'pp.'If you want to always suppress the page prefix, use
\mknormrange
is a fairly recent addition tobiblatex
, so if the command is undefined when you add it, you probably just want to try#1
instead of\mknormrange{#1}
(or say\providecommand*{\mknormrange}[1]{#1}
).If you want to suppress the 'p.'/'pp.' for a particular entry, add
to the
.bib
entry. Instead ofnone
, you can also have (the default)page
or one ofcolumn
,line
,verse
,section
orparagraph
.