TeXcount 和 biblatex

TeXcount 和 biblatex

我最近从 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:计算)。

相关内容