我接手了一个大型、高度定制的项目,用于为学术会议构建手册。在众多宏中,有以下宏:
\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
文件。外部程序 -biber
或bibtex
- 解析.bcf
和.bib
文件并生成文件.bbl
。biblatex
甚至不读取.bib
文件。它对文档中提供的有关书目资源的信息所做的是将以下内容放入.bcf
:
<bcf:datasource type="file" datatype="bibtex">x.bib</bcf:datasource>
biber
或bibtex
使用此信息以及中的其他信息.bcf
来创建.bbl
文件。
因此,要使用解析功能,您必须使用提供这些功能的程序(即biber
或 )bibtex
,这意味着以程序可以理解的格式提供相关信息。不幸的是,您的.tex
文件可能会导致这两个程序中的任何一个严重消化不良。
因此最好的选择几乎肯定是“虚拟”.bib
条目,因为你建议。您可以单独创建这些,也可以在编译主.tex
文件时自动写出它们,如下所示Ulrike Fischer 建议。