Necesito ordenar mis entradas biblatex basándose únicamente en el primer autor (estilo de título de autor), pero necesito la lista completa de autores en la bibliografía. puedo usar algo como
\DeclareSortingScheme{mio}{
\sort{\field{author}}
}
pero ¿cómo puedo extraer sólo el primer autor? Dicho de otra manera, ¿cómo puedo extraer información parcial de las entradas de bibtex (el primer autor como ejemplo?)
¿Alguien puede ayudarme?
Gracias
Yo uso biblatex biber teklive
El orden de referencia aquí debe ser el inverso.
Ejemplo:
\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{filecontents}
\usepackage[natbib = true, backend = biber, style = authoryear, sorting = nyt]{biblatex}
\begin{filecontents}{\jobname.bib}
@article{A2014,
author={A,B and C,D},
title={Test},
year = {2014}
}
@article{A2000,
author={A,B and D,E},
title={Test},
year = {2000}
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
ACTUALIZAR
Tengo la respuesta ahora mismo, pero edité la pregunta de todos modos porque creo que esto podría ser un problema común para novatos como yo y no encontré un ejemplo en la red.
Por lo tanto, responda esta pregunta brindando también algunos detalles sobre el uso de sortname
, \DeclareSourcemap
\DeclareSortingScheme
para ayudarme a aprender.
Respuesta1
Como comenté en tu pregunta veo dos posibilidades para ordenar las entradas de bibliografías:
La primera: Usar sólo el Apellido del Primer Autor
Cómo lo estás usando biber
, eres capaz de usarlo labelalpha
(biblatex.pdf. página 59). Usando labelalpha
puedes usar un solo autor, con la extensión maxalphanames
. Luego, si está configurado en 1
biber, solo use el primer autor (en realidad, el apellido) para crear el archivo labelalpha
. Finalmente, es necesario especificar un esquema de clasificación que utilice, labelalpha
por ejemplo anyt
(Página 254, biblatex.pdf). Luego carga biblatex
con:
\usepackage[maxalphanames=1,labelalpha,maxbibnames=99, sorting=anyt, style=authoryear, natbib=true, backend=biber]{biblatex}
MWE
\documentclass{article}
\begin{filecontents}{MWE.bib}
@article{A2014,
author={A,B and C,D},
title={Test},
year = {2014}
}
@article{A2000,
author={A,B and D,E},
title={Test},
year = {2000}
}
\end{filecontents}
\usepackage[maxalphanames=1,labelalpha,maxbibnames=99, sorting=anyt, style=authoryear, natbib=true, backend=biber]{biblatex}
\addbibresource{MWE.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}
Es maxbibanames=99
para imprimir los autores completos en la bibliografía.
El segundo: Usar el nombre completo del Primer Autor
Esto es posible usando DeclareStyleSourcemap
. La mayoría de los esquemas de clasificación alfabético predeterminados biblatex
pueden utilizar sortname
el campo. Luego es posible utilizar DeclareStyleSourcemap
para copiar el nombre completo del primer autor en el sortname
campo. Para obtener una explicación sobre Regular Expressions
lea la perl
documentación.aquí.
\DeclareStyleSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=author, match=\regexp{(.+)\sand}, final]
\step[fieldset=sortname, fieldvalue=$1, final] }
}}
MWE
\documentclass{article}
\begin{filecontents}{MWE.bib}
@article{A2014,
author={A,Bo and M,M},
title={Test},
year = {2014}
}
@article{A2000,
author={A,Co and D,E},
title={Test},
year = {2000}
}
\end{filecontents}
\RequirePackage[maxbibnames=99, sorting=nyt, style=authoryear, backend=biber]{biblatex}
\DeclareStyleSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=author, match=\regexp{(.+)\sand}, final]
\step[fieldset=sortname, fieldvalue=$1, final] }
}}
\addbibresource{MWE.bib}
\begin{document}
\nocite{*}
\printbibliography
\end{document}