biblatex 可以直接解析名称字符串,而不是从文件加载吗?

biblatex 可以直接解析名称字符串,而不是从文件加载吗?

我接手了一个大型、高度定制的项目,用于为学术会议构建手册。在众多宏中,有以下宏:

\DeclareCiteCommand{\citefullauthornames}{%
  \boolfalse{citetracker}%
  \boolfalse{pagetracker}%
  \usebibmacro{prenote}%
}{\indexnames{labelname}%
  \printnames[fullauthornames]{labelname}%
}{\multicitedelim}{\usebibmacro{postnote}}

其中“fullauthornames”是一种名称格式,其功能正如您所期望的那样。然后,此代码被调用为\citefullauthornames{bibtex-identifier}bibtex-identifier其中映射到项目中先前加载的 bibtex 文件中的条目,大概是提取“Author”字段并解析名称。

我的问题是,是否可以让 biblatex 直接解析名称字符串,以便我可以写出如下所示的内容?

\citefullauthornames{Newton, John and Curie, Marie and Einsten, Albert and Feynman, Richard}

我花了一些时间阅读 biblatex 文档,但有点不知所措。

(至于为什么我要这样做,有时候我只想解析一串名称,正确打印并添加到索引中,而不需要 bibtex 文件中的任何其他信息)。

答案1

本质上,这是不可能的,因为biblatex根本不解析作者字符串。相反,biber或者bibtex进行解析。

biblatex不读取您的.bib文件。它写入.bcf文件并读取.bbl文件。外部程序 -biberbibtex- 解析.bcf.bib文件并生成文件.bblbiblatex甚至不读取.bib文件。它对文档中提供的有关书目资源的信息所做的是将以下内容放入.bcf

<bcf:datasource type="file" datatype="bibtex">x.bib</bcf:datasource>

biberbibtex使用此信息以及中的其他信息.bcf来创建.bbl文件。

因此,要使用解析功能,您必须使用提供这些功能的程序(即biber或 )bibtex,这意味着以程序可以理解的格式提供相关信息。不幸的是,您的.tex文件可能会导致这两个程序中的任何一个严重消化不良。

因此最好的选择几乎肯定是“虚拟”.bib条目,因为你建议。您可以单独创建这些,也可以在编译主.tex文件时自动写出它们,如下所示Ulrike Fischer 建议

相关内容