TeXcount 计数 \multicolumn

TeXcount 计数 \multicolumn

当在以下 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

相关内容