\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

相關內容