\caption 与新的 setminus

\caption 与新的 setminus

我使用以下内容外观改进\setminus

\newcommand\rsetminus{\mathbin{\mathpalette\rsetminusaux\relax}}
\newcommand\rsetminusaux[2]{\mspace{-4mu}
\raisebox{\rsmraise{#1}\depth}{\rotatebox[origin=c]{-20}{$#1\smallsetminus$}}
 \mspace{-4mu}
}
\newcommand\rsmraise[1]{%
  \ifx#1\displaystyle .8\else
    \ifx#1\textstyle .8\else
      \ifx#1\scriptstyle .6\else
        .45%
      \fi
    \fi
  \fi}

\rsetminus在数学模式下工作正常,但在数学模式下的图形标题内会产生错误“的参数\@caption有一个额外的}”。

我在 \rotatebox 之前添加了 \protect。没有效果。我还有另一个命令用于\raisebox将希腊字母 chi 移到正常行。它在\protect之前有一个\raisebox,并且在数学模式下的图形标题内工作正常。

\ensuremath我之前也尝试过\protect。有什么建议吗?

答案1

错误如下

argument of \@caption has an extra }

通常意味着“在 的参数中有一个脆弱的命令\caption。由于\mathbin并不脆弱,罪魁祸首一定是\mathpalette或者\rsetminusaux,而实际上这个命令使用的\raisebox是脆弱的。

解决方案:

\DeclareRobustCommand\rsetminus{\mathbin{\mathpalette\rsetminusaux\relax}}

代替\newcommand

相关内容