emacs 中 LaTeX 的字数统计

emacs 中 LaTeX 的字数统计

我想计算我的 LaTeX 文档中有多少个单词。我可以通过访问文本计数包并使用那里的网络界面。但这并不理想。

我更希望在 emacs 中使用一些快捷方式来返回文件中的单词数(或者理想情况下是文件中的单词数以及文档调用\input\include文档内的所有文件中的单词数)。我已经下载了 texcount 脚本,但我不知道该怎么用它。也就是说,我不知道将文件放在哪里.pl,以及如何在 emacs 中调用它。

即:我想要一个 shell 命令的键盘快捷键。并且我希望该 shell 命令在当前活动缓冲区上运行 texcount 并返回迷你缓冲区中的单词总数。

我正在使用 Ubuntu 和 emacs22,如果有帮助的话......

答案1

(defun latex-word-count ()
  (interactive)
  (shell-command (concat "/usr/local/bin/texcount.pl "
                         ; "uncomment then options go here "
                         (buffer-file-name))))

您可以选择将 texcount.pl 放在 /usr/local/bin 以外的某个位置,如果这样做,只需根据需要修改代码即可。这将创建一个新命令“Mx latex-word-count”,它将在当前文件上运行 texcount.pl(但是,如果您没有保存文件,它将给出错误的结果)。您可以删除分号,并用您想要使用的任何命令行参数(如果有)替换填充文本。您可以在 .emacs 中使用类似以下内容将其绑定到键盘命令:

(define-key latex-mode-map "\C-cw" 'latex-word-count)

描述如何安装 texcount 的页面在这里:texcount 常见问题。 简洁版本:

sudo cp texcount.pl /usr/local/bin/texcount.pl
或者您可以按照他们的建议去做,简单地将其命名为 texcount,然后适当地更新代码。

答案2

这是上述脚本的一个稍微好一点的版本(处理文件名中的空格、生成单行输出等...)钩子LaTeX用于 AuCTeX。

(defun my-latex-setup ()
  (defun latex-word-count ()
    (interactive)
    (let* ((this-file (buffer-file-name))
           (word-count
            (with-output-to-string
              (with-current-buffer standard-output
                (call-process "texcount" nil t nil "-brief" this-file)))))
      (string-match "\n$" word-count)
      (message (replace-match "" nil nil word-count))))
    (define-key LaTeX-mode-map "\C-cw" 'latex-word-count))
(add-hook 'LaTeX-mode-hook 'my-latex-setup t)

答案3

简洁版本:M-! texcount <file.tex> RET

我只想使用包含shell-command的emacs

M-! <cmd> RET

连同texcount大多数 latex 发行版中安装的 (texcount.pl)。编辑文档时,只需按M-!Entertexcount <tex-file>并按 Return 即可。

答案4

这里发布的其他解决方案的简单组合是:

(defun latex-word-count ()
   (interactive)
   (shell-command (concat "texcount " ; my latex installation includes texcount.pl
                       ; "uncomment then options go here, such as "
                       "-unicode "
                       "-inc "
                       (buffer-file-name))) ; better than typing path to current file
)

(define-key LaTeX-mode-map "\C-cw" 'latex-word-count)

相关内容