自动检索第一个 BibLatex/BibTex/Biber 参考文献

自动检索第一个 BibLatex/BibTex/Biber 参考文献

假设我有一个 .Bib 文件,其中有如下条目:

@InBook{lear,
author = {Shakespeare, William},
bookauthor = {Shakespeare, William},
maintitle = {Collected Works},
booktitle = {Tragedies},
title = {King Lear},
volume = {1},
pages = {53-159},
...

重要的是:它可以是任何其他参考,因为我将处理不同的 Bib 文件,每个文件只有一个参考 - 它们将由另一个程序自动生成。

我在 Overvleaf 平台内使用 Biblatex。

我的问题是: 是否有可能检索入口字段(在上面的例子中是字符串李尔)并将其作为参数传递?

例子:

\def\mystring{{*var_entrykey*}}

在哪里变量入口键内容必须李尔(参考上面的例子)或者根据我将使用的 bib 文件的其他条目(记住所有 Bib 文件都只有一个引用)。

问题是我不知道如何阅读输入键 自动,即通常我们需要知道输入键引用它,这是正常用法,很明显。但在这种情况下,我需要一个 hack 来检索它 - 并将其放入变量中 - 而事先不知道它的内容。

温暖的问候

答案1

以下内容仅在您引用文档中的一个条目时才可靠。否则,无法知道您想要谁的条目键。这可以通过使用 或 仅引用一个条目来确保\cite\nocite在这种情况下您必须知道条目键,因此这里的整个操作将毫无意义,或者通过确保您的.bib文件仅包含一个条目来确保。

我们可以使用\AtDataInput来挂接从文件中读取条目的代码.bbl。此时,我们可以将当前正在处理的条目的条目键保存在变量中。如果我们知道文档中只有一个条目,这将为我们提供所需的条目键。(如果参考书目中有多个条目,这些调用将相互覆盖,最终我们将在变量中得到最后一个条目键。只需一点点工作,我们就可以只获得第一个条目键。也可以使用其他技巧来确定要采用哪个键,但我们必须有办法挑出一个条目。)

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[backend=biber, style=authoryear]{biblatex}

\newcommand*{\theoneentrykey}{}

\AtDataInput{%
  \xdef\theoneentrykey{\strfield{entrykey}}}

\begin{filecontents}{\jobname.bib}
@InBook{lear,
  author     = {Shakespeare, William},
  bookauthor = {Shakespeare, William},
  maintitle  = {Collected Works},
  booktitle  = {Tragedies},
  title      = {King Lear},
  volume     = {1},
  pages      = {53-159},
}
\end{filecontents}
\addbibresource{\jobname.bib}

\begin{document}
\nocite{*}

Entry key \theoneentrykey

\texttt{\meaning\theoneentrykey}

\printbibliography
\end{document}

输入键 lear//macro:->lear

相关内容