4

In my PhD thesis I include a bibliography containing my own publications at the beginning. Not all of them are relevant to the PhD thesis though, e.g. because they resulted from my masters. I would like to show this using a footnote or an annotation at the bottom of the reference list.

\documentclass{scrbook}

\usepackage{mwe}
\usepackage[defernumbers=true]{biblatex}
\usepackage{filecontents}

\begin{filecontents}{refs.bib}
    @misc{ref1, note = {Article 1}, keywords={former}, keywords={myarticles}}
    @misc{ref2, note = {Article 2}, keywords={myarticles}}
    @misc{ref3, note = {Proceedings 1}, keywords={former}, keywords={myconferences}}
    @misc{ref4, note = {Proceedings 2}, keywords={myconferences}}
    @misc{ref5, note = {Reference 1}}
    @misc{ref6, note = {Reference 2}}
\end{filecontents}

\addbibresource{refs.bib}


\begin{document}
    \nocite{*}

    \defbibnote{thepostnote}{* refer to previous work}
    
    \printbibheading[title={References}]
    \newrefcontext[labelprefix=A]
    \printbibliography[keyword=myarticles, title={My Articles}, heading=subbibliography, postnote=thepostnote]
    \newrefcontext[labelprefix=C]
    \printbibliography[keyword=myconferences, title={My Conference Contributions}, heading=subbibliography, postnote=thepostnote]
    \newrefcontext
    \printbibliography[notkeyword=myarticles, notkeyword=myconferences, title={Regular References}, heading=subbibliography, resetnumbers=true]


\end{document}

Ideally, the entries should look like this:

[A1]* Article 1

[A2] Article 2

* refer to previous work

Currently, my workaround is to split the subbibliographies into two parts and use \newrefcontext[labelprefix=*A] and \newrefcontext[labelprefix=A], respectively. This is kind of ugly though, preferably the star should appear after the bracket.

3

Firstly, if you want to give several keywords you must give them in the same keywords field separated with a comma.

Secondly, and more interestingly, you can add a star by redefining the labelnumberwidth format.

\DeclareFieldFormat{labelnumberwidth}{%
  \mkbibbrackets{#1}%
  \ifkeyword{former}
    {\makebox[0pt][l]{\textsuperscript{*}}}
    {}}

The \ifkeyword and \textsuperscript{*} should be self-explanatory. I wrapped the \textsuperscript{*} in a \makebox[0pt][l] so that the asterisk does not take up any space. Normally the numbers are right-aligned and if the asterisk took up space the closing bracket of [A2] would align with the right end of [A1]* and we'd get

[A1]*
 [A2]

instead of

[A1]*
[A2]

The alternative would have been to left-align the labels, but that would result in

[8]
[9]
[10]

instead of

 [8]
 [9]
[10]

If you have a current biblatex version you may also be interested in the option locallabelwidth to avoid excess space in the last bibliography.

\documentclass{article}

\usepackage[defernumbers=true, locallabelwidth]{biblatex}

\DeclareFieldFormat{labelnumberwidth}{%
  \mkbibbrackets{#1}%
  \ifkeyword{former}
    {\makebox[0pt][l]{\textsuperscript{*}}}
    {}}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{ref1, note = {Article 1}, keywords={former,myarticles}}
@misc{ref2, note = {Article 2}, keywords={myarticles}}
@misc{ref3, note = {Proceedings 1}, keywords={former,myconferences}}
@misc{ref4, note = {Proceedings 2}, keywords={myconferences}}
@misc{ref5, note = {Reference 1}}
@misc{ref6, note = {Reference 2}}
\end{filecontents}
\addbibresource{\jobname.bib}


\begin{document}
\nocite{*}

\defbibnote{thepostnote}{* refer to previous work}

\printbibheading[title={References}]
\newrefcontext[labelprefix=A]
\printbibliography[keyword=myarticles, title={My Articles}, heading=subbibliography, postnote=thepostnote]
\newrefcontext[labelprefix=C]
\printbibliography[keyword=myconferences, title={My Conference Contributions}, heading=subbibliography, postnote=thepostnote]
\newrefcontext
\printbibliography[notkeyword=myarticles, notkeyword=myconferences, title={Regular References}, heading=subbibliography, resetnumbers=true]
\end{document}

Superscript-star to mark <code>former</code> contributions.

0

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.