Behalten Sie nur den Domänennamen der URL bei und drucken Sie ihn in der Bibliographie als Organisation aus

Behalten Sie nur den Domänennamen der URL bei und drucken Sie ihn in der Bibliographie als Organisation aus

Wie kann ich einen Befehl definieren, um nur den Domänennamen eines Links beizubehalten, z. B.http://www.google.com/search?=bangwird nur google.com angegeben und als Organisationsfeld für eine URL-Referenz angezeigt?

Vielen Dank

Antwort1

Dies ist wirklich keine triviale Anfrage und ich rate Ihnen dringend, das Feld manuell auszufüllen organization(Ihr geringstes Problem ist die Groß- und Kleinschreibung des Organisationsnamens: Es soll ja nicht als , sondern als url = {http://nssdc.gsfc.nasa.gov/planetary/factsheet/moonfact.html}herauskommen ).organization = {nasa}organization = {NASA}

Einige mehr oder weniger brauchbare Lösungen als Proof of Concept mit biblatexund biber.

Diese Quellkarte geht in die Präambel.

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map[overwrite=false]{
      \step[fieldsource=url, match=\regexp{^((?:f|ht)tps?://)?(?:www\.)?([^/]+)}, final]
      \step[fieldset=organization, fieldvalue={$2}]
    }
  }
}

Es versucht, den Domänenteil einer URL aus dem urlFeld zu extrahieren und ordnet ihn dem organizationFeld zu. Da das Entfernen von Subdomänen keine triviale Aufgabe ist, insbesondere wenn man berücksichtigt, dass es TLDs wie .co.uk, .info, .de, .comusw. gibt, werden diese dennoch einbezogen.

\documentclass{article}

\usepackage[style=authoryear, backend=biber]{biblatex}

\usepackage{hyperref}
\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@ELECTRONIC{MEMSnet,
  title = {What is {MEMS}?},
  url = {http://www.memsnet.org/mems/what_is.html},
  urldate = {2013-12-01},
}
\end{filecontents}

\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map[overwrite=false]{
      \step[fieldsource=url, match=\regexp{^((?:f|ht)tps?://)?(?:www\.)?([^/]+)}, final]
      \step[fieldset=organization, fieldvalue={$2}]
    }
  }
}

\begin{document}
  \nocite{MEMSnet,wilde,markey}
  \printbibliography
\end{document}

gibt

Bildbeschreibung hier eingeben

MEMSnetHier können beide oben genannten Probleme beobachtet werden: Man würde wahrscheinlich anstelle von memsnet.orgund CTANanstelle von sehen wollen tug.ctan.org.

verwandte Informationen