16

The journal I am submitting to requires a count of the words on the title page. I can of course run texcount on the .tex document and put the number in, but it seems that I should be able to automate this.

For tables and figures (which are also required), I can simply use the totcount package. Is there something equivalent for words? Or can I store the output of texcount in such a way that I can call it on a subsequent pdflatex run?

1

2 Answers 2

15

Here is the solution using bashful. Note that you need to run latex or pdflatex using -shell-escape option

\documentclass{article}
\usepackage{bashful}
\pagestyle{empty}
\bash
texcount -sum -1 tmp.tex
\END
\begin{document}    
This file has \emph{\bashStdout} words.
\end{document}

:

3
  • I combined your texcount syntax with the macro supplied by Jake on the other question, and it works wonderfully. Yours didn't work because of \bashStdout is not recognized as a control statement. But thanks for helping me with the texcount syntax! Mar 23, 2012 at 19:29
  • You probably need to upgrade bashful to get \bashStdout to work
    – Boris
    Mar 23, 2012 at 19:38
  • I don't suppose that there is a way to pass the name of the document to texcount automatically? The macro from the other question uses \jobname, but when I tried that here it didn't work.
    – twsh
    Aug 4, 2012 at 9:44
6

Here is a solution that does not require an external package:

 \makeatletter\@@input|"echo `texcount -1 manuscript.tex`| cut -c1-4"\makeatother

The cut command assumes a four digit number and could be parsed more elegantly.

This command requires --shell-escape when compiling, as in:

pdflatex --shell-escape myfile.tex
3
  • I prefer this solution respect to the first one. However, when I use it, it produces an unwanted white space after the four digit number. I worked around that using \hspace{-.5ex} but maybe it depends on the parsing of texcount's output Aug 16, 2013 at 10:32
  • 1
    BTW, it can be improved as following: \makeatletter\@@input|"echo texcount -q -1 -merge \jobname.tex| cut -c1-4"\makeatother Aug 16, 2013 at 11:10
  • Another improvement would be cut -d+ -f1 instead of cut -c1-4 to make the script work regardless of the number of words in the document (-d+ uses + as field delimiter, -f1 orders cut to output only the first field).
    – gioele
    Mar 9, 2018 at 10:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.