使用 Biblatex 的数字样式引用同姓氏的多位作者

使用 Biblatex 的数字样式引用同姓氏的多位作者

我想引用多个姓氏相同的作者,这样\textcite{<key>}如果姓氏不明确,即在最小工作示例中,调用就会打印作者的姓名首字母

% !TEX encoding = UTF-8
% !TEX engine = xelatex

\documentclass[12pt,a4paper]{scrartcl}

\usepackage{polyglossia}
\setdefaultlanguage[variant=british]{english}
\setotherlanguage{german}

\usepackage[autostyle,
            english=british]{csquotes}
% BibLaTex
\usepackage[style=numeric,backend=biber]{biblatex}
\addbibresource{./references.bib}


\begin{document}
  I want to cite \textcite{Robinson1959} and \textcite{Robinson1951}.

  \printbibliography
\end{document}

使用参考书目

@Article{Robinson1959,
  author     = {Julia Robinson},
  title      = {The undecidability of algebraic rings and fields},
  journal    = {Proc. Amer. Math. Soc.},
  year       = {1959},
  volume     = {10},
  number     = {6},
  pages      = {950--957},
  month      = {jun},
  issn       = {0002-9939},
  publisher  = {American Mathematical Society ({AMS})},
  fjournal   = {Proceedings of the American Mathematical Society},
  mrclass    = {02.00},
  mrnumber   = {0112842},
  mrreviewer = {R. M. Martin},
}

@Article{Robinson1951,
  author     = {Raphael M. Robinson},
  title      = {Arithmetical definability of field elements},
  journal    = {J. Symbolic Logic},
  year       = {1951},
  volume     = {16},
  number     = {02},
  pages      = {125--126},
  month      = {jun},
  issn       = {0022-4812},
  publisher  = {Cambridge University Press ({CUP})},
  fjournal   = {The Journal of Symbolic Logic},
  mrclass    = {02.0X},
  mrnumber   = {0042357},
  mrreviewer = {P. Lorenzen},
}

我想\textcite{Robinson1959}打印J. Robinson [1]\textcite{Robinson1951}打印R. Robinson [2],或R.M. Robinson [2]。但是,我目前得到

当前输出有歧义

我知道这些问题的解决方案23。然而,这两种解决方案

  1. 修改我想保留的 Bib 数据库(我正在访问一个集中式数据库)并
  2. 是基于 Bibtex 和 LaTeX 构建的(我使用 Biblatex 与 Biber 和 XeLaTeX)。

我也知道apa-风格自动具有此行为。因此,我非常确定应该能够使用某种\ateverybibitemmakro 来实现此目的。

答案1

你正在寻找uniquename选项。本质上你想要的是biblatex,authoryear 样式:文内引用显示某些参考书目条目的名字首字母含有 Biber 的文献会产生奇怪的引用:名字出现不规律

该选项可以采用多个值,在我看来最自然的设置是uniquename=full。请参阅第 63 页和 §4.11.4名称歧义消除(第 281-284 页)文档biblatex了解其他可能的值和更多详细信息。

使用标准样式时,只uniquename需要选择,其他一切都会自动处理。

\documentclass[12pt,a4paper]{scrartcl}
\usepackage[german,british]{babel}

\usepackage[autostyle]{csquotes}
\usepackage[style=numeric,backend=biber,uniquename= full]{biblatex}
\begin{filecontents}{\jobname.bib}
@Article{Robinson1959,
  author     = {Julia Robinson},
  title      = {The undecidability of algebraic rings and fields},
  journal    = {Proc. Amer. Math. Soc.},
  year       = {1959},
  volume     = {10},
  number     = {6},
  pages      = {950--957},
  month      = jun,
  issn       = {0002-9939},
  publisher  = {American Mathematical Society ({AMS})},
  fjournal   = {Proceedings of the American Mathematical Society},
  mrclass    = {02.00},
  mrnumber   = {0112842},
  mrreviewer = {R. M. Martin},
}

@Article{Robinson1951,
  author     = {Raphael M. Robinson},
  title      = {Arithmetical definability of field elements},
  journal    = {J. Symbolic Logic},
  year       = {1951},
  volume     = {16},
  number     = {02},
  pages      = {125--126},
  month      = jun,
  issn       = {0022-4812},
  publisher  = {Cambridge University Press ({CUP})},
  fjournal   = {The Journal of Symbolic Logic},
  mrclass    = {02.0X},
  mrnumber   = {0042357},
  mrreviewer = {P. Lorenzen},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
  I want to cite \textcite{Robinson1959} and \textcite{Robinson1951}.

  \printbibliography
\end{document}

给出

我想引用J. Robinson[1]和RM Robinson[2]。

请注意,您应该写成month = jun,和 而不是month = {jun},。从技术上讲,三个字母的月份缩写应为@strings ,并且@strings 必须用大括号括起来。使用代替biblatex会更好,但为了向后兼容传统样式,/组合有其优点。date = {1959-06},year = {1959}, month = jun,.bstmonthyear

相关内容