如果作者不是唯一的,Biblatex 会在年份后附加字母

如果作者不是唯一的,Biblatex 会在年份后附加字母

我目前正在写一篇论文,其中使用了同一作者同一年发表的两篇不同文章。因此,使用脚注时,它会在年份后附加一个字母,例如 2008a、2008b、2008c 等等。根据我收到的指导方针,我不需要这样做,也不允许这样做。

我不明白为什么会发生这种情况,以及我应该采取什么步骤才能完全删除它。我在文档中读到了一个“uniquename”标志,但这似乎是针对另一种问题。

我正在像这样导入 biblatex(据我所知这是标准方式):https://github.com/andygrunwald/FOM-LaTeX-Template/blob/master/thesis_main.tex#L120

有人能告诉我我应该从哪里开始解决这个问题吗?非常感谢。

我的例子:

biblatex 的导入及配置

\usepackage[
backend=biber,
style=ext-authoryear,
maxcitenames=3,
maxbibnames=999,
mergedate=false,
date=iso,
seconds=true,
urldate=iso,
innamebeforetitle,
dashed=false,
autocite=footnote,
doi=false,
useprefix=true,
mincrossrefs = 1
]{biblatex}

我使用以下来源作为示例:

@online{example-1,
    usera = {Example One},
    title = {Example One},
    author = {Good Author},
    organization = {},
    location = {},
    date = {2018-12-20},
    urldate = {2019-01-02},
    urltime = {23:30},
    url = {https://cran.r-project.org/doc/manuals/r-release/fullrefman.pdf},
}

@online{example-2,
    usera = {Example Two},
    title = {Example Two},
    author = {Good Author},
    organization = {},
    location = {},
    date = {2018-12-20},
    urldate = {2019-01-02},
    urltime = {23:30},
    url = {https://cran.r-project.org/doc/manuals/r-release/fullrefman.pdf},
}

并做了如下引用:

Example citations here.\footcite[][]{example-1} \footcite[][]{example-2}

其结果是:

作者 2018a 作者 2018b

我想删除多余的字母(a 和 b)。

源代码

答案1

在通常authoryear情况下,删除这些extradate信息是没有意义的,事实上,它可能会使你的参考书目无法使用,因为读者无法将引文与参考书目条目相匹配。(没有好的界面可以关闭这些extradate功能authoryear而不关闭其他功能。但有一种不太好的方法来实现结果:BibLaTeX – 删除年份标签我应该再次强调,这是一个坏的主意。)

在您的样式中,您为每个引文添加了一个简短的标题(在 中usera),这样就可以区分同一作者在同一年创作的两部作品。只有extradate当同一作者在同一年创作了两部作品且属于同一usera领域时,您才需要 。我建议您biblatex使用

\DeclareExtradate{%
  \scope{
    \field{labelyear}
    \field{year}
  }
  \scope{
    \field{usera}
  }
}

然后是原始示例的以下简化形式

\documentclass[ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[
  backend=biber,
  style=ext-authoryear,
  maxcitenames=3,
  maxbibnames=999,
  mergedate=false,
  date=iso,
  seconds=true,
  urldate=iso,
  urldateusetime=true,
  innamebeforetitle,
  dashed=false,
  autocite=footnote,
  doi=false,
  eprint=false,
  isbn=false,
  url=false,
  useprefix=true,
  mincrossrefs=1,
]{biblatex}



\DeclareExtradate{%
  \scope{
    \field{labelyear}
    \field{year}
  }
  \scope{
    \field{usera}
  }
}


\renewbibmacro*{date+extradate}{%
  \printtext[parens]{%
    \printfield{usera}%
    \setunit{\printdelim{titleyeardelim}}%
    \ifentrytype{online}
       {\setunit*{\addspace\addcomma\addspace}%
         \iffieldundef{year}
           {\bibstring{nodate}}
           {\printlabeldateextra}}%
       {\printlabeldateextra}}}

\renewbibmacro*{cite:labeldate+extradate}{%
    \ifentrytype{online}
       {\setunit*{\addspace\addcomma\addspace}%
         \iffieldundef{year}
           {\bibstring{nodate}}
           {\printlabeldateextra}}%
       {\printlabeldateextra}}

\DeclareDelimFormat{nonameyeardelim}{\addcomma\space}
\DeclareDelimFormat{nameyeardelim}{\addcomma\space}

\renewbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{cite:label}%
        \setunit{\printdelim{nonameyeardelim}}}
      {\toggletrue{abx@bool@giveninits}%
        \printnames[family-given]{labelname}%
        \setunit{\printdelim{nameyeardelim}}}%
      \printfield{usera}%
      \setunit{\printdelim{titleyeardelim}}%
     \usebibmacro{cite:labeldate+extradate}}
   {\usebibmacro{cite:shorthand}}}

\begin{filecontents}[force]{\jobname.bib}
@book{appleby,
  author  = {Humphrey Appleby},
  title   = {On the Importance of the Civil Service},
  date    = {1980},
}
@online{example-1,
  usera   = {Example One},
  title   = {Example One},
  author  = {Good Author},
  date    = {2018-12-20},
  urldate = {2019-01-02},
  urltime = {23:30},
  url     = {https://cran.r-project.org/doc/manuals/r-release/fullrefman.pdf},
}
@online{example-2,
  usera   = {Example Two},
  title   = {Example Two},
  author  = {Good Author},
  date    = {2018-12-20},
  urldate = {2019-01-02},
  urltime = {23:30},
  url     = {https://cran.r-project.org/doc/manuals/r-release/fullrefman.pdf},
}
@online{example-3,
  usera   = {Example Two},
  title   = {Example Two},
  author  = {Good Author},
  date    = {2018-12-20},
  urldate = {2019-01-02T23:30:00},
  url     = {https://cran.r-project.org/doc/manuals/r-release/fullrefman.pdf},
}
\end{filecontents}
\addbibresource{\jobname.bib}


\begin{document}
Lorem\footcite[][]{example-1}
ipsum\footcite[][]{example-2,example-3}

\printbibliography
\end{document}

生产

作者,G.,示例一,2018。//作者,G.,示例二,2018a;作者,G.,示例二,2018b。

请注意,第二个脚注仅包含消歧义字母,因为作者usera和年份相同。

答案2

您可以使用新命令个性化引文以简化您的任务:

假设您刚刚设置了 bibLaTeX,并且作者姓名、标题和年份由单个连字符分隔:

\newcommand{\citeG}[1]{\citeauthor{#1}-\citetitle{#1}-\citeyear{#1}}

现在,您可以使用此命令后根据您想要的标准使用 \citeG{bibkey} 来引用该文档。

正如 Ulrike Fischer 所说,缺乏 MWE(最小工作示例)使得更有效的响应变得不可能。

相关内容