Eu gostaria de ter um comportamento biblatex semelhante ao descritoaqui, ou seja, bibliografias separadas para diferentes tipos de publicação, cada bibliografia deve 1) ser prefixada com um rótulo correspondente (C para publicações de conferências, J para periódicos, etc.), 2) classificada de modo que a entrada mais recente fique no topo (definida pelo ano de publicação ) e 3) com números de referência ordenados em ordem decrescente por bibliografia, ou seja, a entrada mais recente deverá ter o número mais alto.
Journal articles
----------------
[J3] reference from 2017
[J2] reference from 2016
[J1] reference from 2015
Conference publications
-----------------------
[C4] reference from 2017
[C3] reference from 2017
[C2] reference from 2016
[C1] reference from 2015
Atualmente tenho o seguinte:
\usepackage[backend=biber,
isbn=true,
giveninits=true,
style=numeric,
maxnames=99,
sorting=ydnt,
defernumbers=true,
autocite=superscript]{biblatex}
\subsection*{Journal articles}
\begin{refcontext}[labelprefix=J]
\printbibliography[type=article]
\end{refcontext}
\subsection*{Conference publications}
\begin{refcontext}[labelprefix=C]
\printbibliography[type=inproceedings]
Bibliografias separadas funcionam bem, labelprefix também funciona conforme desejado, classificando por ano em ordem decrescente também. No entanto, se eu tentar a solução mencionada na pergunta acima, obterei números de referência muito altos (na casa dos 500).
O comportamento acima é possível e, em caso afirmativo, qual é a solução mais elegante usando o biblatex atual, etc.?
Muito obrigado antecipadamente!
Responder1
Esta resposta é baseada emAudreya resposta paraEtiqueta reversa multibib ou ordem de classificação.
Como alguns aspectos internos mudaram ao longo do tempo, alguns ajustes são necessários. Em versões recentes, pode acontecer que certas entradas sejam processadas várias vezes, por isso precisamos garantir que cada entrada seja processada apenas uma vez.
Esta solução precisa da defernumbers
opção.
\documentclass{article}
\usepackage[backend=biber,style=numeric,sorting=ydnt,defernumbers]{biblatex}
% Count total number of entries in each refsection
\AtDataInput{%
\ifcsundef{bbx@processedentries:\therefsection}
{\csgdef{bbx@processedentries:\therefsection}{}}
{}%
\xifinlistcs{\thefield{entrykey}}{bbx@processedentries:\therefsection}{}{%
\listcsxadd{bbx@processedentries:\therefsection}{\thefield{entrykey}}%
\csnumgdef{bbx@entrycount:\therefsection:\thefield{entrytype}}{%
\csuse{bbx@entrycount:\therefsection:\thefield{entrytype}}+1}}}
% Print the labelnumber as the total number of entries in the
% current refsection, minus the actual labelnumber, plus one
\DeclareFieldFormat{labelnumber}{\mkbibdesc{#1}}
\newrobustcmd*{\mkbibdesc}[1]{%
\number\numexpr\csuse{bbx@entrycount:\therefsection:\thefield{entrytype}}+1-#1\relax}
\addbibresource{biblatex-examples.bib}
\begin{document}
\nocite{aksin,bertram,chiu,companion,padhye,angenendt,moraux,sigfridsson}
\newrefcontext[labelprefix=J]
\printbibliography[type=article]
\newrefcontext[labelprefix=C]
\printbibliography[type=inproceedings]
\end{document}
Responder2
Muito obrigado, moewe. Seu código é excelente. Modifiquei-o ligeiramente para o caso de 'classificação por palavras-chave'. Por exemplo, tenho vários tipos de entrada em @misc
(palavras-chave: cartazes, apresentações, mapas, códigos). Classificar por 'entrytypes' neste caso não funciona. Mas funciona quando alterei 'entrytype' para 'keywords' no seu código:
\AtDataInput{%
\ifcsundef{bbx@processedentries:\therefsection}
{\csgdef{bbx@processedentries:\therefsection}{}}
{}%
\xifinlistcs{\thefield{entrykey}}{bbx@processedentries:\therefsection}{}{%
\listcsxadd{bbx@processedentries:\therefsection}{\thefield{entrykey}}%
\csnumgdef{bbx@entrycount:\therefsection:\thefield{keywords}}{%
\csuse{bbx@entrycount:\therefsection:\thefield{keywords}}+1}}}
% Print the labelnumber as the total number of entries in the
% current refsection, minus the actual labelnumber, plus one
\DeclareFieldFormat{labelnumber}{\mkbibdesc{#1}}
\newrobustcmd*{\mkbibdesc}[1]{%
\number\numexpr\csuse{bbx@entrycount:\therefsection:\thefield{keywords}}+1-#1\relax}