LaTeX 错误:\pgffor@b 定义中的参数编号非法

LaTeX 错误:\pgffor@b 定义中的参数编号非法

我正在尝试使用循环。以下方法不起作用:

\foreach \a in {no,has}{    
    \begin{table}[H]
    \footnotesize
    \captionsetup{width=.9\linewidth}
    \caption{text}
    \vspace{-22pt}
    \label{}
    \begin{center}
    {
    \def\sym#1{\ifmmode^{#1}\else\(^{#1}\)\fi}
    \begin{tabular}{l*{6}{c}}
    \toprule \toprule \\
    ~~~~text \\
    \hline
    \input{../text1_\a_c.tex}
    \hline \\
    ~~~~text \\
    \hline
    \input{../text2_\a_c.tex}
    \hline
    \bottomrule
    \end{tabular}
    }
    \end{center}
    \caption*{\begin{footnotesize}  \end{footnotesize}}
    \end{table}
}

我想要做的是使用循环访问四个名称相似的文件 - 第一次访问两个(名为...no...),第二次访问两个(名为...has...)。

我收到此错误:

illegal parameter number in definition of \pgffor@b

请注意以下工作:

这有效:

\foreach \a in {no,has}{
\a
}

我应该尝试什么来解决这个问题?

答案1

由于 的定义\sym出现在另一个命令的参数中,因此应该

\def\sym##1{\ifmmode^{##1}\else\(^{##1}\)\fi}

在此代码中。

相关内容