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
Author by
gregmacfarlane
Updated on January 10, 2020Comments
-
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 oftexcount
in such a way that I can call it on a subsequentpdflatex
run?-
gregmacfarlane over 11 yearsThis is similar in many ways to the request at tex.stackexchange.com/questions/44618/…. I can't see how to adopt this directly, however.
-
-
gregmacfarlane over 11 yearsI 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 thetexcount
syntax! -
Boris over 11 yearsYou probably need to upgrade bashful to get
\bashStdout
to work -
twsh over 11 yearsI 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 about 10 yearsI 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 oftexcount
's output -
Alessandro Cuttin about 10 yearsBTW, it can be improved as following:
\makeatletter\@@input|"echo
texcount -q -1 -merge \jobname.tex| cut -c1-4"\makeatother
-
gioele over 5 yearsAnother improvement would be
cut -d+ -f1
instead ofcut -c1-4
to make the script work regardless of the number of words in the document (-d+
uses+
as field delimiter,-f1
orderscut
to output only the first field).