我使用以下内容外观改进\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
。