当在以下 MWE \multicolumn 宏上使用 TeXcount 时,它被视为一个单词,并且我得到:
文本字数:6
我该怎么做才能避免这种行为并获得正确的字数?
\documentclass{article}
%TC:group table 0 1
%TC:group tabular 1 1
%TC:macro \specialcell [0,text]
\newcommand{\specialcell}[3][c]{%
\begin{tabular}[#1]{@{}#2@{}}#3\end{tabular}}
\begin{document}
\begin{table}
\begin{tabular}{lr}
\multicolumn{2}{c}{word1 word2} \\
word3 & \specialcell[t]{l}{word4\\word5} \\
\end{tabular}
\end{table}
\end{document}
答案1
哎哟!这是一个令人讨厌的 bug!
问题在于\mu
被解释为希腊字母,因此\multicount
被解析为单词{\mu}lticount
。
错误在于
my $specialchars='\\\\('.join('|',@LetterMacros).')(\{\}|\s*|\b)';
应该读作
my $specialchars='\\\\('.join('|',@LetterMacros).')(\{\}|\s+|\b)';
用\s*
替换\s+
以确保有东西将\mu
与单词的其余部分分开(如果它实际上是希腊字母)。
如果您在脚本中更正此代码行,它就可以正常工作,而不需要任何解决方法。
答案2
我不熟悉texcount
。至少我找到了一种解决方法:
%TC:macro \tcmulticolumn [ignore,ignore,text]
%TC:subst \multicolumn \tcmulticolumn
或者更短一点(数字表示忽略的参数的数量):
%TC:macro \tcmulticolumn 2
%TC:subst \multicolumn \tcmulticolumn
我不知道为什么直接的方法%TC:macro \multicolumn [ignore,ignore,text]
不起作用。
完整示例文件:
\documentclass{article}
%TC:group table 0 1
%TC:group tabular 1 1
%TC:macro \specialcell [0,text]
\newcommand{\specialcell}[3][c]{%
\begin{tabular}[#1]{@{}#2@{}}#3\end{tabular}}
%TC:macro \tcmulticolumn 2
%TC:subst \multicolumn \tcmulticolumn
\begin{document}
\begin{table}
\begin{tabular}{lr}
\multicolumn{2}{c}{word1 word2} \\
word3 & \specialcell[t]{l}{word4\\word5} \\
\end{tabular}
\end{table}
\end{document}
结果:
File: test.tex
Encoding: ascii
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