\caption versus um novo setminus

\caption versus um novo setminus

Estou usando o seguinte comouma melhoria na aparência\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}

\rsetminusfunciona bem no modo matemático, mas dentro de uma legenda de figura no modo matemático produz um erro de que o "argumento de \@captiontem um extra }".

Adicionei \protect antes de \rotatebox. Nenhum efeito. Eu tenho outro comando que \raiseboxmove a letra grega chi para a linha normal. Ele tem um \protectantes \raiseboxe funciona bem dentro de uma legenda de figura no modo matemático.

Eu também tentei com \ensuremathantes do \protect. Conselho?

Responder1

Um erro como

argument of \@caption has an extra }

geralmente significa “você tem um comando frágil no argumento para \caption. Como \mathbinnão é frágil, o culpado deve ser \mathpaletteou \rsetminusauxe na verdade este usa \raiseboxo que é frágil.

Solução:

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

em vez de \newcommand.

informação relacionada