引文样式‘作者’带有可选年份或索引部分,仅用于消除歧义

引文样式‘作者’带有可选年份或索引部分,仅用于消除歧义

使用authoryear.cbx引文格式—— \textcite“作者 (2012)”或\parencite“(作者 2012)”——如果同一作者在同一年有多个条目,通常会使用小写字母后缀:“作者 (2013b)”。否则,(必填)年份部分可消除同一作者的多个条目的歧义,并显示确实存在引文(附有参考书目条目)。页码等内容可以用冒号前缀附加到年份上:“作者 (2012:123)”/“(作者 2012:123)”。

如果引用了撰写了多篇与你的作品相关的文本的作者,这是一种非常有用的样式。但在某些情况下,参考书目几乎不包含多个作者条目,即年份变得多余。author那么简单的引用样式就足够了——“作者”或“(作者)”——尽管\textcite(也许\autocite)应该使用一些字体样式,例如小写字母或斜体“作者”,以强调名称应被视为引用,而不是随意出现的。

当然,仍然需要消除歧义。可以通过添加(可能缩短的)年份来实现 - “作者14“” / “作者'14” / “作者2014“” / “作者2014” / “作者(2014)”——或者按字母或数字索引:“作者A“” / “作者“” / “作者(一)“” / “作者A ” // ”作者1“” / “作者1” / “作者1 ”。我倾向于使用不会被误认为是脚注标记的上标字母。

有没有author.cbx我忽略的可以实现这一点的方法?

您会从其他东西中衍生出这种风格authoryear.cbx吗?需要哪些额外的代码?

\documentclass{scrartcl}
\usepackage[style=authoryear]{biblatex}
\begin{filecontents}{\jobname.bib}
@book{foo12, Author={A. Uthor}, Title={Some Title}, Year={2012}, Publisher={Standard Press}, Address={Global}}
@book{foo13a, Author={A. Uthor}, Title={Another Title}, Year={2013}, Publisher={Standard Press}, Address={Global}}
@book{foo13b, Author={A. Uthor}, Title={Boring Title}, Year={2013}, Publisher={Standard Press}, Address={Global}}
@book{foos10, Author={A. Uthor and A. Uteur}, Title={International Title}, Year={2010}, Publisher={Standard Press}, Address={Global}}
@book{foos11, Author={A. Uthor and C. Utor}, Title={Collaboration Title}, Year={2011}, Publisher={Standard Press}, Address={Global}}
@book{foos12, Author={A. Uteur and B. Uteur}, Title={Foreign Title}, Year={2012}, Publisher={Standard Press}, Address={Global}}
@book{bar14, Author={B. Uteur}, Title={Interesting Title}, Year={2014}, Publisher={Standard Press}, Address={Global}}
@book{baz14, Author={A. Uteur}, Title={New Title}, Year={2014}, Publisher={Standard Press}, Address={Global}}
\end{filecontents}
\addbibresource{\jobname.bib}
\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}} % smallcaps for last names
\begin{document}
Let’s cite some book \autocite{foo12} or a particular page therein \autocite[123]{foo12}.

Its author also published two works during the following year \autocite{foo13a,foo13b}.

Our friend did two collaborations \autocite{foos10,foos11},
but others worked together as well \autocite{foos12}.

Those two authors with same last name are also cited individually \autocite{bar14,baz14}.
\printbibliography
\end{document}

附言:我不喜欢作者-年份引用格式与参考书目格式相结合,即作者排在最前面,年份排在最后(几乎)。我也不喜欢前后不一致的姓名列表,如“Uthor, A. and A. Uteur”,但那是另一回事。

答案1

我之前在评论中写道,没有办法biblatex判断一个作者(更好labelname:)写了一部还是多部作品,这似乎是错的。甚至有一个测试可以测试这一点:\ifsingletitle参见第 174 页biblatex文档):

如果参考书目中<true>只有一部同名的作品,则扩展为 ,否则扩展为 。如果条目根本没有 名称,则如果参考书目中只有一部同名的作品,则扩展为 ,否则扩展为 。如果条目既未设置也未设置 ,则将始终扩展为。请注意,此功能需要使用包选项 明确启用。labelname<false>labelname<true>labeltitle<false>labelnamelabeltitle<false>singletitle

authoryear对的宏进行很小的修改cite

\newbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{cite:label}%
        \setunit{\addspace}}
       {\printnames{labelname}%
        \setunit{\nameyeardelim}}%
     \ifsingletitle% this is new
       {}% do not print year if only work by labelname
       {\usebibmacro{cite:labelyear+extrayear}}}% print year to disambiguate
    {\usebibmacro{cite:shorthand}}}

如果特定作者只有一部作品,则返回“名称”,如果有多个作品,则返回“名称年份[+额外年份]”。

可能有办法实现“作者 1”、“作者 2”等页,但我认为“作者年份”是最自然的(并且考虑到参考书目的格式最容易找到)。

平均能量损失

\documentclass{scrartcl}
\usepackage[style=authoryear,singletitle]{biblatex}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@book{foo12, Author={A. Uthor}, Title={Some Title}, Year={2012}, Publisher={Standard Press}, Address={Global}}
@book{foo13a, Author={A. Uthor}, Title={Another Title}, Year={2013}, Publisher={Standard Press}, Address={Global}}
@book{foo13b, Author={A. Uthor}, Title={Boring Title}, Year={2013}, Publisher={Standard Press}, Address={Global}}
@book{foos10, Author={A. Uthor and A. Uteur}, Title={International Title}, Year={2010}, Publisher={Standard Press}, Address={Global}}
@book{foos11, Author={A. Uthor and C. Utor}, Title={Collaboration Title}, Year={2011}, Publisher={Standard Press}, Address={Global}}
@book{foos12, Author={A. Uteur and B. Uteur}, Title={Foreign Title}, Year={2012}, Publisher={Standard Press}, Address={Global}}
@book{bar14, Author={B. Uteur}, Title={Interesting Title}, Year={2014}, Publisher={Standard Press}, Address={Global}}
@book{baz14, Author={A. Uteur}, Title={New Title}, Year={2014}, Publisher={Standard Press}, Address={Global}}
\end{filecontents*}

\DeclareNameAlias{sortname}{last-first}

\addbibresource{\jobname.bib}
\renewcommand*{\mkbibnamelast}[1]{\textsc{#1}} % smallcaps for last names

\newbibmacro*{cite}{%
  \iffieldundef{shorthand}
    {\ifthenelse{\ifnameundef{labelname}\OR\iffieldundef{labelyear}}
       {\usebibmacro{cite:label}%
        \setunit{\addspace}}
       {\printnames{labelname}%
        \setunit{\nameyeardelim}}%
     \ifsingletitle
       {}%
       {\usebibmacro{cite:labelyear+extrayear}}}%
    {\usebibmacro{cite:shorthand}}}

\begin{document}
Let’s cite some book \autocite{foo12} or a particular page therein \autocite[123]{foo12}.

Its author also published two works during the following year \autocite{foo13a,foo13b}.

Our friend did two collaborations \autocite{foos10,foos11},
but others worked together as well \autocite{foos12}.

Those two authors with same last name are also cited individually \autocite{bar14,baz14}.
\printbibliography
\end{document}

示例输出:Uthor 2012、Uthor 2012、第 123 页;Uthor 2013a;Uthor 2013b;Uthor 和 A. Uteur、Uthor 和 Utor;A. Uteur 和 B. Uteur

相关内容