Правильное количество слов в документе LaTeX
В настоящее время я ищу приложение или скрипт, который делает правильно количество слов для документа LaTeX.
до сих пор я сталкивался только со скриптами, которые работают только с одним файлом, но я хочу скрипт, который может безопасно игнорировать ключевые слова LaTeX, а также пересекать связанные файлы ... ie следовать include
и input
ссылки для получения правильного количества слов для весь документ.
С vim, я в настоящее время использовать ggVGg CTRL+G
но, очевидно, это показывает количество для текущего файла и не игнорирует ключевые слова LaTeX.
кто-нибудь знает о каком-либо скрипте (или приложении), который может выполнить эту работу?
7 ответов
Я использую texcount
. The страница имеет скрипт Perl для загрузки (и руководство).
он будет включать в себя 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
если вы только интересует всего, используйте
Я пошел с комментарием icio и сделал подсчет слов на самом pdf, пропуская вывод pdftotext
to wc
:
pdftotext file.pdf - | wc - w
latex file.tex
dvips -o - file.dvi | ps2ascii | wc -w
должно дать вам довольно точное количество слов.
добавить в @aioobe,
если вы используете pdflatex, просто сделайте
pdftops file.pdf
ps2ascii file.ps|wc -w
Я сравнил это количество с количеством в Microsoft Word в документе 1599 word (согласно Word). pdftotext
произвел текст с 1700 + словами. texcount
не включил ссылки и произвел 1088 слов. ps2ascii
возвращено 1603 слова. 4 больше, чем в слова.
Я говорю, что это довольно хороший счет. Я не уверен, где разница в 4 слова, хотя. :)
в интерфейсе Texmaker вы можете получить количество слов, щелкнув правой кнопкой мыши в предварительном просмотре PDF:
Я использую следующий скрипт VIM:
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) Для вычисления количества слов, поэтому он потенциально (в зависимости от использования) много более эффективным.
хотя комментарий icio теоретически верен, я нашел что приведенный выше метод дает достаточно точные оценки по количеству слов. Для большинства текстов, это в пределах 5% маржи, которая используется во многих заданиях.
для очень базового документа класса статьи я просто смотрю на количество совпадений для регулярного выражения, чтобы найти слова. Я использую Sublime Text, поэтому этот метод может не работать для вас в другом редакторе, но я просто нажму Ctrl+F
(Command+F
на Mac), а затем с включенным регулярным выражением найдите
(^|\s+|"|((h|f|te){)|\()\w+
который должен игнорировать текст, объявляющий плавающую среду или подписи на рисунках, а также большинство видов основных уравнений и \usepackage
объявления, включая цитаты и parentheticals. Он также подсчитывает сноски и \emph
asized текст и будет считать \hyperref
ссылки как одно слово. Это не идеально, но, как правило, с точностью до нескольких десятков слов или около того. Вы можете уточнить его для работы, но сценарий, вероятно, является лучшим решением, поскольку исходный код LaTeX не является обычным языком. Просто подумал, что стоит бросить это сюда.