我需要动态计算并返回某一部分的字数有与latex
无luatex
或context
。latex
这个问题的答案取决于texcount
包,根据我对文档的理解,它使用复杂的 Perl 脚本解析 LaTeX 文档。由于 LaTeX 无法用 Perl 轻松解析,因此texcount
遗漏了我需要计算的各种内容(例如内联引用)。
其中一个答案是有没有什么方法可以正确统计 LaTeX 文档的字数?表明wordcount
包可用于进行“正确”的字数统计。据我所知,wordcount
改变了工作方式latex
,以便可以解析日志文件中的字符数、单词数和空格数。 的方法wordcount
似乎比 更强大texcount
。包文档提到了表格和数学问题。由于我需要进行字数统计的文档没有表格或数学,所以似乎wordcount
可能更好。
查看字数表明这texcount
是计算单词的首选方法。此外,texcount
比要新得多wordcount
。这让我担心我遗漏了某些内容,并且wordcount
无法准确计算单词。
答案1
由于这篇文章太长,不适合发表评论,因此我将把它写成答案。
另外,请注意,作为 TeXcount 的创建者,我并非完全没有偏见,尽管我会尝试给出公平的答案。
首先,所有字数统计器都有技术限制,并且有选择将哪些字数计为(或不计为)字数的选项。对于像许多 LaTeX 文档一样比纯散文更复杂的文档来说,情况尤其如此。
基于 LateX 的字数统计的技术限制通常与解释宏和环境的能力有关。
此外,对于将什么算作一个单词,还有一些选择,其中一些可能由技术问题决定:公式、脚注、标题、说明、引用等。除了技术限制之外,对于哪个是正确的字数,并没有唯一的答案:不同的人和期刊会有不同的意见,甚至可能根据手稿的类型而有所不同。
检查任何字数统计器是否计算了您想要计数的内容的唯一方法就是检查它。
我对 TeXcount 的主要看法并不是它比其他软件更准确,因为我没有做过适当/公平的比较,而且它可能取决于文档的类型/写作风格和用户的偏好,而是它通过向您提供带注释(颜色编码)的 TeX 文件版本,使您能够检查它算作什么单词。
您可以使用以下方式检查 TeXcount,无需任何安装网络服务看看它如何作用于您的文档。(请注意,连接是通过 HTTP 进行的,这意味着您的文档将以明文形式通过互联网发送,因此请勿将其用于机密材料。)
TeXcount 中有办法通过添加额外的宏/环境处理规则或标记应忽略的文本部分来调整计数,但在评估准确性方面的核心优势是带注释的输出,它使您能够详细检查文档的处理方式。
让我在原来的论述上再补充一点,以便更好地回答你的问题中的技术方面的问题。
我第一次制作 TeXcount 是因为我找不到一个适用于我自己的 LaTeX 文档的 LaTeX 字数统计器。这可能是由于我的文档的结构所致。反过来,早期版本的 TeXcount 也同样无法处理其他人的文档,因为他们的 LaTeX 样式与我为 TeXcount 准备的样式不同。随着时间的推移,TeXcount 有望变得更加强大,部分原因是多年来用户的反馈。
正如您所注意到的,TeXcount 使用 Perl 脚本来解析文件,并且实际上不运行任何 TeX 宏。因此,宏生成的文本通常不会被计数。您可以指定一个宏(例如 \LaTeX)代表一个单词,但基本上就是这样。任何实际上不运行 TeX 的字数统计器都会面临类似的限制。
实际运行 TeX 的字数统计器可能能够统计宏生成的文本,但会遇到在 TeX 中实现的限制。它可能变得脆弱,就像我自己的文档无法正常运行时所经历的那样,或者在控制文档的哪些部分/上下文应该被统计方面变得不那么灵活。
任何 TeX 文件字数统计器的主要风险之一是,由于某些技术问题,文档的大部分内容会被忽略或误解,而这些问题对用户来说并不是很明显。其次,它通常会在计算特殊情况(虚线术语、数字、公式、特殊字符等)时出现系统性错误(或偏差)。
最终的答案是,找出答案的最好方法是检查实际计算的内容。