我最近从 BibTeX 切换到该biblatex
软件包(使用 Biber 后端),我只能同意其他人对其众多优点的评价。这个问题与其说是关于biblatex
它本身,不如说是关于它与 TeXcount 脚本工具的交互,用于对基于 TeX 的文档进行字数统计。如何调整后者脚本的设置以使其能够工作biblatex
(即,使 TeXcount 能够像处理 BibTeX 一样继续工作)?
答案1
这是一个棘手的话题,因为对于纯bibtex
,您看到的 .bbl 就是文档中包含的内容。对于biblatex
, .bbl 本质上是一个数据库,其中的所有内容不一定都会出现在文档中。这取决于样式biblatex
以及它选择使用的字段。通常,biblatex
.bbl 的字数会高估您想要的文档数量。即使biber
通过为您计算 .bbl 字数(目前还不能)使此操作变得更容易,它也几乎总是高估,因为无法从 .bbl 中知道样式中的字段发生了什么。
经过进一步思考,我认为实际上不可能biblatex
以任何体面的方式对参考书目进行字数统计。问题是,有许多biblatex
选项(如 minnames、uniquename、uniquelist、useprefix 等)会减少/增加编译时从 .bbl 中使用的“字数”。这意味着您永远无法通过查看 .bbl 来真正获得参考书目或引文的准确字数统计。您必须考虑样式、选项biblatex
、复制/删除/更改 .bbl 数据的任何用户代码。此外,甚至很难biber
“计算”相关条目(可能在输出中使用数据,也可能没有)、基于继承规则的数据(CROSSREF 和 XDATA)、XREF(完全不可能,因为它都是biblatex
在编译时以任意代码完成的)、集合的“仅数据”条目等。基本上,您最多只能得到一个近似值。
使用或其他方式计算完成的 PDF 可能更可靠pdftotext | wc
。这可能存在数学问题,但可能比尝试计算biblatex
.bbls 更好,特别是如果您使用biber
相关条目、XDATA 等任何功能。
答案2
通过查阅 TeXcount 的文档,我提出了以下解决方法。请注意,它远非完美:
- 由于 TeXcount 的解析方式,它会抛出很多(非关键)错误
\verb
- 它会不精确(计算一些不是单词的东西,不计算其他的东西......我认为这是可以接受的,因为存在同样的问题
bibtex
)
因此,您需要添加 TeXcount 规则。以下规则采用“文档”格式,因为您会将它们包含在要解析的文档中,但您可以轻松地将它们转换为全局 TeXcount 规则。
首先要让它用 来解析文件filename.bbl
。-incbib
我们很幸运, 它biber
使用了与 相同的.bbl
扩展名bibtex
,所以我们所要做的就是让 TeXcount 相信我们正在使用参考书目:
%TC:subst \printbibliography \bibliography
现在,为了计数,我们必须为 biblatex 的宏添加规则。它们或多或少是近似的,尤其是\name
将为内部哈希值计算一个单词的规则,但我看不到任何简单的解决方法。无论如何,如前所述,鉴于参考书目中总体计数的不准确性,我认为这又一个错误是可以接受的。
%TC:macro \field [0,1]
%TC:macro \name [0,0,0,1]
%TC:macro \list [0,0,1]
这可能会遗漏一些宏,但添加更多宏并不困难:只需查看文件.bbl
以了解宏参数中预期的内容,然后选择要计算单词的参数(0:不计算,1:计算)。