我可以配置 texcount 来在某些强制参数中对文本进行双重计数吗?

我可以配置 texcount 来在某些强制参数中对文本进行双重计数吗?

是否可以配置texcount重复计数某些宏的非可选参数的内容?

请考虑以下示例:

\documentclass{article}
\begin{document}
\autocite[e.g.][4]{key-1,key-2}
\autocites[e.g.][5]{key-1,key-2}[and][89]{key-3}
\end{document}

当然,这不会编译,但它可以作为一个最小示例,texcount并不关心它是否编译。

我的texcount.cfg包括以下规则:

%TC:macro \autocite [1]
%TC:macro \autocites [1,1]

运行上述最小文档将texcount产生包含以下内容的输出:

\documentclass{article} [0]
\begin{document} [0]
\autocite[e.g.][4]{key-1,key-2} [2]
\autocites[e.g.][5]{key-1,key-2}[and][89]{key-3} [5]
\end{document} [5]

Total
Sum count: 5
Words in text: 5
Words in headers: 0
Words outside text (captions, etc.): 0
Number of headers: 0
Number of floats/tables/figures: 0
Number of math inlines: 0
Number of math displayed: 0
Files: 2

就我的目的而言,这比默认的完全不计算我的引用数有了很大的改进。尽管如此,它仍然低估了数量。准确的计数应该是(大约)16 个单词,而不是 5 个,其中包括对每个键进行双重计数后的 10 个单词:

  • 每次使用都会<key>产生一个作者年份标签,共有 5 个,总共 10 个单词

我意识到它不可能texcount知道我使用的是作者年份标签。但我可以告诉它在非可选参数中对每个单词进行双重计数吗?

答案1

答案部分是否定的,部分是肯定的。

您无法指定某个宏中的单词应被计算两次。但是,您可以通过将该-sum=...选项与特定(或新)计数器一起使用来实现大致相同的效果。

您可以-sum=...在命令行上使用选项(但不能作为%TC文档中的指令)来提供总计数。这会将不同的计数器加在一起以提供总计数,并且可以指定包含哪些计数器(权重 1)或排除哪些计数器(权重 0),例如,-sum=1,0,1这将包括文本中的单词(第一个计数器)和其他地方(如标题)(第三个计数器),但不包括在标题中(第二个计数器)。但是,权重可以是任何整数,因此-sum=1,1,2将计算所有单词,但其他地方的单词会被计算两次。

接下来,您可以定义一个新的计数器,用于双重计数的特定目的。其形式如下%TC:newcounter name Description。例如

%TC:newcounter double Double count
%TC:macro \autocite [option:text,option:ignore,double]
\autocite[e.g.][4]{key-1,key-2}

这不会重复计算double单词,但会分别计算。

最初有 7 个计数器,因此double计数器将为 8,因此要计算所有double重复计数的单词,您可以使用选项运行 TeXcount 。但是,为了让 TeXcount 接受超过 7 个权重,您必须将(最新版本的第 1012 行)中的-sum=1,1,1,0,0,0,0,2行从sub option_sum

 } elsif ($arg=~/^(\d+(\.\d*)?(,\d+(\.\d*)?){0,6})$/) {

 } elsif ($arg=~/^(\d+(\.\d*)?(,\d+(\.\d*)?)*)$/) {

在这种情况下,您必须确保添加的权重不要超过计数器的数量,否则 TeXcount 可能会失败。

相关内容