存储 IfSubStr 的结果,然后使用 StrCount 进行计数

存储 IfSubStr 的结果,然后使用 StrCount 进行计数

我想存储IfSubStr(来自包xstring)的结果以供以后使用。因此我定义了一个命令,并用的结果重新定义IfSubStr。到目前为止一切顺利。但现在我还想使用StrCount该结果。出现以下错误:

Argument of \@xs@StrCount has an extra }

我认为这与参数的扩展有关,但我对此了解不多,因此无法解决问题。有什么帮助吗?以下是 MWE:

\documentclass{article}
\usepackage{xstring}
\newcommand{\XXX}{}
\newcommand{\DoSomethingWith}[1]{String is #1.}
\begin{document}
    \renewcommand{\XXX}{\IfSubStr{AC}{A}{ax}{xbx}}  
    \DoSomethingWith{\XXX}

    \StrCount{ax}{x}\ x.

    \StrCount{\XXX}{x}\ x. % Error
\end{document}

答案1

你必须用不同的方式来做:

\documentclass{article}
\usepackage{xstring}
\newcommand{\XXX}{}
\newcommand{\DoSomethingWith}[1]{String is #1.}
\begin{document}
\IfSubStr{AC}{A}{\renewcommand{\XXX}{ax}}{\renewcommand{\XXX}{xbx}}

\DoSomethingWith{\XXX}

\StrCount{ax}{x}\ x.

\StrCount{\XXX}{x}\ x. % Error
\end{document}

在此处输入图片描述

相关内容