Автоматически добавлять пользовательский URL-адрес в мою библиографию на основе локального переопределения URL-адресов

Автоматически добавлять пользовательский URL-адрес в мою библиографию на основе локального переопределения URL-адресов

Я ищу решение для автоматического добавления пользовательского URL-адреса в мою библиографию на основе локального переписывания URL-адресов.

Например, у меня есть запись в biblatex library.libс локальным URL-адресом PDF-файла, например:

@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}
}

Латексный файл:

\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}

Как добавить пользовательский URL-адрес в мою библиографию для загрузки статьи из пользовательского источника и как автоматически перевести этот URL-адрес в файл biblatex?

home/srey/TRAVAUX/THESE/REPOSITORY\_PDF/RANGE/Stonedahl\_2011\_Genetic Algorithms for the Exploration of Parameter Spaces in Agent-Based Models.pdf transform

в

http://mycustomserver.com/Stonedahl_2011_Genetic Algorithms for the Exploration of Parameter Spaces in Agent-Based Models.pdf

решение1

При biblatexиспользовании biberв качестве бэкэнда можно \DeclareSourcemapвыполнять манипуляции с полями «на лету».

\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}]
    }
  }  
}

Первые два шага предназначены для копирования значения поля fileв поле url, последний step— для замены пути на fileсоответствующий url. При \regexpиспользовании возможны обычные группировки регулярных выражений и замены.

В руководстве по эксплуатации biblatex подобные операции подробно описаны в разделе 4.5.2.

Вот результат (изменение urlопции для отображения результата замены).

введите описание изображения здесь

Связанный контент