通过正则表达式在 texcount 中包含宏

通过正则表达式在 texcount 中包含宏

我想包含所有以 \figure 开头的宏(或 \newcommand),并将它们计为 texcount 中的浮点数。为了便于理解,看看这里

如果我告诉 texcount 为每个 \newcommand 单独增加浮点计数器,它就会起作用:

%TC:macroword \figureMyNthPicture [float]

每个以字符串开头的新命令(如 \figure)都会被计算在内并且macrocount/macroword只需要定义一次,这会很方便。

我尝试了以下正则表达式,但没有成功:

%TC:macroword ^\\figure [float]

下面是一个MWE可以工作的,但是macrocount/macroword目前每个宏都是单独定义的,这是不受欢迎的。

\documentclass[a4paper,12pt]{scrartcl}
\usepackage{graphicx}
%---------------------------------------
\begin{document}


% define figureA
\newcommand{\figureA}{
\begin{figure}
\includegraphics[width=\textwidth]{example-image-a} 
\end{figure}
}

%Count figure A in texcount
%TC:macroword \figureA [float]

%place figureA
\figureA


%define figureB
\newcommand{\figureB}{
\begin{figure}[!htb]
\includegraphics[width=\textwidth,height=\textheight,keepaspectratio]{example-image-B}
\end{figure}
}

%Count figure B in texcount
%TC:macroword \figureB [float]

%place figure B
\figureB


\end{document}

答案1

当心在宏中添加虚假的空格(这里缺少空格%)但不是使用命名约定使用大量宏为什么不使用带有参数 so\myfigure{A} 和 的单个宏\myfigure{B}

然后你只需要告诉 texcount\myfigure你可以将其定义为

\newcommand\myfigure[1]{\csname figure#1\endcsname}

它将与您现有的定义一起工作。

相关内容