Я не знаю, поможет ли это кому-нибудь, но когда я писал свою диссертацию, я хотел сделать две вещи; (1) подсчитать количество слов для всей диссертации (вместо одной главы), и (2) использовать собственный сценарий счетчика. Суть последнего заключалась в том, что он будет избегать таких разделов, как рефераты, декларации и т.д., И будет выбирать только соответствующие главы.
Подсчет слов из мастер-файла
Решение здесь было простым; выясните, является ли файл, в котором мы находимся, основным, в противном случае отправьте его на texcount .
(defun latex-word-count-master ()
  (interactive)
  (if (eq TeX-master t)
      (setq master (buffer-file-name))
    (setq master (concat (expand-file-name TeX-master) ".tex")))
  (shell-command (concat "texcount "
                         "-dir "
                         "-unicode "
                         "-inc "
                         master)))
Используйте собственный скрипт
Я сделал это, добавив локальную переменную custom-tex-counter во включаемый файл, указывающий на скрипт bash, отвечающий за подсчет слов.
Объявите пользовательскую переменную
(defvar custom-tex-counter nil)
(make-variable-buffer-local 'custom-tex-counter)
(put 'custom-tex-counter 'safe-local-variable #'stringp)
 
Добавить путь в локальные переменные (конец файла .tex )
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "../thesis"
%%% custom-tex-counter: "../count_words -t"
%%% End:
 
Соединяя это с вышеупомянутым
(defun latex-word-count-alt ()
  (interactive)
  (if (eq TeX-master t)
      (setq master (buffer-file-name))
    (setq master (concat (expand-file-name TeX-master) ".tex")))
  (if (not (eq custom-tex-counter nil))
      (shell-command (concat custom-tex-counter
                             " "
                             master))
    (shell-command (concat "texcount "
                           "-dir "
                           "-unicode "
                           "-inc "
                           master))))
 
Для справки вот как выглядел мой пользовательский скрипт (не забудьте сделать его исполняемым):
#!/usr/bin/bash
total='false'
while getopts 't' flag; do
  case "${flag}" in
    t) total='true' ;;
    ?) printf '\nUsage: %s: [-t] \n' $0; exit 2 ;;
  esac
done
shift $(($OPTIND - 1))
TOPATH=$(dirname "${1}")
CHAPTERS=$(while read -r chapter; do
               printf "%s%s.tex\n" "$TOPATH" "/$chapter";
           done < <(grep -Po "^[^%]\s?\\include{\K(Chapter|Appendix)[[:digit:]]+/(chapter|appendix)[[:digit:]]+" "${1}") \
           | paste -sd' ')
if [ "$total" == "false" ]; then
    texcount -unicode -inc $CHAPTERS
else
    texcount -unicode -total -inc $CHAPTERS
fi
По сути, единственное, что он делает, это grep некомментированные главы и приложения из мастер-файла и подсчитывает там слова.
Вы можете изменить регулярное выражение для каждого проекта, чтобы оно соответствовало используемой структуре, но, если вы постоянно используете одну и ту же структуру, вы можете поместить сценарий bash где-нибудь на вашем пути и сделать его глобальной переменной в emacs вместо локальной.