Правильный подсчет слов документа LaTeX
В настоящее время я ищу приложение или script, который выполняет правильное количество слов для документа LaTeX.
До сих пор я столкнулся только с скриптами, которые работают только с одним файлом, но то, что я хочу, - это script, который может безопасно игнорировать ключевые слова LaTeX, а также файлы, привязанные к траверсу... т.е. следуйте \include
и \input
ссылкам, чтобы создать правильный подсчет слов для всего документа.
С помощью vim я в настоящее время использую ggVGg CTRL+G
, но, очевидно, это показывает счетчик для текущего файла и не игнорирует ключевые слова LaTeX.
Кто-нибудь знает о любом script (или приложении), который может выполнять эту работу?
Ответы
Ответ 1
Я использую texcount
. веб-страница содержит Perl script для загрузки (и руководства).
Он включает в себя tex
файлы, которые включены (\input
или \include
) в документе (см. -inc
), поддерживает макросы и имеет много других приятных функций.
При включении файлов вы получите подробную информацию о каждом отдельном файле, а также об итогах. Например, здесь приведен общий вывод для моего 12-страничного документа:
TOTAL COUNT
Files: 20
Words in text: 4188
Words in headers: 26
Words in float captions: 404
Number of headers: 12
Number of floats: 7
Number of math inlines: 85
Number of math displayed: 19
Если вас интересует только итог, используйте аргумент -total
.
Ответ 2
Я пошел с комментарием icio и произнес количество слов на самом PDF файле, соединив вывод pdftotext
с wc
:
pdftotext file.pdf - | wc - w
Ответ 3
latex file.tex
dvips -o - file.dvi | ps2ascii | wc -w
должен дать вам достаточно точное количество слов.
Ответ 4
Чтобы добавить к @aioobe,
Если вы используете pdflatex, просто сделайте
pdftops file.pdf
ps2ascii file.ps|wc -w
Я сравнил этот счет с подсчетом в Microsoft Word в документе на 1599 слов (согласно Word). pdftotext
создан текст с 1700 + словами. texcount
не включал ссылки и произвел 1088 слов. ps2ascii
возвращено 1603 слова. 4 больше, чем в Word.
Я говорю, что довольно неплохо. Я не уверен, где разница в 4 слова.:)
Ответ 5
В интерфейсе Texmaker вы можете получить количество слов, щелкнув правой кнопкой мыши в PDF-формате:
![введите описание изображения здесь]()
![введите описание изображения здесь]()
Ответ 6
Я использую следующий VIM script:
function! WC()
let filename = expand("%")
let cmd = "detex " . filename . " | wc -w | perl -pe 'chomp; s/ +//;'"
let result = system(cmd)
echo result . " words"
endfunction
... но он не следит за ссылками. Это в основном повлечет за собой синтаксический анализ файла TeX для получения всех связанных файлов, не так ли?
Преимущество над другими ответами заключается в том, что он не должен создавать выходной файл (PDF или PS), чтобы вычислить количество слов, чтобы его потенциально (в зависимости от использования) было намного более эффективным.
Хотя комментарий icios теоретически правильный, я обнаружил, что приведенный выше метод дает довольно точные оценки количества слов. Для большинства текстов это хорошо в пределах 5%, которое используется во многих назначениях.
Ответ 7
Для очень простого документа класса статьи я просто рассматриваю количество совпадений для регулярного выражения для поиска слов. Я использую Sublime Text, поэтому этот метод может не работать для вас в другом редакторе, но я просто нажал Ctrl+F
(Command+F
на Mac), а затем, с включенным регулярным выражением, выполните поиск
(^|\s+|"|((h|f|te){)|\()\w+
который должен игнорировать текст, объявляющий плавающую среду или титры на фигурах, а также большинство типов основных уравнений и объявлений \usepackage
, включая цитаты и скобки. Он также учитывает сноски и текст \emph
, и будет считаться \hyperref
ссылками как одно слово. Он не идеален, но он, как правило, с точностью до нескольких десятков слов или около того. Вы можете улучшить его работу, но script, вероятно, лучшее решение, поскольку исходный код LaTeX не является обычным языком. Просто подумал, что я брошу это здесь.