为什么软件书目条目没有打印出它是软件?

为什么软件书目条目没有打印出它是软件?

我想引用一个发布在网站(git 存储库)上的软件。该@software条目似乎最适用,但该@misc条目有一个type软件字段。一个最小示例

\documentclass{article}
\usepackage[backend=biber]{biblatex}
\begin{filecontents}{test.bib}
@Misc{Foo2019,
  author   = {Authors},
  title    = {Foo},
  type     = {software},
  url      = {https://example.com},
  urldate  = {2019-12-12},
  year     = {2019},
}

@Software{Foo2019b,
  author   = {Authors},
  title    = {Foo},
  url      = {https://example.com},
  urldate  = {2019-12-12},
  year     = {2019},
}
\end{filecontents}
\addbibresource{test.bib}
\begin{document}
My cite~\cite{Foo2019,Foo2019b}.
\printbibliography
\end{document}

然而,只有@misc被打印为

[Aut19] 作者.Foo.Comp.software.2019。

使用alphabetic样式。而条目中却没有写“Comp. 软件” @software。这是为什么呢?

答案1

我无法重现该 URL 问题,因为标准样式会打印 URL,除非明确指示另行执行(使用url=false,)。

如果我们记住 MWE 的@software处理方式与标准样式完全相同,那么 MWE 的结果就是预期的@misc。因此,如果没有type字段,@software则不会显示类型。

不过,使用源映射自动添加该类型字段并不难。

\documentclass{article}
\usepackage[backend=biber]{biblatex}

\DeclareSourcemap{
  \maps[datatype=bibtex, overwrite=false]{
    \map{
      \step[typesource=software, final]
      \step[fieldset=type, fieldvalue={software}]
    }
  }
}

\begin{filecontents}{\jobname.bib}
@misc{Foo2019a,
  author   = {Authors},
  title    = {Foo},
  type     = {software},
  url      = {https://example.com},
  urldate  = {2019-12-12},
  year     = {2019},
}
@software{Foo2019b,
  author   = {Authors},
  title    = {Foo},
  url      = {https://example.com},
  urldate  = {2019-12-12},
  year     = {2019},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
My cite~\autocite{Foo2019a,Foo2019b}.
\printbibliography
\end{document}

作者。Foo。Comp。软件。2019。url:https://example.com(访问日期:2019 年 12 月 12 日)。//作者。Foo。Comp。软件。2019。url:https://example.com(访问日期:2019 年 12 月 12 日)。

如果你认为type条目字段@software应该自动填充software,你可以在https://github.com/plk/biblatex/issues来讨论这个问题。

相关内容