尝试texcount
不将数字计为单词,但设置alphabets=Latin
似乎无法解决问题。有什么建议吗?
梅威瑟:
\begin{document}
testing 1 2 3 this should be five
\end{document}
texcount
输出:
➜ texcount FORWORDCOUNT.tex
File: FORWORDCOUNT.tex
Encoding: ascii
Words in text: 8
Words in headers: 0
Words outside text (captions, etc.): 0
Number of headers: 0
Number of floats/tables/figures: 0
Number of math inlines: 0
Number of math displayed: 0
➜ texcount -alphabets=Latin FORWORDCOUNT.tex
File: FORWORDCOUNT.tex
Encoding: ascii
Words in text: 8
Words in headers: 0
Words outside text (captions, etc.): 0
Number of headers: 0
Number of floats/tables/figures: 0
Number of math inlines: 0
Number of math displayed: 0
答案1
呃,搞明白了。需要将编码设置为unicode
。这有效:
➜ texcount -alphabets=Latin FORWORDCOUNT.tex -unicode
File: FORWORDCOUNT.tex
Words in text: 5
Words in headers: 0
Words outside text (captions, etc.): 0
Number of headers: 0
Number of floats/tables/figures: 0
Number of math inlines: 0
Number of math displayed: 0
答案2
更新答案:
从 3.2 版本开始,可以区分单词和数字。
有一个新的 TeXcount 指令,%TC:wordtype {original-rule} {wordtype} {new-rule}
它允许根据单词类型修改计数规则:number
,mixed
(字母和数字)或nonum
(没有任何数字的单词)。
添加规则
%TC:wordtype text number ignore
和文本中的单词将被忽略。要对“标题词”和“其他词”执行相同操作,还请添加以下内容:
%TC:wordtype otherword number ignore
%TC:wordtype headerword number ignore
该text
规则只是该规则的别名word
:其他规则也有别名,如oword
和hword
。
请注意,此功能尚处于实验阶段,在未来版本中可能会有所改变。
我正在从评论转向答案,尽管这还不是对正在发生的事情的答案。
正如评论中提到的,-alphabets=Latin
如果没有该选项,该选项应该也可以工作-unicode
。当我在 Windows 10 上测试它时,它按预期工作。
该选项的唯一效果-unicode
是确保文件解码为 UTF8,而不是 ASCII,因为输入是纯 ASCII,所以 ASCII 是默认设置。这可能会影响字符串在 Perl 内部的表示方式,但除非您使用的是旧版 Perl,否则内部表示应为 UTF8。
您能检查一下您运行的是哪个 Perl 版本吗?我认为perl --version
应该返回您正在运行某个 Perl 5 版本。
我使用如下小脚本做了一些测试:
use Encode;
use Devel::Peek;
my $enc=find_encoding('ascii');
my $x=$enc->decode('test123');
Dump($x);
$x=~s/(\p{Latin})/[$1]/g;
print $x;
然而,无论我做什么,我都无法让它输出除[t][e][s][t]123
表明它已正确识别拉丁字母之外的任何其他内容。
我甚至尝试my $x=$enc->encode('test123');
强制使用字节表示$x
(不设置 UTF8 标志),但结果仍然相同。我认为Latin
如果字符串不是 UTF8 表示,Unicode 字符类(例如)可能无法工作,但这似乎不是问题;也许在较旧/其他 Perl 版本上会这样。
我一直在 Windows 10 上使用 Perl 5(v5.24.0)运行 TeXcount 3.1,但也检查了 TeXcount 3.0 以确保没有相关变化。