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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .