Agregar automáticamente una URL personalizada en mi bibliografía, basada en la reescritura de la URL local

Agregar automáticamente una URL personalizada en mi bibliografía, basada en la reescritura de la URL local

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.libcon 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 biblatexse utiliza bibercomo backend, es posible utilizarlo \DeclareSourcemappara 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 fileen el campo url, el último stepes reemplazar la ruta filecon la URL adecuada. Cuando \regexpse 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 urlopción para mostrar el resultado de la sustitución).

ingrese la descripción de la imagen aquí

información relacionada