当没有提供作者时,为什么 biblatex 默认使用标题而不是作者,我该如何将其更改为使用 journaltitle?

当没有提供作者时,为什么 biblatex 默认使用标题而不是作者,我该如何将其更改为使用 journaltitle?

现有的文档代码如下:

\documentclass[12pt, final, a4paper]{article}

\usepackage[backend=biber,style=authoryear-icomp,sorting=nyt,isbn=false,doi=true,dashed=false,maxbibnames=99,uniquename=init,giveninits]{biblatex}
\addbibresource{referenser.bib}

\begin{document}
Here is one sentence.\cite{Knuth:ct-a}

Here is another sentence.\cite{noauthor_solcell_2020}
\printbibliography
\end{document}

.bib 文件代码如下:

@Book{Knuth:ct-a,
author =       "Donald E. Knuth",
title =        "The {\TeX}book",
publisher =    "Addison-Wesley",
year =         "1986",
volume =       "A",
series =       "Computers and Typesetting",
pages =        "ix + 483",
}

@online{noauthor_solcell_2020,
titleaddon = {Nationalencyklopedin},
title = {solcell},
url = {https://www.ne.se/uppslagsverk/encyklopedi/l%C3%A5ng/solcell},
urldate = {2020-04-13},
date = {2020}
}

截至目前,它打印出:

在此处输入图片描述

当没有作者时,如何让它打印出journaltitle/而不是标题?titleaddon

编辑:

以下是修改后使用哈佛引用代替默认引用的完整代码:

\usepackage{csquotes}
\usepackage[backend=biber,style=authoryear-icomp,sorting=nyc,isbn=false,doi=true,dashed=false,maxbibnames=99,uniquename=init,giveninits]{biblatex}
\addbibresource{references.bib}
\DeclareFieldFormat[article]{title}{#1}
\renewbibmacro{in:}{}
\renewcommand*{\finalnamedelim}{\ifnumgreater{\value{liststop}}{2}{\finalandcomma}{}\addspace\&\space}
\DefineBibliographyStrings{swedish}{andothers={et\addabbrvspace al\adddot}}
\newcommand{\mkbibnodate}{u\adddot å\adddot}
\AtEveryCitekey{\iffieldundef{year}{\restorefield{labelyear}{\mkbibnodate}}{}}
\DeclareFieldFormat{urldate}{\mkbibbrackets{#1}}
\NewBibliographyString{available}
\DefineBibliographyStrings{swedish}{available={Tillgänglig}}
\DeclareFieldFormat{url}{\bibstring{available}\addcolon\space\url{#1}}
\DeclareFieldFormat[article]{volume}{vol. #1}
\renewbibmacro*{volume+number+eid}{\setunit{\addcomma\space}\printfield{volume}\setunit*{\addnbspace}\printfield{number}\setunit{\addcomma\space}\printfield{eid}}
\DeclareFieldFormat[article]{number}{\mkbibparens{#1}}
\DeclareFieldFormat[article]{pages}{ss. #1 \adddot}
\DeclareNameAlias{sortname}{family-given}
\renewcommand*{\bibfont}{\footnotesize}
\DeclareSortingTemplate{nyc}{\sort{\field{presort}}\sort[final]{\field{sortkey}}\sort{\field{sortname}\field{author}\field{editor}\field{translator}\field{journaltitle}\field{sorttitle}\field{title}}\sort{\field{sortyear}\field{year}}\sort{\citeorder}}

我可以实现一些代码,从没有作者时默认的 URL创建一个titleaddonlabel另一个吗?由于所有 URL 都有 www.websitename.xxx,是否有一些命令可以让除两个点之间的内容之外的所有内容消失?如果没有提供作者,是否有某种方法可以重新定义?authorauthor

由于我不完全理解上面的代码中发生了什么,您能否演示一下将这些更改放在哪里才是安全的,以使其正常工作?

提前致谢!/亚历山大

答案1

为什么这些问题可能很难回答。通常,答案取决于常见的(观察到的)做法或传统。但对于这种不太常见的极端情况,通常直接且不太有帮助的答案是:因为开发人员或向开发人员询问此功能的人认为这是有用的行为。

biblatex在没有作者/编辑/... 时需要显示一些内容,因为它不能只显示年份。 是title显而易见的选择,因为大多数条目都应该有标题,而且标题很有可能是相当独特的。(选择journaltitletitleaddon似乎不太有希望,因为并非所有条目都会有一个标题,而且journaltitle不能合理地期望 s 是唯一的。)所以选择并不是完全不合理的。APA 风格似乎遵循结构上类似的方法。

在这种情况下,biblatex您可以为该领域的作者/编辑/……提出后备建议label。例如

@online{noauthor_solcell_2020,
  label      = {Nationalencyklopedin},
  titleaddon = {Nationalencyklopedin},
  title      = {solcell},
  url        = {https://www.ne.se/uppslagsverk/encyklopedi/l%C3%A5ng/solcell},
  urldate    = {2020-04-13},
  date       = {2020},
}

不过,我认为在这里“升级”Nationalencyklopedinauthor(或至少editor)是完全没问题的。不仅个人可以成为作者,法人实体也可以成为作者,只要记住如果法人实体的名称由多个单词组成,请用括号括起来(在书目条目的“作者”字段中使用“公司作者”(完整拼写出姓名)

@online{noauthor_solcell_2020,
  author     = {Nationalencyklopedin},
  title      = {solcell},
  url        = {https://www.ne.se/uppslagsverk/encyklopedi/l%C3%A5ng/solcell},
  urldate    = {2020-04-13},
  date       = {2020},
}

短暂点击文章信息https://www.ne.se/uppslagsverk/encyklopedi/l%C3%A5ng/solcell揭示

梅德韦尔坎德

达格·西格德、拉尔斯·斯托尔特

所以可能

@online{noauthor_solcell_2020,
  author     = {Dag Sigurd and Lars Stolt},
  title      = {solcell},
  titleaddon = {Nationalencyklopedin},
  url        = {https://www.ne.se/uppslagsverk/encyklopedi/l%C3%A5ng/solcell},
  urldate    = {2020-04-13},
  date       = {2020},
}

也是一个有效的替代方案。

最后,在这种情况下,可以biblatex选择 而titleaddon不是title。在生成 时做出决定labeltitle。 的默认指令labeltitle

\DeclareLabeltitle{%
  \field{shorttitle}
  \field{title}
  \field{maintitle}
}

但你可以把它读成

\DeclareLabeltitle{%
  \field{titleaddon}
  \field{shorttitle}
  \field{title}
  \field{maintitle}
}

titleaddon更喜欢title……

相关内容