我曾使用过这个命令来统计 LaTeX 中的单词数,但是它有一些缺点:
- 尽管它应该抑制错误消息,但它并不总是这样做(见图)。
- 它无法统计
\lipsum
命令(和类似命令)产生的字数。如果我有一个\producetext
由 定义的宏\newcommand{\producetext}{This command produces a string of 8 words.}
,则它不包含在字数统计中。
\newcommand{\quickwordcount}[1]{%
\immediate\write18{texcount -1 -merge -sum -q #1.tex > #1-words.sum}%
\input{#1-words.sum}%
}
\documentclass{article}
\usepackage{lipsum}
% The command:
\newcommand{\quickwordcount}[1]{%
\immediate\write18{texcount -1 -merge -sum -q #1.tex > #1-words.sum}%
\input{#1-words.sum}%
}
\newcommand{\producetext}{This command produces a string of 8 words.}
\begin{filecontents}[overwrite]{body.tex}
Hello, here is some other text from another file that we have
included. This produces an error...
\end{filecontents}
\title{This is a Test}
\author{vebjornzen}
\date{January, 2023}
\begin{document}
%TC:ignore
\maketitle
\begin{center}
Words: \quickwordcount{word-counter}
\end{center}
%TC:endignore
% This is not included in the word count:
\producetext
\lipsum[1]
% This produces "(errors:1)":
\input{body.tex}
\include{body.tex}
\end{document}
以下是一些文档:
https://app.uio.no/ifi/texcount/documentation.html
我想要的是让宏计算(最终)PDF 中显示的单词数。我也不想在尝试打印字数时收到错误消息。有什么方法可以实现这一点吗?我不介意尝试不同的方法。
答案1
这我最清楚答案应该是找出错误的原因并修复它。主要原因是错误消息表明 TeXcount 无法解释某些内容,虽然这可能无关紧要,但也可能表明 TeXcount 存在重大问题,导致字数不可靠。请注意,TeXcount 实际上并不进行排版,而是依赖于启发式规则来解释宏,这些规则并不总是准确的,因此即使在完全有效的文档上也可能出现问题。
TeXcount 的一个主要功能是它可以生成详细的输出,表明文档的每个元素是如何解释的。您可以在TeXcount 网络服务:只需剪切并粘贴您怀疑包含问题的段或文件,然后查看其如何计算。
但是,为了回答您的实际问题,有一个解决方案可以完全消除摘要输出中的错误。只需在主 TeX 文件中包含以下代码即可:
%TC:newtemplate
%TC:template {sum}
模板可用于指定自定义输出格式,而不是硬编码的输出格式。
您仍需要-sum -merge
生成总数和合并文件的选项,并删除-1
会覆盖模板格式的选项。不确定该-q
选项是否会产生影响。