\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