正确的LaTeX文档的字数

时间:2010-06-04 14:20:21

标签: latex word-count

我目前正在搜索为LaTeX文档执行正确字数的应用程序或脚本。

到目前为止,我只遇到过只能处理单个文件的脚本,但我想要的是一个可以安全地忽略LaTeX关键字的脚本,还有遍历链接文件 ...即遵循{ {1}}和\include链接可为整个文档生成正确的字数。

使用vim,我目前使用\input,但显然显示当前文件的计数,并且不会忽略LaTeX关键字。

有没有人知道任何可以完成这项工作的脚本(或应用程序)?

9 个答案:

答案 0 :(得分:68)

我使用texcountwebpage有一个要下载的Perl脚本(和手册)。

它将包含文档中包含的tex文件(\input\include)(请参阅-inc),支持宏,还有许多其他不错的功能。

当关注包含的文件时,您将获得有关每个单独文件以及总计的详细信息。例如,这是我的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参数。

答案 1 :(得分:12)

我选择了icio的评论并通过将pdftotext的输出汇总到wc来对pdf本身进行了一次重复计算:

pdftotext file.pdf - | wc - w 

答案 2 :(得分:7)

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

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

答案 3 :(得分:4)

添加到@aioobe,

如果您使用pdflatex,请执行

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

我将此计数与1599字文档中的Microsoft Word中的计数进行了比较(根据Word)。 pdftotext制作了一个包含1700多个单词的文本。 texcount未包含引用并生成1088个单词。 ps2ascii返回了1603个单词。比Word更多4个。

我说这是一个非常好的计数。不过,我不确定4个字的区别在哪里。 :)

答案 4 :(得分:4)

在Texmaker界面中,您可以通过右键单击PDF预览来获取字数:

enter image description here

enter image description here

答案 5 :(得分:1)

我使用以下VIM脚本:

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

...但它没有关注链接。这基本上需要解析 TeX文件以获取所有链接文件,不是吗?

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

尽管icio的评论在理论上是正确的,但我发现上述方法可以非常准确地估算出单词的数量。对于大多数文本来说,它完全在许多作业中使用的5%边距内。

答案 6 :(得分:0)

对于一个非常基本的文章类文档,我只看一下正则表达式找到单词的匹配数。我使用Sublime Text,因此这个方法可能不适用于其他编辑器,但我只是点击Ctrl+F(Mac上的Command+F),然后启用正则表达式搜索

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

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

答案 7 :(得分:0)

背面有字数统计功能:

背面v2:

enter image description here

enter image description here

背面v1:

enter image description here

enter image description here

答案 8 :(得分:0)

如果适合您使用vim插件,则vimtex插件已经很好地集成了texcount工具。

以下是他们文档的摘录:

:VimtexCountLetters       Shows the number of letters/characters or words in
:VimtexCountWords         the current project or in the selected region. The
                          count is created with `texcount` through a call on
                          the main project file similar to: >

                            texcount -nosub -sum [-letter] -merge -q -1 FILE
<
                          Note: Default arguments may be controlled with
                                |g:vimtex_texcount_custom_arg|.

                          Note: One may access the information through the
                                function `vimtex#misc#wordcount(opts)`, where
                                `opts` is a dictionary with the following
                                keys (defaults indicated): >

                                'range' : [1, line('$')]
                                'count_letters' : 0/1
                                'detailed' : 0
<
                                If `detailed` is 0, then it only returns the
                                total count. This makes it possible to use for
                                e.g. statusline functions. If the `opts` dict
                                is not passed, then the defaults are assumed.

                                             *VimtexCountLetters!*
                                             *VimtexCountWords!*
:VimtexCountLetters!      Similar to |VimtexCountLetters|/|VimtexCountWords|, but
:VimtexCountWords!        show separate reports for included files.  I.e.
                          presents the result of: >

                            texcount -nosub -sum [-letter] -inc FILE
<
                                             *VimtexImapsList*
                                             *<plug>(vimtex-imaps-list)*

这方面的好处是它的可扩展性。除了计算当前文件中的单词数之外,您还可以进行视觉选择(比如说两个或三个段落),然后仅将命令应用于您的选择。