我可以告诉 TeXcount 不要将下划线算作单词分隔符吗?

我可以告诉 TeXcount 不要将下划线算作单词分隔符吗?

\texttt{uintptr\_t}我正在尝试计算包含各种 C 类型(例如、等)的文档中的单词数。\texttt{size\_t}但是,当我使用 texcount 时,它会在下划线处断开,并将其视为两个单词。

有没有办法告诉 texcount 将带有下划线的单词视为一个单词?

如果我对此文件运行 texcount,它会报告 5 个单词:

\documentclass{article}
\begin{document}
Word with underscore: \texttt{uintptr\_t}.
\end{document}

我怎样才能解决这个问题并将其算作uintptr\_t一个单词?

编辑:我已经尝试了以下大多数方法,效果很好:

\documentclass{article}
%TC:newcounter icode Number of words in code
%TC:newcounter icodeuses Number of code uses
%TC:macrocount \code [icodeuses]
%TC:macro \code [icode]
\newcommand*{\code}[1]{\texttt{#1}}
\begin{document}
Word with underscore: \code{uintptr\_t}.
\end{document}

现报告以下内容texcount -sum

Sum count: 6
Words in text: 3
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
Number of words in code: 2
Number of code uses: 1

我可以从总数中排除某些计数器吗?

答案1

没有使用命令行选项的简单方法可以做到这一点,但可以轻松添加\_到字符修饰符列表中。

复制一份texcount.pl并将其放在可以找到的地方(本地~/bin文件夹是显而易见的选择)。最好给它起一个不同的名字,以免覆盖标准名称。(这假设 Mac/Linux;我不知道如何在 Windows 中执行此操作。)

在第 494 行你应该找到以下行:

my $modifiedchars='\\\\[\'\"\`\~\^\=](@|\{@\})';

将其更改为:

my $modifiedchars='\\\\[\'\"\`\~\^\=\_](@|\{@\})';

现在这将包括\_作为字符修饰符。

现在使用您的示例运行这个修改后的文件,结果如下:

$ ./texcount-new.pl  -sum word-count-underscore.tex
File: word-count-underscore.tex
Encoding: ascii
Sum count: 5
Words in text: 3
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
Number of words in code: 1
Number of code uses: 1

相关内容