仅保留 url 的域名,并在参考书目中打印为组织

仅保留 url 的域名,并在参考书目中打印为组织

如何定义一个命令来仅保留链接的域名,例如http://www.google.com/search?=bang是否只提供 google.com 并将其显示为 URL 引用的组织字段?

非常感谢

答案1

这确实是一个不简单的请求,我强烈建议手动填写该organization字段(您最不关心的问题是组织名称的大写:您不希望url = {http://nssdc.gsfc.nasa.gov/planetary/factsheet/moonfact.html}出现这样的情况organization = {nasa},但是organization = {NASA})。

一些或多或少有用的解决方案作为概念证明biblatexbiber

该源图进入序言部分。

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

它尝试从字段中提取 URL 的域部分url并将其映射到organization字段。由于删除子域并非易事,尤其是考虑到有、、等 TLD .co.uk.info因此.de这些.com仍包括在内。

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

给出

在此处输入图片描述

上面提到的两个问题都可以在这里观察到:人们可能希望看到MEMSnet而不是memsnet.org,并且CTAN而不是tug.ctan.org

相关内容