我想存储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}