Mac – Word count for LaTeX within emacs

emacslatexword count

I want to count how many words my LaTeX document has in it. I can do this by going to the website for the texcount package and using the web interface there. but that's not ideal.

I'd rather have some shortcut within emacs to just return number of words in a file (or ideally number of words in file and in all files called by \input or \include within the document). I have downloaded texcount script, but I don't know what to do with it. That is, I don't know where to put the .pl file, and how to call it within emacs.

That is: I want a keyboard shortcut for a shell command. And I want that shell command to run texcount on the current active buffer and return the total words in the minibuffer.

I'm using Ubuntu and emacs22, if that helps…

Best Answer

(defun latex-word-count ()
  (interactive)
  (shell-command (concat "/usr/local/bin/texcount.pl "
                         ; "uncomment then options go here "
                         (buffer-file-name))))

You may opt to put texcount.pl somewhere other than /usr/local/bin, just modify the code as appropriate if you do. This creates a new command "M-x latex-word-count", which will run texcount.pl on the current file (it will give the wrong result if you have not saved the file though). You can remove the semicolon and replace the filler text with any command line arguments you want to use, if any. You can bind this to a keyboard command with something like this in your .emacs:

(define-key latex-mode-map "\C-cw" 'latex-word-count)

The page which describes how to install texcount is here: texcount faq. Short version:

sudo cp texcount.pl /usr/local/bin/texcount.pl
or alternatively you could do as they recommend and simply name it texcount, and update the code appropriately.

Related Question