我该怎么做?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}]