uniquelist=false 用于自然风格 biblatex

uniquelist=false 用于自然风格 biblatex

我需要使用uniquelist=falseinnature样式biblatex,到目前为止引用工作正常,通过将每个引用命名为 2011a 和 2011b,但是在参考文献中它看起来并不相同。在这里,读者无法区分哪个是 2011a 或 2011b。

示例图片

如何使参考文献的标签与文章中引用的标签相同?

\documentclass{article}

\usepackage[style=nature,
  intitle   =true,
  citestyle =authoryear,
  backend   =biber,
  natbib    =true,
  uniquename=false,
  uniquelist=false,
  date      =year,
  url       =false,
  doi       =false,
  isbn      =false,
  mincitenames=1,
  maxcitenames=2]{biblatex}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{ABC01,
  author = {Author, A. and Buthor, B. and C},
  year = {2001},
  title = {Alpha},
}
@misc{ADE01,
  author = {Author, A. and Duthor, D. and E},
  year = {2001},
  title = {And now for something completely different},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
Some text \autocite{ABC01}.

Some text \autocite{ADE01}.

\printbibliography
\end{document}

答案1

biblatex允许您独立地指定 abibstyle和 a citestyle。大多数样式(当然是所有标准样式和大多数贡献样式)的编写方式都允许您随意混合搭配bibstylecitestyle某些(贡献)样式可能在.bbx( bibstyle) 和.cbx( citestyle) 之间具有相互依赖性,需要将它们一起使用。

从技术上讲,

style=nature,
citestyle=authoryear,

这基本上

bibstyle=nature,
citestyle=authoryear,

运行正常。没有错误。

但并非所有参考书目和引用风格的组合都有意义。

nature是一种数字样式,这意味着在文本和参考书目中引用的内容用数字来标识。authoryear不使用纯数字来标识引用,因此numeric参考书目列表中的数字毫无意义地保留着。它们与文档中的任何其他内容都没有任何联系,只会让读者感到困惑。

另一方面,authoryear用作者和年份标识引文。如果有多部作品具有相同的作者-年份组合,则extradate添加该字母以消除歧义。要在参考书目中查找引文,作者和年份必须在参考书目列表中突出显示。但参考书目numeric非常强调项目前面的数字。当数字标签抢走了风头时,在条目的开头和结尾扫描作者和年份似乎需要比标准参考书目样式更多的脑力,在标准authoryear参考书目样式中,由于悬挂缩进,名称更突出,年份直接跟在名称后面。此外,必须存在消歧义字母。数字参考书目不需要该字母,通常不打印它。

我认为这表明数字书目和作者年份引用样式的混合实际上效果不佳。编辑:我刚刚意识到我在回答你之前的一个问题时已经说过这一点了(书中引用未显示章节标题),所以你可能不想听,但我仍然认为它值得向其他人重复和阐述。

如果您必须使用这种组合,我建议您删除所有提及的数字标签,并修改date宏以打印extradate信息。您还需要确保参考书目的排序对authoryear引用样式有用(即sorting=nyt;这在早期版本的答案中是缺失的,这要归功于@gusbrs指出这一点)。

\documentclass{article}

\usepackage[
  bibstyle=nature,
  intitle=true,
  citestyle=authoryear,
  sorting=nyt,
  backend=biber,
  labelnumber=false,
  uniquename=false,
  uniquelist=false,
  mincitenames=1,
  maxcitenames=2]{biblatex}

\defbibenvironment{bibliography}
  {\list
     {}
     {\setlength{\leftmargin}{\bibhang}%
      \setlength{\itemindent}{-\leftmargin}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}}
  {\endlist}
  {\item}

\renewbibmacro*{date}{\printdateextra}

\DeclareLabeldate{%
  \field{date}
  \field{year}
  \literal{nodate}
}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{ABC01,
  author = {Author, A. and Buthor, B. and C},
  year = {2001},
  title = {Alpha},
}
@misc{ADE01,
  author = {Author, A. and Duthor, D. and E},
  year = {2001},
  title = {And now for something completely different},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
Some text \autocite{ABC01}.

Some text \autocite{ADE01}.

\printbibliography
\end{document}

一些文本(作者等 2001a)。//一些文本(作者等 2001b)。//参考文献//作者,A.,Buthor,B. 和 C. Alpha 2001a。//作者,A.,Duthor,D. 和 E. 现在来谈谈完全不同的东西 2001b。

此外,您可能想或不想确保参考书目和引文显示相同数量的作者,这可以使用 , 来maxnames=2完成minnames=1

相关内容