print word count

7,201

Solution 1

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}

:

Solution 2

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
Share:
7,201
gregmacfarlane
Author by

gregmacfarlane

Updated on January 10, 2020

Comments

  • gregmacfarlane
    gregmacfarlane almost 4 years

    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?

  • gregmacfarlane
    gregmacfarlane over 11 years
    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!
  • Boris
    Boris over 11 years
    You probably need to upgrade bashful to get \bashStdout to work
  • twsh
    twsh over 11 years
    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.
  • Alessandro Cuttin
    Alessandro Cuttin about 10 years
    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
  • Alessandro Cuttin
    Alessandro Cuttin about 10 years
    BTW, it can be improved as following: \makeatletter\@@input|"echo texcount -q -1 -merge \jobname.tex| cut -c1-4"\makeatother
  • gioele
    gioele over 5 years
    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).