web-dev-qa-db-fra.com

Nombre de mots correct d'un document LaTeX

Je suis actuellement à la recherche d'une application ou d'un script qui effectue un décompte correct mot pour un document LaTeX.

Jusqu'à présent, je n'ai rencontré que des scripts ne fonctionnant que sur un seul fichier, mais ce que je veux, c'est un script qui peut ignorer en toute sécurité les mots-clés LaTeX et parcourir les fichiers liés ... c'est-à-dire suivre les liens \include et \input pour produire un nombre de mots correct pour le document entier.

Avec vim, j'utilise actuellement ggVGg CTRL+G, mais cela indique évidemment le nombre de fichiers pour le fichier actuel et n'ignore pas les mots-clés LaTeX.

Est-ce que quelqu'un connaît un script (ou une application) capable de faire ce travail?

64
Andreas Grech

J'utilise texcount. La page Web a un script Perl à télécharger (et un manuel).

Il inclura les fichiers tex inclus (\input ou \include) dans le document (voir -inc), prenant en charge les macros et offrant de nombreuses autres fonctionnalités Nice.

En suivant les fichiers inclus, vous obtiendrez des détails sur chaque fichier séparé ainsi qu'un total. Par exemple, voici le résultat total pour un de mes documents de 12 pages:

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

Si vous ne vous intéressez qu'au total, utilisez l'argument -total.

67
Geoff

J'y suis allé avec le commentaire icio et ai fait un décompte de mots sur le pdf lui-même en piping la sortie de pdftotext à wc:

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

devrait vous donner un nombre de mots assez précis.

7
aioobe

Dans l'interface Texmaker, vous pouvez obtenir le nombre de mots en cliquant avec le bouton droit de la souris sur l'aperçu PDF:

 enter image description here

 enter image description here

4
Franck Dernoncourt

Pour ajouter à @aioobe, 

Si vous utilisez pdflatex, faites juste 

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

J'ai comparé ce nombre à celui de Microsoft Word dans un document Word de 1599 (selon Word). pdftotext a produit un texte de plus de 1700 mots. texcount n'inclut pas les références et produit 1088 mots. ps2ascii a renvoyé 1603 mots. 4 de plus que dans Word.

Je dis que c'est un très bon compte. Je ne sais pas cependant où est la différence de 4 mots. :)

3
fiacobelli

J'utilise le script VIM suivant:

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

… Mais il ne suit pas les liens. Cela impliquerait essentiellement analyse le fichier TeX pour obtenir tous les fichiers liés, n’est-ce pas?

L’avantage par rapport aux autres réponses est qu’il n’est pas nécessaire de générer un fichier de sortie (PDF ou PS) pour calculer le nombre de mots; il est donc potentiellement (selon l’utilisation) beaucoup plus efficace.

Bien que le commentaire d’icio soit théoriquement correct, j’ai trouvé que la méthode ci-dessus donnait une estimation assez précise du nombre de mots. Pour la plupart des textes, cela correspond bien à la marge de 5% utilisée dans de nombreuses tâches.

1
Konrad Rudolph

Pour un document de classe d'article très basique, je regarde simplement le nombre de correspondances pour une expression régulière afin de trouver des mots. J'utilise Sublime Text, cette méthode peut donc ne pas fonctionner dans un éditeur différent, mais je clique simplement sur Ctrl+F (Command+F sur Mac), puis, avec l'expression rationnelle activée, recherchez

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

qui doit ignorer le texte déclarant un environnement flottant ou des légendes sur les figures ainsi que la plupart des types d'équations de base et de déclarations \usepackage, tout en incluant les citations et les parenthèses Il compte également les notes de bas de page et le texte \emphasized et comptera les liens \hyperref dans un seul mot. Ce n'est pas parfait, mais il est généralement précis à quelques dizaines de mots environ. Vous pouvez l’affiner pour qu’il fonctionne pour vous, mais un script est probablement une meilleure solution car le code source de LaTeX n’est pas un langage courant. Je pensais juste que je lancerais ça ici.

0
ocket8888

Le verso a une fonctionnalité de comptage de mots:

Overleaf v2:

 enter image description here

 enter image description here

Feuille v1:

 enter image description here

 enter image description here

0
Franck Dernoncourt