75

私は現在、LaTeXドキュメントに対して正しい単語数をカウントするアプリケーションまたはスクリプトを探しています。

これまで、単一のファイルでのみ機能するスクリプトに遭遇したことがありますが、必要なのは、LaTeXキーワードを安全に無視し、リンクされたファイルをトラバースできるスクリプトです。ドキュメント全体。\include\input

vimで、私は現在使用していますggVGg CTRL+Gが、明らかにそれは現在のファイルのカウントを示し、LaTeXキーワードを無視しません。

この仕事をすることができるスクリプト(またはアプリケーション)を知っている人はいますか?

4

9 に答える 9

75

私は使用しますtexcountWebページには、ダウンロードする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引数を使用してください。

于 2010-06-07T13:16:01.303 に答える
13

私はicioのコメントを参考にして、出力を次のようにパイプすることにより、pdf自体の単語数をカウントしましpdftotextwc

pdftotext file.pdf - | wc - w 
于 2010-06-04T14:47:57.897 に答える
7
latex file.tex
dvips -o - file.dvi | ps2ascii | wc -w

かなり正確な単語数が得られるはずです。

于 2010-06-04T14:28:02.537 に答える
5

@aioobeに追加するには、

pdflatexを使用する場合は、

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

このカウントを、1599ワードのドキュメント(Wordによる)のMicrosoftWordのカウントと比較しました。pdftotext1700以上の単語でテキストを作成しました。texcount参照を含まず、1088語を生成しました。ps2ascii1603ワードを返しました。Wordより4多い。

私はそれがかなり良い数だと言います。しかし、4語の違いはどこにあるのかわかりません。:)

于 2014-02-15T05:36:25.070 に答える
5

Texmakerインターフェースでは、PDFプレビューを右クリックして単語数を取得できます。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

于 2016-04-18T17:37:48.643 に答える
3

Overleafには単語カウント機能があります。

Overleaf v2:

ここに画像の説明を入力してください

ここに画像の説明を入力してください

Overleaf v1:

ここに画像の説明を入力してください

ここに画像の説明を入力してください

于 2019-01-05T04:36:47.083 に答える
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%のマージン内に十分収まっています。

于 2010-06-04T14:50:29.173 に答える
0

非常に基本的な冠詞クラスのドキュメントの場合、正規表現の一致数を調べて単語を見つけます。私はSublimeTextを使用しているので、この方法は別のエディターでは機能しない可能性がありますが、Ctrl+FCommand+FMacの場合)を押してから、正規表現を有効にして、

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

\usepackageこれは、引用や括弧を含めながら、フローティング環境を宣言するテキストや図のキャプション、およびほとんどの種類の基本的な方程式や宣言を無視する必要があります。また、脚注と\emphサイズ変更されたテキストをカウント\hyperrefし、リンクを1つの単語としてカウントします。完璧ではありませんが、通常は数十語程度の精度です。うまくいくように改良することもできますが、LaTeXソースコードは正規言語ではないため、スクリプトの方がおそらく優れたソリューションです。これをここに投げると思っただけです。

于 2017-11-17T20:06:49.583 に答える
0

vimプラグインの使用が適切な場合、vimtextexcountプラグインはツールを非常にうまく統合しています。

これが彼らのドキュメントからの抜粋です:

: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)*

これについての良い部分は、それがどれほど拡張可能であるかです。現在のファイル内の単語数を数えることに加えて、視覚的な選択(たとえば、2つまたは3つの段落)を行ってから、コマンドを選択にのみ適用することができます。

于 2020-02-17T02:41:52.997 に答える