BibLaTeX:自动为一个域名赋予其自己的类别

BibLaTeX:自动为一个域名赋予其自己的类别

我该怎么做?TeX 编程对我来说还是有点难。我想要所有@online具有github.com以域名为名称的

我知道我可以使用关键字半自动地完成此操作,但我想尝试自动完成此操作。

我得到了下面的工作,只要网址有github.com值而不是完整链接。我不是完全我不确定这是否是 MWE,因为我必须评论掉很多东西。

\documentclass[12pt,a4paper,twoside,openright]{report}

\usepackage{biblatex}
\addbibresource{references.bib}

\DeclareBibliographyCategory{github}

\AtEveryCitekey{%
    \ifentrytype{online}{
        \iffieldequalstr{url}{github.com}{
            \addtocategory{github}{\thefield{entrykey}}%
        }
    }
}



\begin{document}
\cite{ximpel_react_github}
\cite{ximpel_react_github}
\cite{ximpel_react_github}
\cite{smilStatus}
\cite{smilStatus}
\cite{smilStatus}

\printbibliography[heading=subbibliography, category=github, title={Github repositories}]
\printbibliography[heading=subbibliography, type=online, title={Other online sources}]
\end{document}

以下是参考书目:

@online{ximpel_react_github,
    author = "Melvin Roest",
    title = "XIMPEL React",
    url = "github.com",
    year = "2018",
    urldate = "2018-05-04"
}
@online{smilStatus,
    author = "W3C",
    title = "SMIL Current Status - W3C",
    url = "https://www.w3.org/standards/techs/smil#w3c_all",
    year = "2017",
    urldate = "2017-09-29"
}

\AtEveryCitekey当您多次引用相同的文内引文时,已经出现问题。此外,它与子字符串不匹配。

我Google了1到2个小时之后还是没能解决这些问题。

有一个类似的问题,但它与源映射有关,我认为源映射在这里不合适。不过我确实尝试过使用源映射。

答案1

我很着急,但我想回答我自己的问题,因为多亏了 moewe 的帮助,下面的代码才成功。这不是最强大的代码,但它有效!

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldsource=url, match=\regexp{github.com}]
      \step[fieldset=keywords, fieldvalue={$1}]
    }
  }
}

在文档中:

\printbibliography[heading=subbibliography, keyword=github.com, title={Github repositories}]
\printbibliography[heading=subbibliography, type=online, notkeyword=github.com, title={Other online sources}]

相关内容