Me gustaría tener un comportamiento biblatex similar al descrito.aquí, es decir, bibliografías separadas para diferentes tipos de publicaciones, cada bibliografía debe 1) tener como prefijo una etiqueta correspondiente (C para publicaciones de conferencias, J para revistas, etc.), 2) ordenarse de modo que la entrada más reciente esté en la parte superior (definida por el año de publicación). ) y 3) con números de referencia ordenados en orden descendente por bibliografía, es decir, la entrada más reciente debe tener el número más 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
Actualmente tengo lo siguiente:
\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]
Las bibliografías separadas funcionan bien, labelprefix también funciona según se desee, ordenando también por año en orden descendente. Sin embargo, si pruebo la solución mencionada en la pregunta anterior, obtengo números de referencia muy altos (en el orden de 500).
¿Es posible el comportamiento anterior y, en caso afirmativo, cuál es la solución más elegante utilizando biblatex actual, etc.?
¡Muchas gracias por adelantado!
Respuesta1
Esta respuesta se basa enaudreyla respuesta deEtiqueta inversa multibib u orden de clasificación.
Debido a que algunas partes internas han cambiado con el tiempo, son necesarios algunos ajustes. En versiones recientes, podría suceder que ciertas entradas se procesaran varias veces, por lo que debemos asegurarnos de que cada entrada se procese solo una vez.
Esta solución necesita la defernumbers
opción.
\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}
Respuesta2
Muchas gracias moewe. Tu código es excelente. Lo modifiqué ligeramente para el caso de "ordenar por palabras clave". Por ejemplo, tengo varios tipos de entradas en @misc
(palabras clave: carteles, presentaciones, mapas, códigos). En este caso, la clasificación por 'tipos de entrada' no funciona. Pero funciona cuando cambié 'tipo de entrada' a 'palabras clave' en su 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}