多位作者的参考文献既单独撰写,又一起撰写,且作者姓名仅写一次?

多位作者的参考文献既单独撰写,又一起撰写,且作者姓名仅写一次?

条目类型@xdataxdata字段非常好,因为它们可以帮助我们尽可能地降低冗余度,例如在下面的 MCE 中,作者姓名很长且容易出错:

  • 夏尔-让·艾蒂安·古斯塔夫·尼古拉斯·德·拉瓦莱·普桑
  • 克努斯,唐纳德·埃尔文

虽然在多个参考文献中使用,但只写入一次(相应的作者字段保存在@xdataspoussin和 中knuth)。

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{biblatex}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@xdata{poussin,
  author = {de La Vallée Poussin, Charles-Jean Étienne Gustave Nicolas},
}
@xdata{knuth,
  author = {Knuth, Donald Ervin},
}

@article{poussin1896a,
  xdata   = {poussin},
  title   = {Recherches analytiques de la théorie des nombres premiers},
  journal = {Annales de la Société scientifique de Bruxelles},
  year    = {1896},
  number  = {20},
  pages   = {183-256, 281-352, 363-397}
}
@article{poussin1896b,
  xdata   = {poussin},
  title   = {Recherches analytiques de la théorie des nombres premiers},
  journal = {Annales de la Société scientifique de Bruxelles},
  year    = {1896},
  number  = {21},
  pages   = {351-368}
}

@book{knuth1984,
  xdata    = {knuth},
  title    = {The TeXbook},
  date     = {1984-01-14},
 publisher = {Addison-Wesley},
}
@book{knuth1986,
  xdata    = {knuth},
  title    = {TeX: The Program},
  date     = {1986-01-11},
 publisher = {Addison-Wesley},
}

\end{filecontents*}

\addbibresource{\jobname.bib}
\nocite{*}

\begin{document}
\printbibliography
\end{document}

到目前为止,一切都很好。

现在,假设同一篇文档包含这两位作者撰写的另一篇参考文献。虽然@xdata支持级联条目,但添加@xdata引用条目poussinknuth@xdata条目poussinknuth不会按预期工作:仅考虑最后一位作者:

@xdata{poussinknuth,
  xdata = {poussin,knuth},
}
@article{poussinknuth2019,
  xdata    = {poussinknuth},
  title    = {Recherches analytiques de la théorie des nombres premiers, composé avec \TeX},
  journal  = {TUGboat},
  year     = {2019},
  number   = {40},
  pubstate = {inpreparation}
}

好吧,这并不奇怪,因为:

@xdata{poussinknuth,
  xdata = {poussin,knuth},
}

可能会做类似的事情:

@xdata{poussinknuth,
  xdata = {author = {de La Vallée Poussin, Charles-Jean Étienne Gustave Nicolas},author = {Knuth, Donald Ervin}}
}

因此我的问题是: 是否有可能在biblatex.bib 文件中引用以下内容:

  • 夏尔-让·艾蒂安·古斯塔夫·尼古拉斯·德·拉瓦莱·普桑
  • 克努斯,唐纳德·埃尔文

既单独写一次,又一起写一次这些作者的名字?

答案1

我猜这里的经典方法(也适用于 BibTeX)是使用@strings。多个@strings 可以用 连接起来#,所以你可以说

author = poussin # { and } # knuth,

你的例子看起来就像

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{biblatex}
\usepackage{filecontents}

\begin{filecontents*}{\jobname.bib}
@string{poussin = {de La Vallée Poussin, Charles-Jean Étienne Gustave Nicolas}}
@string{knuth = {Knuth, Donald Ervin}}

@article{poussin1896a,
  author  = poussin,
  title   = {Recherches analytiques de la théorie des nombres premiers},
  journal = {Annales de la Société scientifique de Bruxelles},
  year    = {1896},
  number  = {20},
  pages   = {183-256, 281-352, 363-397}
}
@article{poussin1896b,
  author  = poussin,
  title   = {Recherches analytiques de la théorie des nombres premiers},
  journal = {Annales de la Société scientifique de Bruxelles},
  year    = {1896},
  number  = {21},
  pages   = {351-368}
}
@book{knuth1984,
  author   = knuth,
  title    = {The TeXbook},
  date     = {1984-01-14},
 publisher = {Addison-Wesley},
}
@book{knuth1986,
  author   = knuth,
  title    = {TeX: The Program},
  date     = {1986-01-11},
 publisher = {Addison-Wesley},
}
@article{poussinknuth2019,
  author   = poussin # { and } # knuth,
  title    = {Recherches analytiques de la théorie des nombres premiers, composé avec \TeX},
  journal  = {TUGboat},
  year     = {2019},
  number   = {40},
  pubstate = {inpreparation}
}
\end{filecontents*}

\addbibresource{\jobname.bib}
\nocite{*}

\begin{document}
\printbibliography
\end{document}

唐纳德·埃尔文·克努斯。 TeX:该程序。 Addison-Wesley,1986 年 1 月 11 日。//Donald Ervin Knuth。 TeXbook。 Addison-Wesley,1984 年 1 月 14 日。//Charles-Jean Étienne Gustave Nicolas de La Vallée Poussin。 “主要名称理论的分析研究”。出处:《布鲁塞尔科学学会年鉴》20(1896 年),第 183-256、281-352、63-397 页。//Charles-Jean Étienne Gustave Nicolas de La Vallée Poussin。 “主要名称理论的分析研究”。出处:《布鲁塞尔科学学会年鉴》第 21 卷(1896 年),第 351-368 页。//Charles-Jean Étienne Gustave Nicolas de La Vallée Poussin 和 Donald Ervin Knuth。 “主要名称理论的分析研究,使用 TeX 编写”。出处:TUGboat 40(2019 年)。在准备。

xdata当你想要连接xdata同一字段的信息时,你确实遇到了麻烦。我想解决

@xdata{poussinknuth,
  xdata = {poussin,knuth},
}

除非 Biber 开始将同一字段的多个出现情况连接成一个(以正确的方式!)而不是丢弃先前的出现情况,否则这是非常不平凡的。

相关内容