正确的LaTeX文件的字数

我目前正在寻找一个应用程序或脚本,为LaTeX文档做一个正确的字数。

到目前为止,我只遇到只能在单个文件上工作的脚本,但是我想要的是一个脚本,它可以安全地忽略LaTeX关键字,也可以遍历链接的文件 …即按照\include\input链接生成正确的单词- 整个文档的计数。

对于vim,我目前使用ggVGg CTRL+G但很明显,它显示了当前文件的计数,并且不会忽略LaTeX关键字。

有谁知道任何脚本(或应用程序)可以做这份工作?

我使用texcount 。 该网页有一个Perl脚本下载(和手册)。

它将包括tex文件( \input\include )在文档中(参见-inc ),支持macros,并且还有很多其他很好的function。

当下面包含的文件,你会得到每个单独的文件以及总数的细节。 例如,这里是我的12页文档的总输出:

 TOTAL COUNT Files: 20 Words in text: 4188 Words in headers: 26 Words in float captions: 404 Number of headers: 12 Number of floats: 7 Number of math inlines: 85 Number of math displayed: 19 

如果您只对总数感兴趣,请使用-total参数。

我去了icio的评论,并通过pipe道pdftotext的输出到wc来对pdf本身进行统计:

 pdftotext file.pdf - | wc - w 
 latex file.tex dvips -o - file.dvi | ps2ascii | wc -w 

应该给你一个相当准确的字数。

要添加到@aioobe,

如果你使用pdflatex,就这样做

 pdftops file.pdf ps2ascii file.ps|wc -w 

我把这个数字与1599字文档中的Microsoft Word中的数字相比较(根据Word)。 pdftotext产生了1700+的文字。 texcount不包括参考资料,并产生了1088个单词。 ps2ascii返回1603字。 比Word中多了4个。

我说这是一个相当不错的数字。 不过,我不确定4个字的区别在哪里。 🙂

在Texmaker界面中,您可以通过在PDF预览中右击来获得单词数量:

在这里输入图像说明

在这里输入图像说明

我使用下面的VIM脚本:

 function! WC() let filename = expand("%") let cmd = "detex " . filename . " | wc -w | perl -pe 'chomp; s/ +//;'" let result = system(cmd) echo result . " words" endfunction 

…但它不遵循链接。 这基本上需要parsing TeX文件来获取所有链接的文件,不是吗?

与其他答案相比,其优势在于不必生成输出文件(PDF或PS)来计算字数,因此可能(取决于使用情况)更有效。

尽pipeicio的评论在理论上是正确的,但是我发现上面的方法给出了相当准确的词数估计。 对于大多数文本来说,这在很多作业中使用的5%的范围内。

对于一个非常基本的文章类文档,我只是看一下正则expression式匹配的数量来find单词。 我使用Sublime Text,所以这种方法可能不适合你在不同的编辑器,但我只是Ctrl+F (在Mac上Command+F ),然后,与正则expression式启用,search

 (^|\s+|"|((h|f|te){)|\()\w+ 

它应该忽略声明浮动环境的文本或graphics上的标题以及大多数基本方程和\usepackage声明,同时包括引号和括号。 它还计算脚注和\emph分类文本,并将\hyperref hyperref链接统计为一个单词。 这不是完美的,但通常在几十个字左右是准确的。 你可以改进它为你工作,但一个脚本可能是一个更好的解决scheme,因为LaTeX源代码不是一个正规的语言。 只是以为我会把这个扔在这里。

Interesting Posts