
Я пытаюсь использовать biblatex для получения библиографии со следующими характеристиками: 1) она должна быть разделена на два раздела (например, «Журналы» и «Доклады конференций»); 2) каждая запись в первом (соответственно, втором) разделе должна иметь префикс «J» (соответственно, «C»); 3) записи должны быть в обратном порядке.
До сих пор мне удалось достичь пунктов 1) и 3) выше, но не пункта 2), то есть я получаю
Journal Papers
[2]
[1]
Conference Papers
[2]
[1]
вместо
Journal Papers
[J2]
[J1]
Conference Papers
[C2]
[C1]
Вот мой MWE, который вдохновлен другими похожими темами (а именно,biblatex: Обратная нумерация (т.е. обратный отсчет)иОбратная этикетка Multibib или порядок сортировки):
\documentclass{article}
\usepackage{etoolbox}
\usepackage[backend=bibtex,style=ieee,sorting=ydnt,defernumbers]{biblatex}
\AtDataInput{%
\csnumgdef{entrycount:\therefsection}{%
\csuse{entrycount:\therefsection}+1}}
\DeclareFieldFormat{labelnumber}{\mkbibdesc{#1}}
\newrobustcmd*{\mkbibdesc}[1]{%
\number\numexpr\csuse{entrycount:\therefsection}+1-#1\relax}
\addbibresource[label=journals]{my_publications.bib}
\addbibresource[label=conferences]{my_publications.bib}
\begin{document}
\begin{refsection}[journals]
\nocite{journal1,journal2}
\printbibliography[prefixnumbers={J},title={Journal Papers}]
\end{refsection}
\begin{refsection}[conferences]
\nocite{conf1,conf2}
\printbibliography[prefixnumbers={C},title={Conference Papers}]
\end{refsection}
\end{document}
Я компилирую, используя следующие команды:
latex doc
bibtex doc1-blx
bibtex doc2-blx
latex doc
pdflatex doc
Что я делаю не так?
решение1
Вы больше не можете использовать prefixnumber. Вы должны использовать его
\newrefcontext[labelprefix=J]
на строке выше printbiliography.