正确的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源代码不是一个正规的语言。 只是以为我会把这个扔在这里。