Busco una solución para agregar automáticamente una URL personalizada en mi bibliografía, basada en la reescritura de la URL local.
Por ejemplo, tengo una entrada biblatex library.lib
con una URL de pdf local como esta:
@phdthesis{Stonedahl2011a,
author = {Stonedahl, Forrest J.},
file = {:home/srey/TRAVAUX/THESE/REPOSITORY\_PDF/RANGE/Stonedahl\_2011\_Genetic Algorithms for the Exploration of Parameter Spaces in Agent-Based Models.pdf:pdf},
number = {December},
pages = {394},
school = {Evanston, Illinois},
title = {{Genetic Algorithms for the Exploration of Parameter Spaces in Agent-Based Models}},
year = {2011}
}
El archivo de látex:
\documentclass[a4paper, 12pt,twoside, openright]{memoir}
\usepackage{polyglossia}
\setdefaultlanguage{french}
\usepackage{fontspec}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage[autostyle=true,french=guillemets,maxlevel=3]{csquotes}
\usepackage{xparse}
\usepackage{graphicx}
\usepackage[protrusion=true]{microtype}
\sidecapmargin{outer}
\setsidecappos{t}
\usepackage[backend=biber,backref=true, natbib=true, isbn=false, doi=false, url=false, style=authoryear,maxcitenames=1, maxbibnames=999, sorting=nyt, refsection=chapter, hyperref]{biblatex}
\addbibresource[datatype=bibtex]{library.bib}
\begin{document}
\chapterstyle{bringhurst}
My blabla text with citation. \autocite{Stonedahl2011a}
\printbibliography
\end{document}
¿Cómo puedo agregar una URL personalizada a mi bibliografía para descargar el artículo desde una fuente personalizada y cómo puedo traducir automáticamente esta URL a un archivo biblatex?
home/srey/TRAVAUX/THESE/REPOSITORY\_PDF/RANGE/Stonedahl\_2011\_Genetic Algorithms for the Exploration of Parameter Spaces in Agent-Based Models.pdf transform
en
http://mycustomserver.com/Stonedahl_2011_Genetic Algorithms for the Exploration of Parameter Spaces in Agent-Based Models.pdf
Respuesta1
Cuando biblatex
se utiliza biber
como backend, es posible utilizarlo \DeclareSourcemap
para realizar la manipulación de los campos sobre la marcha.
\DeclareSourcemap{
\maps[datatype=bibtex]{
\map{
\step[fieldsource=file]
\step[fieldset=url, origfieldval]
\step[fieldsource=url,
match=\regexp{:home/srey/TRAVAUX/THESE/REPOSITORY_PDF/RANGE/(.+):pdf},
replace={http://www.example.com/$1}]
}
}
}
Los primeros dos pasos están destinados a copiar el valor del campo file
en el campo url
, el último step
es reemplazar la ruta file
con la URL adecuada. Cuando \regexp
se utiliza, es posible realizar agrupaciones y reemplazos de expresiones regulares normales.
El manual de biblatex describe dichas operaciones en detalle en la sección 4.5.2.
Aquí está el resultado (cambiando la url
opción para mostrar el resultado de la sustitución).